Bu kılavuzda, Outline SDK'nın komut satırı araçlarını kullanarak ağdaki uzaktan müdahaleleri nasıl anlayıp engelleyeceğiniz gösterilmektedir. Ağ müdahalesini ölçmek, atlatma stratejilerini test etmek ve sonuçları analiz etmek için SDK'nın araçlarını nasıl kullanacağınızı öğreneceksiniz. Bu rehberde resolve
, fetch
ve http2transport
araçlarına odaklanılacaktır.
Outline SDK Araçlarını Kullanmaya Başlama
Outline SDK araçlarını doğrudan komut satırından kullanmaya başlayabilirsiniz.
DNS'yi çözme
resolve
aracı, belirtilen bir çözümleyiciyle DNS aramaları yapmanıza olanak tanır.
Bir alanın A kaydını çözmek için:
go run github.com/Jigsaw-Code/outline-sdk/x/tools/resolve@latest -resolver 8.8.8.8 -type A 1.2.3.4.nip.io
CNAME kaydını çözmek için:
go run github.com/Jigsaw-Code/outline-sdk/x/tools/resolve@latest -resolver 8.8.8.8 -type CNAME www.google.com
Web sayfası getirme
fetch
aracı, bir web sayfasının içeriğini almak için kullanılabilir.
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest https://example.com
Ayrıca bağlantının QUIC kullanmasını da zorlayabilir.
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -proto=h3 https://www.youtube.com
Yerel proxy kullanma
http2transport
aracı, trafiğinizi yönlendirmek için yerel bir proxy oluşturur.
Shadowsocks aktarımıyla yerel proxy başlatmak için:
go run github.com/Jigsaw-Code/outline-sdk/x/tools/http2transport@latest -localAddr 127.0.0.1:8080 -transport "ss://{your_shadowsocks_credentials}"
Ardından, bu proxy'yi curl gibi diğer araçlarla kullanabilirsiniz:
curl -p -x http://127.0.0.1:8080 https://ipinfo.io
Hileli Atlatma Stratejilerini Belirtme
Outline SDK, farklı ağ müdahale biçimlerini atlamak için birleştirilebilen çeşitli atlatma stratejilerinin belirtilmesine olanak tanır. Bu stratejilerin özellikleri Go dokümanlarında yer alır.
Bileşenlere Ayrılabilir Stratejiler
Bu stratejiler, daha güçlü atlatma teknikleri oluşturmak için birleştirilebilir.
- TLS parçalama ile DNS-over-HTTPS:
doh:name=cloudflare-dns.com&address=cloudflare.net:443 | tlsfrag:1
- SOCKS5-over-TLS with Domain Fronting:
tls:sni=decoy.example.com&certname=[HOST] | socks5:[HOST]:[PORT]
- Shadowsocks ile Çoklu Atlama Yönlendirme:
ss://[USERINFO1]@[HOST1]:[PORT1] | ss://[USERINFO2]@[HOST2]:[PORT2] | ss://[USERINFO3]@[HOST3]:[PORT3]
Uzaktan erişim ve ölçüm
Farklı bölgelerde yaşanan ağ parazitini ölçmek için uzak proxy'leri kullanabilirsiniz. Bağlanmak için uzaktan proxy'ler bulabilir veya oluşturabilirsiniz.
Uzaktan Erişim Seçenekleri
fetch
aracını kullanarak bağlantıları uzaktan çeşitli şekillerde test edebilirsiniz.
Outline Sunucusu
Shadowsocks aktarımıyla standart bir Outline sunucusuna uzaktan bağlanın.
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -timeout 15 -transport "ss://{remote_shadowsocks_credentials}" https://ipinfo.io | jq
SSH üzerinden SOCKS5
SSH tüneli kullanarak SOCKS5 proxy'si oluşturun.
ssh -D 127.0.0.1:1080 -C -N $USER@$HOST:$PORT
Fetch kullanarak bu tünele bağlanma
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -timeout 15 -transport "socks5://localhost:1080" https://ipinfo.io | jq
Örnek olay: İran'da YouTube engellemesini atlama
Ağ parazitini tespit etme ve atlama ile ilgili pratik bir örneği aşağıda bulabilirsiniz.
Bloğu Algılama
YouTube ana sayfası İranlı bir proxy üzerinden getirilmeye çalışıldığında istek zaman aşımına uğruyor. Bu durum, engelleme olduğunu gösteriyor.
export TRANSPORT="ss://{remote_shadowsocks_credentials}"
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -timeout 15 -transport "${TRANSPORT}|override:host=$(dig +short www.youtube.com | tail -1)" https://www.youtube.com
Bu komut, zaman aşımı nedeniyle başarısız olur.
TLS parçalama ile atlama
Taşımaya TLS parçalama ekleyerek bu engeli atlayabiliriz.
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -timeout 15 -transport "${TRANSPORT}|override:host=$(dig +short www.youtube.com | tail -1)|tlsfrag:1" https://www.youtube.com | grep -oe '<title>.*</title>'
Bu komut, YouTube ana sayfasının başlığını başarıyla alır. Başlık, <title>YouTube</title>
şeklindedir.
TLS parçalama ve DNS-over-HTTPS ile atlama
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -timeout 15 -transport "${TRANSPORT}|tlsfrag:1|doh:name=cloudflare-dns.com&address=www.cloudflare.net" https://www.youtube.com | grep -oe '<title>.*</title>'
Bu işlem de <title>YouTube</title>
değerini başarıyla döndürür.
Outline sunucusuyla atlama
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -timeout 15 -transport "${TRANSPORT}|ss://<your_shadowsocks_credentials>" https://www.youtube.com | grep -oe '<title>.*</title>'
Bu da <title>YouTube</title>
değerini döndürür.
Daha Fazla Analiz ve Kaynak
Tartışmalar ve sorular için Outline SDK Tartışma Grubu'nu ziyaret edin.