Skip to content
intermediate

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.

Linux SOCKS5 Web Scraping

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

  1. Kumpulkan endpoint. Di dasbor ProxyScrape, catat host, port HTTP, port SOCKS5, serta nama pengguna dan kata sandi Anda.

  2. 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"
    
  3. Uji proxy HTTP dengan curl.

    curl -x "http://$PS_USER:$PS_PASS@$PS_HOST:$PS_HTTP_PORT" https://ipinfo.io/ip
    
  4. Uji SOCKS5. --socks5-hostname menyelesaikan 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
    
  5. 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 mematuhi all_proxy; konfirmasi dengan curl -v atau dokumentasi alat itu sendiri.

  6. 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:PORT
    

    Lalu batasi akses dengan chmod 600 ~/.wgetrc.

  7. Rutekan binari arbitrer dengan proxychains-ng. Pasang proxychains-ng dan tambahkan endpoint Anda ke proxychains.conf:

    socks5 HOST PORT USER PASS
    

    proxychains-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
    
  8. 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.

  9. Jauhkan rahasia dari file teks biasa. Utamakan variabel lingkungan atau ~/.netrc dengan chmod 600, dan ingat bahwa kredensial yang diteruskan langsung pada baris perintah dapat terlihat oleh pengguna lain melalui ps aux.