شمارهگیر هوشمند راهبردی را جستجو میکند که ساناد و «امنیت لایه انتقال» را برای فهرست آزمایش دامنههای ارائهشده رفع انسداد میکند. از پیکربندیای استفاده میکند که چندین راهبرد را شرح میدهد تا از میان آنها انتخاب شود.
پیکربندی 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فهرستی از رافعهای ساناد را برای آزمایش معین میکند. - هر رافع ساناد میتواند یکیاز انواع زیر باشد:
-
system: استفاده کردن از رافع سیستم. با شیء خالی معین میشود. -
https: استفاده کردن از ساناد رمزگذاریشده روی رافع (DoH) اچتیتیپیاس. -
tls: استفاده کردن از ساناد رمزگذاریشده روی رافع (DoT) «امنیت لایه انتقال». -
udp: استفاده کردن از رافع UDP. -
tcp: استفاده کردن از رافع TCP.
-
رافع DNS-over-HTTP (DoH)
https:
name: dns.google
address: 8.8.8.8
-
name:نام دامنه سرور DoH. -
address: میزبان:درگاه سرور DoH. پیشفرضها بهname:۴۴۳.
رافع DNS-over-TLS (DoT)
tls:
name: dns.google
address: 8.8.8.8
-
name: نام دامنه سرور DoT -
address: میزبان:درگاه سرور DoT. پیشفرضها بهname:۸۵۳.
رافع UDP
udp:
address: 8.8.8.8
-
address: میزبان:درگاه رافع UDP.
رافع TCP
tcp:
address: 8.8.8.8
-
address: میزبان:درگاه رافع TCP.
پیکربندی «امنیت لایه انتقال»
- فیلد
tlsفهرستی از رافعهای «امنیت لایه انتقال» را برای آزمایش معین میکند. - هر حملونقل «امنیت لایه انتقال» رشتهای است که حملونقل برای استفاده را معین میکند.
- برای نمونه،
override:host=cloudflare.net|tlsfrag:1حملونقلی را معین میکند که از دامنهای استفاده میکند که خط مقدم آن تکهتکهسازی «امنیت لایه انتقال» و Cloudflare است. برای جزئیات بیشتر، مستندسازی پیکربندی را ببینید.
پیکربندی جایگزین
پیکربندی جایگزین وقتی استفاده میشود که هیچیک از راهبردهای بدون پراکسی نتوانند ارتباط را برقرار کنند. برای نمونه، میتوان پراکسی سرور پشتیبان را معین کرد تا برای اتصال کاربر عمل کند. شروع بااستفاده از جایگزین کندتر خواهد بود زیرا پیشاز آن ابتدا باید راهبردهای دیگر ساناد/ «امنیت لایه انتقال» عمل نکنند/ مهلت آنها تمام شود.
رشتههای جایگزین باید:
- رشته پیکربندی
StreamDialerهمانگونه که درconfigurlتعریف شده است معتبر باشد. - شیء پیکربندی Psiphon معتبری بهعنوان فرزند فیلد
psiphonباشد.
نمونه سرور Shadowsocks
fallback:
- ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTprSzdEdHQ0MkJLOE9hRjBKYjdpWGFK@1.2.3.4:9999/?outline=1
نمونه سرور SOCKS5
fallback:
- socks5://[USERINFO]@[HOST]:[PORT]
نمونه پیکربندی Psiphon
برای استفاده کردن از شبکه Psiphon، شما باید:
- با تیم Psiphon تماس بگیرید تا پیکربندیای را دریافت کنید که به شما اجازه دسترسی به شبکه میدهد. برای دریافت کردن این اجازه، ممکن است به قرارداد نیاز داشته باشید.
- پیکربندی Psiphon را که دریافت کردهاید به بخش
fallbackدر پیکربندی «شمارهگیر هوشمند» خودتان اضافه کنید. چون 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.
این مثالی ساده است و ممکن است برای استفاده کردن برای مورد ویژه شما لازم باشد آن را سازگار کنید.