Tengo esta dirección de proxy: 125.119.175.48:8909
¿Cómo puedo realizar una solicitud HTTP usando cURL like curl http://www.example.com
, pero especificando la dirección proxy de mi red?
Tengo esta dirección de proxy: 125.119.175.48:8909
¿Cómo puedo realizar una solicitud HTTP usando cURL like curl http://www.example.com
, pero especificando la dirección proxy de mi red?
Respuestas:
Forma general:
export http_proxy=http://your.proxy.server:port/
Luego puede conectarse a través de proxy desde (muchas) aplicaciones.
Y, según el comentario a continuación, para https:
export https_proxy=https://your.proxy.server:port/
De man curl
:
-x, --proxy <[protocol://][user:password@]proxyhost[:port]>
Use the specified HTTP proxy.
If the port number is not specified, it is assumed at port 1080.
-x user:password@proxyhost:port
Las soluciones anteriores pueden no funcionar con algunas versiones de curl. Las probé por mí mismo (curl 7.22.0). Pero lo que funcionó para mí fue:
curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url
Espero que resuelva el problema mejor!
[1] 4812
Tenga en cuenta que si está utilizando un proxy SOCKS, en lugar de un proxy HTTP / HTTPS, deberá usar el --socks5
interruptor en su lugar:
curl --socks5 125.119.175.48:8909 http://example.com/
También puede usar en --socks5-hostname
lugar de --socks5
resolver DNS en el lado del proxy.
--socks5-hostname
sí.
curl https://api.ipify.org --proxy socks5://189.100.246.182:37339
Parece funcionar bien para mi. ¿Es la --proxy
opción de alguna manera inferior a --socks5
cuando se usan proxies socks5?
--proxy
es probablemente lo que quieres ahora, pero no siempre fue compatible. También tenga en cuenta que socks5://
y socks5h://
realice la resolución de nombre de host (DNS) antes y después de conectarse al proxy, respectivamente.
como una adición a airween, otra buena idea es agregar esto a su .bashrc, para que pueda cambiar de entorno no proxy a proxy:
alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"
DONDE YOURPROXY: YOURPORT es exactamente eso, su ip y proxy de puerto :-).
Entonces, simplemente haciendo
proxyon
su sistema comenzará a usar el proxy, y todo lo contrario con:
proxyoff
usa lo siguiente
curl -I -x 192.168.X.X:XX http://google.com
192.168.X.X:XX
ponga su servidor proxy ip y puerto.
-v
modo detallado dará más detalles incluyendo encabezados y respuesta.
puedes usar :
curl http://www.example.com --proxy http://125.119.175.48:8909
como lo explicó Karl
Para curl
que pueda configurar el proxy en su archivo ~/.curlrc
( _curlrc
en Windows) agregando proxy
valor, la sintaxis es:
proxy = http://username:password@proxy-host:port
Solo resumiendo todas las excelentes respuestas mencionadas:
curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
Con un proxy con autenticación uso:
curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>
porque no sé por qué curl no usa / catch http [s] _proxy variables de entorno.
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
No necesita exportar la http[s]_proxy
variable de shell si solo está configurando el proxy para un comando único. p.ej
http_proxy=http://your.proxy.server:port curl http://www.example.com
Dicho esto, preferiría curl -x
que supiera que siempre usaría un proxy.
Dependiendo de su lugar de trabajo, es posible que también deba especificar la opción -k
o la --insecure
opción de curl para evitar posibles problemas con los certificados de CA.
curl -x <myCompanyProxy>:<port> -k -O -L <link to file to download>
sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg
Esto funcionó perfectamente para mí, el error viene porque curl necesita configurar el proxy
Remmember reemplazar el proxy con el servidor proxy, la mía, "ejemplo" era http://10.1.1.50:8080/ .
En caso de que el proxy esté usando el proxy automático con el archivo PAC. Podemos encontrar el proxy real desde el Javascript de la URL de PAC.
Y si el proxy necesita autenticación, primero podemos usar un navegador web normal para acceder al sitio web que promoverá el diálogo de autenticación. Después de la autenticación, podemos usar wireshark para capturar los envíos del paquete http al servidor proxy, desde el paquete http, podemos obtener el token de autenticación desde el encabezado http: Autorización proxy
Luego podemos establecer la variable de entorno http_proxy y también incluir token de autenticación en el encabezado http: Proxy-Authorization
export http_proxy = http: // proxyserver: port
curl -H "Autorización proxy: xxxx" http: // targetURL