La frase única#
curl -x http://USER-cc-us:PASS@res.proxy-cyber.com:9000 https://api.ipify.org-x (o --proxy) toma la URL del proxy con las credenciales incrustadas. cURL crea un túnel a los destinos HTTPS con CONNECT automáticamente y le pide al proxy que resuelva el nombre de host.
Banderas que vale la pena conocer#
| Bandera | Propósito |
|---|---|
| -x, --URL proxy | El proxy: esquema, host, puerto, credenciales opcionales |
| -U, --proxy-user usuario:pasar | Credenciales por separado, útil cuando la contraseña tiene caracteres especiales |
| --proxy-básico | Forzar autenticación de proxy básica (el valor predeterminado cuando se proporciona una contraseña) |
| -v | Mostrar el intercambio CONNECT, los códigos de estado del proxy y los encabezados de respuesta |
| --noproxy '*' | Ignorar las variables de entorno del proxy para esta llamada |
| -w '%{tiempo_total}\n' | Imprimir tiempos para comparar salidas |
SOCKS5 y DNS remoto#
# Hostname resolved at the exit (recommended)
curl -x socks5h://USER-cc-de:PASS@res.proxy-cyber.com:9001 https://api.ipify.org
# Hostname resolved locally, then the IP is sent to the proxy (leaks the lookup)
curl -x socks5://USER-cc-de:PASS@res.proxy-cyber.com:9001 https://api.ipify.orgVariables ambientales#
Herramientas que pagan por cURL, y muchas otras, honran http_proxy, https_proxy y no_proxy. Exportarlos una vez para una sesión de trabajo.
export https_proxy="http://USER-cc-us:PASS@res.proxy-cyber.com:9000"
export http_proxy="$https_proxy"
export no_proxy="localhost,127.0.0.1"
curl https://api.ipify.org # proxied without -xleyendo un fracaso#
curl -v -x http://USER:WRONG@res.proxy-cyber.com:9000 https://api.ipify.org 2>&1 | grep -E "CONNECT|HTTP/1.1 4|HTTP/1.1 5"
# < HTTP/1.1 407 Proxy Authentication Required -> credentials
# < HTTP/1.1 400 Bad Request -> a username parameter is wrong
# < HTTP/1.1 502 Bad Gateway -> no exit for that location; widen itUn estado en la línea CONNECT proviene de la puerta de enlace; un estado después Connection established proviene del destino. el página de errores asigna cada código de puerta de enlace.
Sesiones rotativas en bucle#
for i in $(seq 1 5); do
curl -s -x "http://USER-cc-us-sid-run$i-ttl-5m:PASS@res.proxy-cyber.com:9000" https://api.ipify.org
echo
done # five different United States exits, each reusable for five minutes under its idPreguntas que hace la gente#
¿CURL necesita un indicador especial para HTTPS a través del proxy?
No. Con una URL proxy http://, cURL emite CONNECT para destinos https:// automáticamente; --proxytunnel solo importa para forzar un túnel en HTTP simple.
Mi contraseña contiene @ o: y cURL falla.
Pase las credenciales con -U usuario:pasar en lugar de incrustarlas en la URL, o codifique en URL los caracteres especiales.