Referencja cURL · 1 min czytania

curl z proxy SOCKS5: pełna dokumentacja

Ostateczny przewodnik po curl i proxy: SOCKS5 vs SOCKS5h, flagi -x i --socks5-hostname, zmienne środowiskowe, trwały .curlrc i uwierzytelnione punkty końcowe s4m. Gotowe do kopiowania i wklejania.

SOCKS5 vs SOCKS5h, i dlaczego to ma znaczenie

curl obsługuje zarówno proxy HTTP, jak i SOCKS, a dokładny schemat, który wybierzesz, decyduje o tym, gdzie rozwiązywane jest DNS. Przy socks5:// curl rozwiązuje docelową nazwę hosta na twoim własnym komputerze, a następnie łączy się przez proxy, co może ujawniać domeny, które odwiedzasz. Przy socks5h:// (h oznacza nazwę hosta) proxy rozwiązuje DNS zdalnie, więc zapytania nigdy nie opuszczają twojego komputera. Dla prywatności, preferuj socks5h — ta sama zasada dotyczy flagi --socks5-hostname, która jest długą wersją.

s4m daje ci oba protokoły na jednym koncie: SOCKS5 na porcie 1080 i HTTP na porcie 3128, oba uwierzytelnione za pomocą USER:PASS w stosunku do proxy.s4m.online. Ogólna flaga -x / --proxy akceptuje pełny URL, w tym schemat, więc jedna flaga obejmuje każdy przypadek. Aby poznać podstawy routingu curl przez proxy, zobacz przewodnik po proxy curl; ta strona jest głębszym odniesieniem dla SOCKS5, zmiennych środowiskowych i trwałej konfiguracji. Tło dotyczące protokołów znajduje się w czym jest SOCKS5.

Każde wywołanie proksy, w jednym miejscu

SOCKS5, SOCKS5h, HTTP, uwierzytelnianie, zmienne środowiskowe i plik .curlrc. Zastąp USER:PASS swoimi danymi uwierzytelniającymi.

bash
# --- SOCKS5 with REMOTE DNS (recommended) ---
curl -x socks5h://USER:PASS@proxy.s4m.online:1080 https://api.ipify.org
# equivalent long form:
curl --socks5-hostname proxy.s4m.online:1080 -U USER:PASS https://api.ipify.org

# --- SOCKS5 with LOCAL DNS (leaks hostnames) ---
curl -x socks5://USER:PASS@proxy.s4m.online:1080 https://api.ipify.org

# --- HTTP / HTTPS proxy (port 3128) ---
curl -x http://USER:PASS@proxy.s4m.online:3128 https://api.ipify.org

# --- Whole-session env vars (any http_proxy-aware tool honors these) ---
export ALL_PROXY="socks5h://USER:PASS@proxy.s4m.online:1080"
export HTTPS_PROXY="http://USER:PASS@proxy.s4m.online:3128"
export NO_PROXY="localhost,127.0.0.1,.internal"
curl https://api.ipify.org        # now proxied with no -x flag

# --- Persistent config: ~/.curlrc (applied to every curl run) ---
cat > ~/.curlrc <<'RC'
proxy = socks5h://proxy.s4m.online:1080
proxy-user = USER:PASS
connect-timeout = 10
RC
curl https://api.ipify.org        # reads ~/.curlrc automatically

# --- Ignore ~/.curlrc for one call ---
curl -q --noproxy '*' https://api.ipify.org

Skonfiguruj trwałe proxy dla curl

Więc każde polecenie curl jest proxy bez powtarzania flag.

Wybierz schemat

Wybierz socks5h:// na porcie 1080 dla zdalnego DNS i dowolnego protokołu, lub http:// na porcie 3128 dla zwykłego ruchu internetowego. socks5h to domyślna opcja bezpieczna dla prywatności.

Utwórz ~/.curlrc

