আউটলাইন VPN প্যারামিটার সংজ্ঞায়িত করতে এবং TCP/UDP ট্র্যাফিক পরিচালনা করতে YAML-ভিত্তিক কনফিগারেশন ব্যবহার করে। কনফিগারেশনটি একাধিক স্তরে সংমিশ্রণযোগ্যতা সমর্থন করে, নমনীয় এবং এক্সটেনসিবল সেটআপ সক্ষম করে।
শীর্ষ-স্তরের কনফিগারেশন একটি TunnelConfig নির্দিষ্ট করে।
উদাহরণ
একটি সাধারণ Shadowsocks কনফিগারেশন এই মত দেখাবে:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint: ss.example.com:4321
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST "
udp:
$type: shadowsocks
endpoint: ss.example.com:4321
cipher: chacha20-ietf-poly1305
secret: SECRET
লক্ষ্য করুন কিভাবে আমরা এখন বিভিন্ন পোর্ট বা এন্ডপয়েন্টে টিসিপি এবং ইউডিপি চালাতে পারি।
আপনি ডুপ্লিকেশন এড়াতে YAML অ্যাঙ্কর এবং <<
মার্জ কী-এর সুবিধা নিতে পারেন:
transport:
$type: tcpudp
tcp:
<<: &shared
$type: shadowsocks
endpoint: ss.example.com:4321
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST "
udp: *shared
এখন কৌশল রচনা করা এবং মাল্টি-হপ করা সম্ভব:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: dial
address: exit.example.com:4321
dialer:
$type: shadowsocks
address: entry.example.com:4321
cipher: chacha20-ietf-poly1305
secret: ENTRY_SECRET
cipher: chacha20-ietf-poly1305
secret: EXIT_SECRET
udp: *shared
শ্যাডোসকসের মতো "লুক-লাইক-নথিং" প্রোটোকল ব্লক করার ক্ষেত্রে, আপনি WebSockets-এ Shadowsocks ব্যবহার করতে পারেন। এটি কিভাবে স্থাপন করতে হয় তার সার্ভার উদাহরণ কনফিগারেশন দেখুন। একটি ক্লায়েন্ট কনফিগারেশন দেখতে হবে:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/tcp
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/udp
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
নোট করুন যে ওয়েবসকেট এন্ডপয়েন্ট, ঘুরে, একটি এন্ডপয়েন্ট নিতে পারে, যা DNS-ভিত্তিক ব্লকিং বাইপাস করতে ব্যবহার করা যেতে পারে:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/tcp
endpoint: cloudflare.net:443
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/udp
endpoint: cloudflare.net:443
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
মনে রাখবেন WebSockets এখনও Windows এ সমর্থিত নয়। সমস্ত প্ল্যাটফর্মের জন্য একটি একক কনফিগার করার জন্য, পিছনের-সামঞ্জস্যতার জন্য একটি first-supported
ব্যবহার করুন:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: first-supported
options:
- $type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/tcp
- ss.example.com:4321
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: first-supported
options:
- $type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/udp
- ss.example.com:4321
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
টানেল
টানেল কনফিগ
টানেল হল একটি আউটলাইন কনফিগারেশনের শীর্ষ-স্তরের বস্তু। এটি নির্দিষ্ট করে কিভাবে VPN কনফিগার করা উচিত।
বিন্যাস: ExplicitTunnelConfig | LegacyShadowsocksConfig | Legacy ShadowsocksSURI
ExplicitTunnel Config
বিন্যাস: struct
ক্ষেত্র:
-
transport
( TransportConfig ): টার্গেট গন্তব্যের সাথে প্যাকেজ বিনিময় করার জন্য ব্যবহার করা পরিবহন -
error
( struct ): পরিষেবা ত্রুটির ক্ষেত্রে ব্যবহারকারীর সাথে যোগাযোগ করার জন্য তথ্য (যেমন কী মেয়াদ শেষ, কোটা শেষ)-
message
( স্ট্রিং ): ব্যবহারকারীর কাছে প্রদর্শনের জন্য ব্যবহারকারী-বান্ধব বার্তা -
details
( স্ট্রিং ): ব্যবহারকারী ত্রুটির বিবরণ খুললে প্রদর্শনের জন্য বার্তা। সমস্যা সমাধানের জন্য সহায়ক।
-
ক্ষেত্র error
এবং transport
পারস্পরিক একচেটিয়া.
সফল উদাহরণ:
transport:
$type: tcpudp
tcp:
... # Stream Dialer for TCP
udp:
... # Packet Listener for UDP
ত্রুটি উদাহরণ:
error:
message: Quota exceeded
details: Used 100GB out of 100GB
পরিবহন
Transport Config
লক্ষ্য গন্তব্যের সাথে প্যাকেটগুলি কীভাবে বিনিময় করা উচিত তা নির্দিষ্ট করে।
বিন্যাস: ইন্টারফেস
সমর্থিত ইন্টারফেস প্রকার:
-
tcpudp
: TCPUDPC কনফিগ
TCPUDPC কনফিগারেশন
TCPUDPConfig আলাদা TCP এবং UDP কৌশল সেট করার অনুমতি দেয়।
বিন্যাস: struct
ক্ষেত্র:
-
tcp
( DialerConfig ): টিসিপি সংযোগের জন্য ব্যবহার করার জন্য স্ট্রিম ডায়লার। -
udp
( PacketListenerConfig ): UDP প্যাকেটের জন্য ব্যবহার করার জন্য প্যাকেট লিসেনার।
বিভিন্ন প্রান্তে TCP এবং UDP পাঠানোর উদাহরণ:
tcp:
$type: shadowsocks
endpoint: ss.example.com:80
<<: &cipher
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST "
udp:
$type: shadowsocks
endpoint: ss.example.com:53
<<: *cipher
শেষবিন্দু
এন্ডপয়েন্ট একটি নির্দিষ্ট এন্ডপয়েন্টের সাথে সংযোগ স্থাপন করে। এটি ডায়ালারের চেয়ে পছন্দনীয় কারণ এটি এন্ডপয়েন্ট-নির্দিষ্ট অপ্টিমাইজেশনের জন্য অনুমতি দেয়। স্ট্রিম এবং প্যাকেট এন্ডপয়েন্ট আছে।
Endpoint Config
বিন্যাস: স্ট্রিং | ইন্টারফেস
স্ট্রিং এন্ডপয়েন্ট হল নির্বাচিত এন্ডপয়েন্টের হোস্ট:পোর্ট অ্যাড্রেস। সংযোগটি ডিফল্ট ডায়ালার ব্যবহার করে প্রতিষ্ঠিত হয়।
স্ট্রিম এবং প্যাকেট এন্ডপয়েন্টের জন্য সমর্থিত ইন্টারফেস প্রকার:
-
dial
: DialEndpointConfig -
first-supported
: FirstSupportedConfig -
websocket
: WebsocketEndpointConfig -
shadowsocks
: ShadowsocksConfig
DialEndpointConfig
একটি নির্দিষ্ট ঠিকানা ডায়াল করে সংযোগ স্থাপন করে। এটি একটি ডায়ালার নিতে পারে, যা কৌশলগুলির রচনার জন্য অনুমতি দেয়।
বিন্যাস: struct
ক্ষেত্র:
-
address
( স্ট্রিং ): ডায়াল করার শেষ পয়েন্ট ঠিকানা -
dialer
( DialerConfig ): ঠিকানা ডায়াল করতে ডায়ালার ব্যবহার করা হয়
WebsocketEndpointConfig
WebSockets এর উপর দিয়ে একটি শেষ পয়েন্টে টানেল স্ট্রিম এবং প্যাকেট সংযোগ।
স্ট্রিম সংযোগের জন্য, প্রতিটি লেখা একটি WebSocket বার্তায় পরিণত হয়। প্যাকেট সংযোগের জন্য, প্রতিটি প্যাকেট একটি WebSocket বার্তায় পরিণত হয়।
বিন্যাস: struct
ক্ষেত্র:
-
url
( স্ট্রিং ): WebSocket এন্ডপয়েন্টের URL। TLS এর উপর WebSocket এর জন্য স্কিমা অবশ্যইhttps
বাwss
এবং প্লেইনটেক্সট WebSocket এর জন্যhttp
বাws
হতে হবে। -
endpoint
( EndpointConfig ): সংযোগ করার জন্য ওয়েব সার্ভারের এন্ডপয়েন্ট। অনুপস্থিত থাকলে, URL-এ উল্লেখিত ঠিকানার সাথে সংযুক্ত হয়।
ডায়ালার
ডায়ালার একটি এন্ডপয়েন্ট ঠিকানা দিয়ে সংযোগ স্থাপন করে। স্ট্রিম এবং প্যাকেট ডায়ালার আছে।
ডায়ালার কনফিগারেশন
বিন্যাস: শূন্য | ইন্টারফেস
নাল (অনুপস্থিত) ডায়ালার মানে ডিফল্ট ডায়ালার, যা স্ট্রিমের জন্য সরাসরি TCP সংযোগ এবং প্যাকেটের জন্য সরাসরি UDP সংযোগ ব্যবহার করে।
স্ট্রিম এবং প্যাকার ডায়ালারের জন্য সমর্থিত ইন্টারফেস প্রকার:
-
first-supported
: FirstSupportedConfig -
shadowsocks
: ShadowsocksConfig
প্যাকেট শ্রোতা
একটি প্যাকেট লিসেনার একটি সীমাহীন প্যাকেট সংযোগ স্থাপন করে যা একাধিক গন্তব্যে প্যাকেট পাঠাতে ব্যবহার করা যেতে পারে।
PacketListenerConfig
বিন্যাস: শূন্য | ইন্টারফেস
নাল (অনুপস্থিত) প্যাকেট লিসেনার মানে ডিফল্ট প্যাকেট লিসেনার, যা একটি UDP প্যাকেট লিসেনার।
সমর্থিত ইন্টারফেস প্রকার:
-
first-supported
: FirstSupportedConfig -
shadowsocks
: ShadowsocksPacketListenerConfig
কৌশল
শ্যাডোসক্স
LegacyShadowsocksConfig
LegacyShadowsocksConfig একটি টানেলের প্রতিনিধিত্ব করে যা শ্যাডোসককে পরিবহন হিসেবে ব্যবহার করে। এটি পিছনের-সামঞ্জস্যতার জন্য উত্তরাধিকার বিন্যাস প্রয়োগ করে।
বিন্যাস: struct
ক্ষেত্র:
-
server
( স্ট্রিং ): যে হোস্টের সাথে সংযোগ করতে হবে -
server_port
( নম্বর ): যে পোর্ট নম্বরে সংযোগ করতে হবে -
method
( স্ট্রিং ): AEAD সাইফার ব্যবহার করার জন্য -
password
( স্ট্রিং ): এনক্রিপশন কী তৈরি করতে ব্যবহৃত হয় -
prefix
( স্ট্রিং ): উপসর্গ ছদ্মবেশ ব্যবহার করার জন্য। স্ট্রিম এবং প্যাকেট সংযোগে সমর্থিত।
উদাহরণ:
server: example.com
server_port: 4321
method: chacha20-ietf-poly1305
password: SECRET
prefix: "POST "
Legacy ShadowsocksSURI
LegacyShadowsocksSURI একটি টানেলের প্রতিনিধিত্ব করে যা পরিবহন হিসাবে শ্যাডোসককে ব্যবহার করে। এটি ব্যাকওয়ার্ড-কম্প্যাটিবিলিটির জন্য লিগ্যাসি ইউআরএল ফরম্যাট প্রয়োগ করে।
বিন্যাস: স্ট্রিং
Legacy Shadowsocks URI ফরম্যাট এবং SIP002 URI স্কিম দেখুন। আমরা প্লাগইন সমর্থন করি না।
উদাহরণ:
ss://chacha20-ietf-poly1305:SECRET@example.com:443?prefix=POST%20
ShadowsocksConfig
ShadowsocksConfig একটি স্ট্রীম বা প্যাকেট ডায়ালার প্রতিনিধিত্ব করতে পারে, সেইসাথে একটি প্যাকেট লিসেনার যেটি Shadowsocks ব্যবহার করে।
বিন্যাস: struct
ক্ষেত্র:
-
endpoint
( EndpointConfig ): শ্যাডোসকস এন্ডপয়েন্টের সাথে সংযোগ করতে হবে -
cipher
( স্ট্রিং ): AEAD সাইফার ব্যবহার করার জন্য -
secret
( স্ট্রিং ): এনক্রিপশন কী তৈরি করতে ব্যবহৃত হয় -
prefix
( স্ট্রিং , ঐচ্ছিক): ব্যবহার করার জন্য উপসর্গ ছদ্মবেশ । স্ট্রিম এবং প্যাকেট সংযোগে সমর্থিত।
উদাহরণ:
endpoint: example.com:80
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST "
মেটা সংজ্ঞা
FirstSupported Config
অ্যাপ্লিকেশন দ্বারা সমর্থিত প্রথম কনফিগারেশন ব্যবহার করে। এটি পুরানো কনফিগারগুলির সাথে পিছনের-সামঞ্জস্যপূর্ণ থাকাকালীন নতুন কনফিগারেশনগুলিকে অন্তর্ভুক্ত করার একটি উপায়।
বিন্যাস: struct
ক্ষেত্র:
-
options
( EndpointConfig[] | DialerConfig[] | PacketListenerConfig[] ): বিবেচনা করার বিকল্পগুলির তালিকা
উদাহরণ:
options:
- $type: websocket
url: wss://example.com/SECRET_PATH
- ss.example.com:4321
ইন্টারফেস
ইন্টারফেসগুলি একাধিক বাস্তবায়নের মধ্যে একটি বেছে নেওয়ার অনুমতি দেয়। কনফিগার যে ধরনের প্রতিনিধিত্ব করে তা নির্দিষ্ট করতে এটি $type
ক্ষেত্র ব্যবহার করে।
উদাহরণ:
$type: shadowsocks
endpoint: example.com:4321
cipher: chacha20-ietf-poly1305
secret: SECRET