এই নির্দেশিকাটি ব্যাখ্যা করে কিভাবে Caddy , একটি শক্তিশালী এবং ব্যবহারকারী-বান্ধব ওয়েব সার্ভার, আপনার আউটলাইন সার্ভার সেটআপ উন্নত করতে ব্যবহার করতে হয়। ক্যাডির স্বয়ংক্রিয় HTTPS ক্ষমতা এবং নমনীয় কনফিগারেশন এটিকে আপনার আউটলাইন সার্ভার পরিবেশন করার জন্য একটি চমৎকার পছন্দ করে তোলে, বিশেষ করে যখন ওয়েবসকেট পরিবহন ব্যবহার করা হয়।
ক্যাডি কি?
ক্যাডি হল একটি ওপেন সোর্স ওয়েব সার্ভার যা ব্যবহার সহজ, স্বয়ংক্রিয় HTTPS এবং বিভিন্ন প্রোটোকলের জন্য সমর্থনের জন্য পরিচিত। এটি ওয়েব সার্ভার কনফিগারেশনকে সহজ করে এবং এর মতো বৈশিষ্ট্যগুলি অফার করে:
- স্বয়ংক্রিয় HTTPS: Caddy স্বয়ংক্রিয়ভাবে TLS শংসাপত্র প্রাপ্ত এবং পুনর্নবীকরণ করে, সুরক্ষিত সংযোগ নিশ্চিত করে।
- HTTP/3 সমর্থন: Caddy দ্রুত এবং আরও দক্ষ ওয়েব ট্রাফিকের জন্য সর্বশেষ HTTP/3 প্রোটোকল সমর্থন করে।
- প্লাগইনগুলির সাথে এক্সটেনসিবল: রিভার্স প্রক্সি এবং লোড ব্যালেন্সিং সহ বিভিন্ন কার্যকারিতা সমর্থন করতে প্লাগইনগুলির সাথে ক্যাডি বাড়ানো যেতে পারে।
ধাপ 1: পূর্বশর্ত
-
xcaddy
ডাউনলোড এবং ইনস্টল করুন
ধাপ 2: আপনার ডোমেন কনফিগার করুন
Caddy শুরু করার আগে, আপনার সার্ভারের IP ঠিকানা নির্দেশ করার জন্য আপনার ডোমেন নাম সঠিকভাবে কনফিগার করা হয়েছে তা নিশ্চিত করুন।
- A/AAAA রেকর্ড সেট করুন: আপনার DNS প্রদানকারীতে সাইন ইন করুন এবং যথাক্রমে আপনার সার্ভারের IPv4 এবং IPv6 ঠিকানাগুলি নির্দেশ করতে আপনার ডোমেনের জন্য A এবং AAAA রেকর্ডগুলি সেট করুন৷
DNS রেকর্ড যাচাই করুন: একটি প্রামাণিক লুকআপের মাধ্যমে আপনার DNS রেকর্ড সঠিকভাবে সেট করা আছে কিনা তা যাচাই করুন:
curl "https://cloudflare-dns.com/dns-query?name=DOMAIN_NAME&type=A" \ -H "accept: application/dns-json"
ধাপ 3: একটি কাস্টম ক্যাডি বিল্ড তৈরি করুন এবং চালান
xcaddy
ব্যবহার করে, আপনি একটি কাস্টম caddy
বাইনারি তৈরি করতে পারেন যাতে আউটলাইন কোর সার্ভার মডিউল এবং অন্যান্য প্রয়োজনীয় সার্ভার এক্সটেনশন মডিউল অন্তর্ভুক্ত থাকে।
xcaddy build \
# The example uses a YAML config, so include a YAML config adapter module.
--with github.com/iamd3vil/caddy_yaml_adapter \
# The Outline core server module.
--with github.com/Jigsaw-Code/outline-ss-server/outlinecaddy
ধাপ 4: আউটলাইন সহ ক্যাডি সার্ভার কনফিগার করুন এবং চালান
নিম্নলিখিত কনফিগারেশন সহ একটি নতুন config.yaml
ফাইল তৈরি করুন:
apps:
http:
servers:
server1:
listen:
- ":443"
routes:
- match:
- host:
- 'DOMAIN_NAME'
- path:
- "/TCP_PATH"
handle:
- handler: websocket2layer4
type: stream
connection_handler: ss1
- match:
- host:
- 'DOMAIN_NAME'
- path:
- "/UDP_PATH"
handle:
- handler: websocket2layer4
type: packet
connection_handler: ss1
outline:
shadowsocks:
replay_history: 10000
connection_handlers:
- name: ss1
handle:
handler: shadowsocks
keys:
- id: user-1
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
এই কনফিগারেশনটি একটি শ্যাডোসক-ওভার-ওয়েবসকেট কৌশল উপস্থাপন করে যেখানে একটি ওয়েব সার্ভার পোর্ট 443
এ শোনা, যথাক্রমে TCP_PATH এবং UDP_PATH পাথগুলিতে TCP এবং UDP শ্যাডোসক মোড়ানো ট্র্যাফিক গ্রহণ করে।
তৈরি করা কনফিগারেশন ব্যবহার করে আউটলাইনের সাথে প্রসারিত ক্যাডি সার্ভার চালান:
caddy run --config config.yaml --adapter yaml --watch
আপনি আমাদের outline-ss-server/outlinecaddy GitHub রেপোতে আরও উদাহরণ কনফিগার করতে পারেন।
ধাপ 5: একটি ডায়নামিক অ্যাক্সেস কী তৈরি করুন
উন্নত কনফিগারেশন বিন্যাস ব্যবহার করে আপনার ব্যবহারকারীদের জন্য একটি ক্লায়েন্ট অ্যাক্সেস কী YAML ফাইল তৈরি করুন এবং সার্ভার সাইডে পূর্বে কনফিগার করা WebSocket শেষ পয়েন্টগুলি অন্তর্ভুক্ত করুন:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN_NAME/TCP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN_NAME/UDP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
ডায়নামিক অ্যাক্সেস কী YAML ফাইল তৈরি করার পরে, আপনাকে এটি আপনার ব্যবহারকারীদের কাছে পেতে হবে। আপনি একটি স্ট্যাটিক ওয়েব হোস্টিং পরিষেবাতে ফাইলটি হোস্ট করতে পারেন বা গতিশীলভাবে এটি তৈরি করতে পারেন। ডায়নামিক অ্যাক্সেস কীগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও জানুন।
ধাপ 6: আউটলাইন ক্লায়েন্টের সাথে সংযোগ করুন
অফিসিয়াল আউটলাইন ক্লায়েন্ট অ্যাপ্লিকেশনগুলির একটি ব্যবহার করুন (সংস্করণ 1.15.0+) এবং একটি সার্ভার এন্ট্রি হিসাবে আপনার নতুন তৈরি ডায়নামিক অ্যাক্সেস কী যুক্ত করুন৷ Shadowsocks-over-Websocket কনফিগারেশন ব্যবহার করে আপনার সার্ভারে টানেলিং শুরু করতে Connect-এ ক্লিক করুন।
আপনি এখন আপনার আউটলাইন সার্ভারের মাধ্যমে ইন্টারনেট ব্রাউজ করছেন তা যাচাই করতে IPInfo-এর মতো একটি টুল ব্যবহার করুন।