Dodaj proxy = socks5h://proxy.s4m.online:1080 oraz proxy-user = USER:PASS do ~/.curlrc. curl odczytuje ten plik przy każdym uruchomieniu, chyba że przekażesz -q.

Ustaw zmienne środowiskowe dla innych narzędzi

Eksportuj ALL_PROXY, aby każdy CLI obsługujący http_proxy (wget, git, menedżery pakietów) dzielił to samo wyjście, i ustaw NO_PROXY dla hostów, które muszą omijać proxy.

Zweryfikuj i dodaj wyjątki

Uruchom curl https://api.ipify.org, aby potwierdzić adres IP wyjścia, a następnie użyj --noproxy lub NO_PROXY, aby wykluczyć wewnętrzne hosty, które nigdy nie chcesz, aby były proxy.

Opcje uwierzytelniania, priorytet i NTLM

Możesz dostarczyć dane uwierzytelniające na dwa sposoby: w linii w URL (socks5h://USER:PASS@host) lub osobno z -U / --proxy-user. Jeśli twoje hasło zawiera znaki takie jak @ lub :, preferuj -U lub zakoduj je w URL, aby curl poprawnie zinterpretował URL. Flagi wiersza poleceń zawsze mają pierwszeństwo przed zmiennymi środowiskowymi, które z kolei mają pierwszeństwo przed ~/.curlrc — więc jednorazowe -x ma przewagę nad twoją trwałą konfiguracją.

Dla korporacyjnych serwerów proxy, które używają uwierzytelniania Windows NTLM, curl obsługuje --proxy-ntlm obok -U; s4m sam w sobie używa standardowego USER:PASS (Basic) uwierzytelniania, więc nie będziesz potrzebować NTLM z naszymi punktami końcowymi. Jeśli żądanie zwraca 407 Wymagane uwierzytelnienie proxy, twoje dane uwierzytelniające są brakujące lub błędne — zobacz przewodnik naprawy 407. Te same zmienne środowiskowe zasilają wget i inne narzędzia, a ty możesz zweryfikować dowolny punkt końcowy za pomocą narzędzi lub testować otwarte serwery proxy z darmowej listy.

FAQ

Pytania, odpowiedzi

Jaka jest różnica między socks5 a socks5h w curl?

socks5:// rozwiązuje DNS na twojej lokalnej maszynie przed połączeniem; socks5h:// prosi proxy o zdalne rozwiązanie. Użyj socks5h, aby uniknąć wycieku nazw hostów, które żądasz. Flaga --socks5-hostname jest taka sama jak socks5h.

Jak sprawić, aby curl używał proxy dla każdego polecenia?

Ustaw proxy = socks5h://proxy.s4m.online:1080 i proxy-user = USER:PASS w ~/.curlrc, lub eksportuj ALL_PROXY. curl wtedy automatycznie proxyzuje każde żądanie; użyj -q lub --noproxy, aby pominąć to dla jednego wywołania.

Czy s4m potrzebuje uwierzytelniania proxy NTLM?

Nie. s4m używa standardowej autoryzacji USER:PASS (Basic) na portach 1080 i 3128. --proxy-ntlm curl jest tylko dla korporacyjnych proxy, które wymagają Windows NTLM.

Dlaczego otrzymuję 407 Wymagana autoryzacja proxy?

Twoje dane logowania są brakujące, źle sformatowane lub błędne. Podaj je z -U USER:PASS lub w linii w adresie URL proxy, kodując wszelkie znaki specjalne w haśle. Zobacz nasz przewodnik 407, aby uzyskać pełną listę kontrolną.

Jedno końcowe, każdy trik curl

Uwierzytelnione proxy SOCKS5 (1080) i HTTP (3128) na proxy.s4m.online, gotowe do -x, --socks5-hostname i ~/.curlrc. Mierzone płatne za użycie, dedykowany IP opcjonalny.

Ludzie znaleźli tę stronę, szukając

Rzeczywiste frazy wyszukiwania, na które ta strona odpowiada — powiązane otwierają stronę, która je szczegółowo omawia.