Cipta Proksi SOCKS Tempatan dengan SSH
Gunakan pemajuan dinamik OpenSSH pada 127.0.0.1, kekalkan proses sepanjang sesi dan bezakan pendengar berfungsi daripada destinasi yang boleh dicapai.
Dengan akses SSH yang dibenarkan ke pelayan, OpenSSH boleh mencipta pendengar SOCKS pada komputer anda. Sambungan SSH membawa trafik yang dimajukan dan pelayan jauh membuat sambungan ke destinasi.
Pendengar untuk loopback sahaja
ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]
Gantikan akaun dan nama hos. Pelayan SSH mesti membenarkan pemajuan; pentadbir boleh mengehadkan pemajuan serta destinasi secara berasingan daripada log masuk akaun.
-D mencipta pemajuan dinamik dan alamat loopback yang jelas mengehadkan pendengar kepada mesin ini. -N tidak menjalankan arahan jauh; -T tidak memperuntukkan pseudoterminal. ControlPath=none mengelakkan master perkongsian sedia ada, manakala ForkAfterAuthentication=no mengekalkan panggilan ini di latar depan.
Pastikan proses berjalan semasa menggunakan proksi. Jika port 1080 digunakan, pilih port tinggi lain yang belum digunakan dan kemas kini klien. ExitOnForwardFailure=yes menyebabkan SSH keluar jika pendengar tidak dapat dicipta.
Menggunakan titik akhir SOCKS
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/
Permintaan ini mewakilkan pengendalian nama destinasi melalui SOCKS5. Aplikasi lain memerlukan konfigurasi SOCKS sendiri; medan proksi HTTP tidak boleh bercakap SOCKS dengan pendengar ini.
Untuk menyemak proses yang memiliki port:
ss -ltnp 'sport = :1080'
Proses SSH yang dimaksudkan sepatutnya memiliki pendengar loopback. Permintaan melaluinya menguji sama ada pelayan jauh juga mencapai sasaran. Gunakan destinasi dalam kawalan anda apabila memeriksa alamat keluar yang diperhatikan.
Jangka hayat sesi
Ctrl-C menutup proses SSH, pendengar dan sambungan yang dimajukan. Sambungan SSH terputus juga menjadikan proksi tidak tersedia.
ExitOnForwardFailure menyemak persediaan awal. Ia tidak menamatkan SSH setiap kali sambungan destinasi kemudian gagal, jadi diagnosis sesi, port tempatan dan permintaan destinasi secara berasingan.