Panduan ini menunjukkan cara menggunakan alat command line Outline SDK untuk memahami dan menghindari gangguan jaringan dari perspektif jarak jauh. Anda akan mempelajari cara menggunakan alat SDK untuk mengukur gangguan jaringan, menguji strategi penghindaran, dan menganalisis hasilnya. Panduan ini akan berfokus pada alat
resolve
, fetch
, dan http2transport
.
Mulai Menggunakan Alat Outline SDK
Anda dapat mulai menggunakan alat Outline SDK langsung dari command line.
Menyelesaikan DNS
Alat resolve
memungkinkan Anda melakukan pencarian DNS dengan resolver tertentu.
Untuk menyelesaikan masalah data A domain:
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
Untuk menyelesaikan data CNAME:
go run github.com/Jigsaw-Code/outline-sdk/x/tools/resolve@latest -resolver 8.8.8.8 -type CNAME www.google.com
Mengambil Halaman Web
Alat fetch
dapat digunakan untuk mengambil konten halaman web.
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest https://example.com
Setelan ini juga dapat memaksa koneksi menggunakan QUIC.
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -proto=h3 https://www.youtube.com
Menggunakan Proxy Lokal
Alat http2transport
membuat proxy lokal untuk merutekan traffic Anda.
Untuk memulai proxy lokal dengan transport Shadowsocks:
go run github.com/Jigsaw-Code/outline-sdk/x/tools/http2transport@latest -localAddr 127.0.0.1:8080 -transport "ss://{your_shadowsocks_credentials}"
Kemudian, Anda dapat menggunakan proxy ini dengan alat lain seperti curl:
curl -p -x http://127.0.0.1:8080 https://ipinfo.io
Menentukan Strategi Pengelakan
Outline SDK memungkinkan spesifikasi berbagai strategi penghindaran yang dapat digabungkan untuk melewati berbagai bentuk gangguan jaringan. Spesifikasi untuk strategi ini ada dalam dokumentasi go.
Strategi Composable
Strategi ini dapat digabungkan untuk membuat teknik penghindaran yang lebih efektif.
- DNS-over-HTTPS dengan Fragmentasi TLS:
doh:name=cloudflare-dns.com&address=cloudflare.net:443 | tlsfrag:1
- SOCKS5-over-TLS dengan Domain Fronting:
tls:sni=decoy.example.com&certname=[HOST] | socks5:[HOST]:[PORT]
- Perutean Multi-hop dengan Shadowsocks:
ss://[USERINFO1]@[HOST1]:[PORT1] | ss://[USERINFO2]@[HOST2]:[PORT2] | ss://[USERINFO3]@[HOST3]:[PORT3]
Akses dan Pengukuran Jarak Jauh
Untuk mengukur interferensi jaringan sebagaimana yang dialami di berbagai wilayah, Anda dapat menggunakan proxy jarak jauh. Anda dapat menemukan atau membuat proxy jarak jauh untuk terhubung.
Opsi Akses Jarak Jauh
Dengan alat fetch
, Anda dapat menguji koneksi dari jarak jauh dengan berbagai cara.
Server Outline
Menghubungkan dari jarak jauh ke server Outline standar dengan transport Shadowsocks.
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -timeout 15 -transport "ss://{remote_shadowsocks_credentials}" https://ipinfo.io | jq
SOCKS5 melalui SSH
Buat proxy SOCKS5 menggunakan tunnel SSH.
ssh -D 127.0.0.1:1080 -C -N $USER@$HOST:$PORT
Hubungkan ke tunnel tersebut menggunakan pengambilan
go run github.com/Jigsaw-Code/outline-sdk/x/tools/fetch@latest -timeout 15 -transport "socks5://localhost:1080" https://ipinfo.io | jq
Studi Kasus: Melewati Pemblokiran YouTube di Iran
Berikut adalah contoh praktis mendeteksi dan melewati gangguan jaringan.
Mendeteksi Blok
Saat mencoba mengambil halaman beranda YouTube melalui proxy Iran, permintaan akan melebihi batas waktu, yang menunjukkan adanya pemblokiran.
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
Perintah ini gagal dengan waktu tunggu.
Melewati dengan Fragmentasi TLS
Dengan menambahkan fragmentasi TLS ke transport, kita dapat melewati pemblokiran ini.
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>'
Perintah ini berhasil mengambil judul halaman beranda YouTube, yaitu
<title>YouTube</title>
.
Melewati dengan Fragmentasi TLS dan DNS-over-HTTPS
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>'
Hal ini juga berhasil menampilkan <title>YouTube</title>
.
Melewati dengan Server Outline
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>'
Tindakan ini juga menampilkan <title>YouTube</title>
.
Analisis dan Referensi Lainnya
Untuk diskusi dan pertanyaan, buka Grup Diskusi SDK Outline.