Akıllı Çevirici, belirli bir test alanı listesi için DNS ve TLS'nin engellemesini kaldıran bir strateji arar. Aralarından seçim yapabileceğiniz birden fazla stratejiyi açıklayan bir yapılandırma alır.
Akıllı Arama için YAML yapılandırması
Akıllı Arama Motoru'nun aldığı yapılandırma YAML biçimindedir. Örnek:
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 Yapılandırması
dns
alanı, test edilecek DNS çözümleyicilerin listesini belirtir.- Her DNS çözümleyici aşağıdaki türlerden biri olabilir:
system
: Sistem çözümleyiciyi kullanın. Boş bir nesneyle belirtin.https
: HTTPS üzerinden şifrelenmiş DNS (DoH) çözümleyici kullanın.tls
: TLS üzerinden şifrelenmiş DNS (DoT) çözümleyici kullanın.udp
: UDP çözümleyici kullanın.tcp
: TCP çözümleyici kullanın.
DNS-over-HTTPS Çözümleyicisi (DoH)
https:
name: dns.google
address: 8.8.8.8
name
: DoH sunucusunun alan adı.address
: DoH sunucusunun ana makine adı:bağlantı noktası. Varsayılan olarakname
:443 değerine ayarlanır.
TLS üzerinden DNS çözümleyici (DoT)
tls:
name: dns.google
address: 8.8.8.8
name
: DoT sunucusunun alan adı.address
: DoT sunucusunun ana makine:bağlantı noktası. Varsayılan olarakname
:853 değerine ayarlanır.
UDP Çözümleyici
udp:
address: 8.8.8.8
address
: UDP çözümleyicinin ana makine:bağlantı noktası.
TCP Çözümleyici
tcp:
address: 8.8.8.8
address
: TCP çözümleyicinin ana makine:bağlantı noktası.
TLS Yapılandırması
tls
alanı, test edilecek TLS aktarımlarının listesini belirtir.- Her TLS aktarımı, kullanılacak aktarımı belirten bir dizedir.
- Örneğin,
override:host=cloudflare.net|tlsfrag:1
, Cloudflare ile alan önleme ve TLS parçalama kullanan bir aktarımı belirtir. Ayrıntılar için yapılandırma dokümanlarını inceleyin.
Yedek Yapılandırması
Proxy kullanmayan stratejilerden hiçbiri bağlanamazsa yedek yapılandırma kullanılır. Örneğin, kullanıcının bağlantısını denemek için yedek bir proxy sunucusu belirtebilir. Diğer DNS/TLS stratejilerinin başarısız olması/zaman aşımı alması gerektiğinden, yedek stratejinin kullanılması daha yavaş başlar.
Yedek dizeler şu şekilde olmalıdır:
configurl
bölümünde tanımlandığı şekilde geçerli birStreamDialer
yapılandırma dizesi.psiphon
alanının alt öğesi olarak geçerli bir Psiphon yapılandırma nesnesi.
Shadowsocks sunucusu örneği
fallback:
- ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTprSzdEdHQ0MkJLOE9hRjBKYjdpWGFK@1.2.3.4:9999/?outline=1
SOCKS5 sunucusu örneği
fallback:
- socks5://[USERINFO]@[HOST]:[PORT]
Psiphon yapılandırma örneği
Psiphon ağını kullanmak için:
- Ağlarına erişim sağlayan bir yapılandırma almak için Psiphon ekibiyle iletişime geçin. Bu işlem için sözleşme yapılması gerekebilir.
- Alınan Psiphon yapılandırmasını, Akıllı Arama Motoru yapılandırmanızın
fallback
bölümüne ekleyin. JSON, YAML ile uyumlu olduğundan Psiphon yapılandırmanızı doğrudanfallback
bölümüne kopyalayıp yapıştırabilirsiniz. Örneğin:
fallback:
- psiphon: {
"PropagationChannelId": "FFFFFFFFFFFFFFFF",
"SponsorId": "FFFFFFFFFFFFFFFF",
"DisableLocalSocksProxy" : true,
"DisableLocalHTTPProxy" : true,
...
}
Akıllı çeviriciyi kullanma
Akıllı Arama özelliğini kullanmak için bir StrategyFinder
nesnesi oluşturun ve test alan adlarının listesini ve YAML yapılandırmasını ileterek NewDialer
yöntemini çağırın.
NewDialer
yöntemi, bulunan stratejiyi kullanarak bağlantı oluşturmak için kullanılabilecek bir transport.StreamDialer
döndürür. Örneğin:
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.
Bu temel bir örnektir ve özel kullanım alanınıza göre uyarlanması gerekebilir.