Cara Merutekan Alat CLI Linux Melalui Proxy SOCKS5 ProxyScrape
Kirim curl, wget, git, proxychains, dan Python melalui endpoint HTTP dan SOCKS5 ProxyScrape di Linux, dengan penanganan kredensial yang aman dan penyiapan SOCKS5h bebas kebocoran DNS.
Ringkasan
Di Linux, sebagian besar alat tidak membaca satu pengaturan proxy global — setiap program melihat file konfigurasinya sendiri atau variabel lingkungan http_proxy, https_proxy, dan all_proxy. ProxyScrape mendukung HTTP dan SOCKS5, dan panduan ini menunjukkan cara mengarahkan alat command-line umum ke endpoint Anda.
Pilih SOCKS5 dengan skema socks5h ketika Anda ingin pencarian DNS terjadi di proxy, bukan secara lokal. Itu menghindari kebocoran DNS dan mencegah kegagalan saat target menggunakan nama yang tidak dapat dilihat oleh resolver lokal Anda.
Langkah-langkah
-
Kumpulkan endpoint. Di dasbor ProxyScrape, catat host, port HTTP, port SOCKS5, serta nama pengguna dan kata sandi Anda.
-
Ekspor kredensial untuk sesi shell Anda. Hindari mengetikkan kata sandi langsung ke dalam perintah, karena akan tersimpan dalam riwayat shell:
read -rsp "ProxyScrape username: " PS_USER && echo read -rsp "ProxyScrape password: " PS_PASS && echo export PS_HOST="your-host" export PS_HTTP_PORT="your-http-port" export PS_SOCKS_PORT="your-socks5-port" -
Uji proxy HTTP dengan curl.
curl -x "http://$PS_USER:$PS_PASS@$PS_HOST:$PS_HTTP_PORT" https://ipinfo.io/ip -
Uji SOCKS5.
--socks5-hostnamemenyelesaikan DNS melalui proxy. Autentikasi nama pengguna/kata sandi SOCKS5 memerlukan curl 7.51.0 atau lebih baru:curl --socks5-hostname "$PS_HOST:$PS_SOCKS_PORT" -U "$PS_USER:$PS_PASS" https://ipinfo.io/ip -
Atur variabel lingkungan untuk alat yang mendukungnya.
export http_proxy="http://$PS_USER:$PS_PASS@$PS_HOST:$PS_HTTP_PORT" export https_proxy="$http_proxy" export no_proxy="localhost,127.0.0.1,.local"Untuk SOCKS5, gunakan
export all_proxy="socks5h://$PS_USER:$PS_PASS@$PS_HOST:$PS_SOCKS_PORT". Tidak semua program mematuhiall_proxy; konfirmasi dengancurl -vatau dokumentasi alat itu sendiri. -
Konfigurasikan wget. wget tidak mendukung proxy SOCKS, jadi gunakan port HTTP di
~/.wgetrc:use_proxy = yes http_proxy = http://USER:PASS@HOST:PORT https_proxy = http://USER:PASS@HOST:PORTLalu batasi akses dengan
chmod 600 ~/.wgetrc. -
Rutekan binari arbitrer dengan proxychains-ng. Pasang
proxychains-ngdan tambahkan endpoint Anda keproxychains.conf:socks5 HOST PORT USER PASSproxychains-ng menerima kolom nama pengguna dan kata sandi opsional setelah port; jika build Anda menolaknya, periksa dokumentasi distribusi Anda untuk versi tersebut. Lalu awali perintah apa pun dengan:
proxychains4 curl https://ipinfo.io/ip -
Gunakan dari Python.
import os, requests url = f"http://{os.environ['PS_USER']}:{os.environ['PS_PASS']}@{os.environ['PS_HOST']}:{os.environ['PS_HTTP_PORT']}" proxies = {"http": url, "https": url} print(requests.get("https://ipinfo.io/ip", proxies=proxies, timeout=15).text)Pasang
requests[socks]jika Anda lebih memilih port SOCKS5. -
Jauhkan rahasia dari file teks biasa. Utamakan variabel lingkungan atau
~/.netrcdenganchmod 600, dan ingat bahwa kredensial yang diteruskan langsung pada baris perintah dapat terlihat oleh pengguna lain melaluips aux.