স্মার্ট ডায়ালার এমন একটি কৌশল অনুসন্ধান করে যা পরীক্ষার ডোমেনের একটি প্রদত্ত তালিকার জন্য DNS এবং TLS আনব্লক করে। এটি থেকে বাছাই করার জন্য একাধিক কৌশল বর্ণনা করে একটি কনফিগারেশন লাগে।
স্মার্ট ডায়লারের জন্য YAML কনফিগারেশন
স্মার্ট ডায়ালার যে কনফিগারেশন নেয় তা একটি YAML ফর্ম্যাটে। এখানে একটি উদাহরণ:
dns:
- system: {}
- https:
name: 8.8.8.8
- https:
name: 9.9.9.9
tls:
- ""
- split:2
- tlsfrag:1
fallback:
- ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTprSzdEdHQ0MkJLOE9hRjBKYjdpWGFK@1.2.3.4:9999/?outline=1
DNS কনফিগারেশন
-
dns
ক্ষেত্র পরীক্ষা করার জন্য DNS সমাধানকারীদের একটি তালিকা নির্দিষ্ট করে। - প্রতিটি DNS সমাধানকারী নিম্নলিখিত ধরনের হতে পারে:
-
system
: সিস্টেম রিসোভার ব্যবহার করুন। একটি খালি বস্তু দিয়ে নির্দিষ্ট করুন। -
https
: HTTPS (DoH) সমাধানকারীর উপর একটি এনক্রিপ্ট করা DNS ব্যবহার করুন। -
tls
: TLS (DoT) সমাধানকারীর উপর একটি এনক্রিপ্ট করা DNS ব্যবহার করুন। -
udp
: একটি UDP সমাধানকারী ব্যবহার করুন। -
tcp
: একটি TCP সমাধানকারী ব্যবহার করুন।
-
DNS-ওভার-HTTPS সমাধানকারী (DoH)
https:
name: dns.google
address: 8.8.8.8
-
name
: DoH সার্ভারের ডোমেইন নাম। -
address
: হোস্ট: DoH সার্ভারের পোর্ট।name
ডিফল্ট: 443.
DNS-ওভার-TLS সমাধানকারী (DoT)
tls:
name: dns.google
address: 8.8.8.8
-
name
: DoT সার্ভারের ডোমেইন নাম। -
address
: হোস্ট: DoT সার্ভারের পোর্ট।name
ডিফল্ট: 853.
UDP সমাধানকারী
udp:
address: 8.8.8.8
-
address
: হোস্ট: UDP সমাধানকারীর পোর্ট।
TCP সমাধানকারী
tcp:
address: 8.8.8.8
-
address
: হোস্ট:টিসিপি সমাধানকারীর পোর্ট।
TLS কনফিগারেশন
-
tls
ক্ষেত্র পরীক্ষা করার জন্য TLS পরিবহনের একটি তালিকা নির্দিষ্ট করে। - প্রতিটি TLS পরিবহন একটি স্ট্রিং যা ব্যবহার করার জন্য পরিবহন নির্দিষ্ট করে।
- উদাহরণস্বরূপ,
override:host=cloudflare.net|tlsfrag:1
একটি পরিবহন নির্দিষ্ট করে যা ক্লাউডফ্লেয়ার এবং TLS ফ্র্যাগমেন্টেশনের সাথে ডোমেন ফ্রন্টিং ব্যবহার করে। বিস্তারিত জানার জন্য কনফিগার ডকুমেন্টেশন দেখুন।
ফলব্যাক কনফিগারেশন
একটি ফলব্যাক কনফিগারেশন ব্যবহার করা হয় যদি কোনো প্রক্সিলেস কৌশল সংযোগ করতে সক্ষম না হয়। উদাহরণস্বরূপ এটি ব্যবহারকারীর সংযোগ চেষ্টা করার জন্য একটি ব্যাকআপ প্রক্সি সার্ভার নির্দিষ্ট করতে পারে৷ একটি ফলব্যাক ব্যবহার শুরু করা ধীর হবে, যেহেতু প্রথমে অন্যান্য DNS/TLS কৌশলগুলি অবশ্যই ব্যর্থ/টাইমআউট হবে৷
ফলব্যাক স্ট্রিংগুলি হওয়া উচিত:
- একটি বৈধ
StreamDialer
কনফিগারেশন স্ট্রিং যেমনconfigurl
এ সংজ্ঞায়িত করা হয়েছে। - একটি বৈধ Psiphon কনফিগারেশন অবজেক্ট একটি
psiphon
ক্ষেত্রের একটি শিশু হিসাবে।
Shadowsocks সার্ভার উদাহরণ
fallback:
- ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTprSzdEdHQ0MkJLOE9hRjBKYjdpWGFK@1.2.3.4:9999/?outline=1
SOCKS5 সার্ভারের উদাহরণ
fallback:
- socks5://[USERINFO]@[HOST]:[PORT]
Psiphon কনফিগার উদাহরণ
Psiphon নেটওয়ার্ক ব্যবহার করতে, আপনার প্রয়োজন হবে:
- একটি কনফিগারেশন পেতে Psiphon টিমের সাথে যোগাযোগ করুন যা আপনাকে তাদের নেটওয়ার্কে অ্যাক্সেস দেয়। এটি একটি চুক্তি প্রয়োজন হতে পারে.
- আপনার স্মার্ট ডায়লার কনফিগারেশনের
fallback
বিভাগে প্রাপ্ত Psiphon কনফিগারেশন যোগ করুন। যেহেতু JSON YAML-এর সাথে সামঞ্জস্যপূর্ণ, আপনি আপনার Psiphon কনফিগারেশনটি সরাসরিfallback
বিভাগে অনুলিপি এবং পেস্ট করতে পারেন, যেমন:
fallback:
- psiphon: {
"PropagationChannelId": "FFFFFFFFFFFFFFFF",
"SponsorId": "FFFFFFFFFFFFFFFF",
"DisableLocalSocksProxy" : true,
"DisableLocalHTTPProxy" : true,
...
}
কিভাবে স্মার্ট ডায়ালার ব্যবহার করবেন
স্মার্ট ডায়ালার ব্যবহার করতে, একটি StrategyFinder
অবজেক্ট তৈরি করুন এবং টেস্ট ডোমেন এবং YAML কনফিগারেশনের তালিকায় পাস করে NewDialer
পদ্ধতিতে কল করুন। NewDialer
পদ্ধতি একটি transport.StreamDialer
ফেরত দেবে। স্ট্রিমডাইলার যেটি পাওয়া কৌশল ব্যবহার করে সংযোগ তৈরি করতে ব্যবহার করা যেতে পারে। যেমন:
finder := &smart.StrategyFinder{
TestTimeout: 5 * time.Second,
LogWriter: os.Stdout,
StreamDialer: &transport.TCPDialer{},
PacketDialer: &transport.UDPDialer{},
}
configBytes := []byte(`
dns:
- system: {}
- https:
name: 8.8.8.8
- https:
name: 9.9.9.9
tls:
- ""
- split:2
- tlsfrag:1
fallback:
- ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTprSzdEdHQ0MkJLOE9hRjBKYjdpWGFK@1.2.3.4:9999/?outline=1
`)
dialer, err := finder.NewDialer(
context.Background(),
[]string{"www.google.com"},
configBytes
)
if err != nil {
// Handle error.
}
// Use dialer to create connections.
এটি একটি মৌলিক উদাহরণ এবং আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে মানিয়ে নেওয়ার প্রয়োজন হতে পারে।