Tôi có địa chỉ proxy này: 125.119.175.48:8909
Làm cách nào tôi có thể thực hiện yêu cầu HTTP bằng cURL như thế nào curl http://www.example.com
, nhưng chỉ định địa chỉ proxy của mạng của tôi?
Tôi có địa chỉ proxy này: 125.119.175.48:8909
Làm cách nào tôi có thể thực hiện yêu cầu HTTP bằng cURL như thế nào curl http://www.example.com
, nhưng chỉ định địa chỉ proxy của mạng của tôi?
Câu trả lời:
Cách chung:
export http_proxy=http://your.proxy.server:port/
Sau đó, bạn có thể kết nối thông qua proxy từ (nhiều) ứng dụng.
Và, theo nhận xét bên dưới, cho https:
export https_proxy=https://your.proxy.server:port/
Từ 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
Các giải pháp trên có thể không hoạt động với một số phiên bản curl tôi đã thử chúng cho bản thân (curl 7.22.0). Nhưng những gì làm việc cho tôi là:
curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url
Hy vọng nó giải quyết vấn đề tốt hơn!
[1] 4812
Xin lưu ý rằng nếu bạn đang sử dụng proxy SOCKS, thay vì proxy HTTP / HTTPS, bạn sẽ cần sử dụng công --socks5
tắc thay thế:
curl --socks5 125.119.175.48:8909 http://example.com/
Bạn cũng có thể sử dụng --socks5-hostname
thay vì --socks5
để giải quyết DNS ở phía proxy.
--socks5-hostname
đã làm.
curl https://api.ipify.org --proxy socks5://189.100.246.182:37339
dường như làm việc tốt cho tôi Là --proxy
lựa chọn theo một cách nào đó kém hơn --socks5
khi sử dụng proxy5 proxy?
--proxy
bây giờ có lẽ là những gì bạn muốn, nhưng nó không phải lúc nào cũng được hỗ trợ. Cũng lưu ý rằng socks5://
và socks5h://
thực hiện độ phân giải tên máy chủ (DNS) trước và sau khi kết nối với proxy, tương ứng.
như một lời quảng cáo cho airween, một ý tưởng hay khác là thêm phần này vào .bashrc của bạn, vì vậy bạn sẽ có thể chuyển từ môi trường không được ủy quyền sang môi trường được ủy quyền:
alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"
WHERE YOUPROXY: MYANCE chính xác là như vậy, proxy và cổng proxy của bạn :-).
Sau đó, chỉ cần làm
proxyon
hệ thống của bạn sẽ bắt đầu sử dụng proxy và ngược lại với:
proxyoff
sử dụng như sau
curl -I -x 192.168.X.X:XX http://google.com
192.168.X.X:XX
đặt ip và cổng máy chủ proxy của bạn.
-v
Chế độ dài dòng nó sẽ cung cấp thêm chi tiết bao gồm các tiêu đề và phản hồi.
bạn có thể dùng :
curl http://www.example.com --proxy http://125.119.175.48:8909
như được giải thích bởi Karl
Để curl
bạn có thể định cấu hình proxy trong tệp ~/.curlrc
( _curlrc
trên Windows) của mình bằng cách thêm proxy
giá trị, cú pháp là:
proxy = http://username:password@proxy-host:port
Chỉ cần tóm tắt tất cả các câu trả lời được đề cập tuyệt vời:
curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
Với một proxy có xác thực tôi sử dụng:
curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>
bởi vì, tôi không biết tại sao curl không sử dụng / bắt các biến môi trường http [s] _proxy .
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
Bạn không cần xuất http[s]_proxy
biến shell nếu bạn chỉ đặt proxy cho lệnh tắt một lần. ví dụ
http_proxy=http://your.proxy.server:port curl http://www.example.com
Điều đó nói rằng, tôi thích hơn curl -x
nếu tôi biết tôi sẽ luôn sử dụng proxy.
Tùy thuộc vào nơi làm việc của bạn, bạn cũng có thể cần chỉ định -k
hoặc --insecure
tùy chọn cuộn tròn để vượt qua các vấn đề tiềm ẩn với chứng chỉ 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
Điều này làm việc hoàn hảo với tôi, lỗi xảy ra vì curl cần phải đặt proxy
Remmember thay thế proxy bằng proxy của bạn, "ví dụ" là http://10.1.1.50:8080/ .
Trong trường hợp proxy đang sử dụng proxy tự động với tệp PAC. Chúng tôi có thể tìm thấy proxy thực tế từ javascript từ URL PAC.
Và nếu proxy cần xác thực, trước tiên chúng ta có thể sử dụng trình duyệt web bình thường để truy cập trang web sẽ thúc đẩy hộp thoại xác thực. Sau khi xác thực, chúng tôi có thể sử dụng wireshark để chụp gói http gửi đến máy chủ proxy, từ gói http, chúng tôi có thể nhận mã thông báo xác thực từ tiêu đề http: Ủy quyền ủy quyền
Sau đó, chúng ta có thể đặt biến môi trường http_proxy và cũng bao gồm mã xác thực auth trong tiêu đề http: Proxy-Authorization
xuất http_proxy = http: // proxyserver: cổng
curl -H "Ủy quyền ủy quyền: xxxx" http: // targetURL