如何使用 curl 传递空白代理 username/password?
How do I pass a blank proxy username/password using curl?
我在 Mac El Capitan 上使用 bash shell。如何使用 curl 为代理服务器传递空白 username/password?我试过这个
localhost:tmp davea$ curl http://www.google.com --proxy localhost:9050 --proxy-user "":""
514 Authentication required.
我是 运行 我机器上的一个 tor 守护进程,使用这个命令
tor --CookieAuthentication 0 --HashedControlPassword "" --ControlPort 9050 --SocksPort 50001
而且我可以通过 Telnet 连接而无需像这样输入密码
localhost:tmp davea$ telnet localhost 9050
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
AUTHENTICATE
250 OK
所以我知道我的密码至少是正确的。
请注意,当从命令行使用 curl
时,--proxy
选项专门用于 HTTP 代理,Tor 不是,它是 SOCKS 代理。
为了解决这个问题,使用 Nehal 在评论中建议的 SOCKS 代理(你可能想使用 --socks5-hostname
来代替,这样 DNS 解析也会通过 Tor 执行,否则你在本地泄漏 DNS 请求)。
所以你的电话应该是这样的:
curl http://www.google.com -L --socks5-hostname localhost:50001
旁注:控制端口 (9050) 仅用于向控制器传送命令。此端口根本不用于代理请求。
我在 Mac El Capitan 上使用 bash shell。如何使用 curl 为代理服务器传递空白 username/password?我试过这个
localhost:tmp davea$ curl http://www.google.com --proxy localhost:9050 --proxy-user "":""
514 Authentication required.
我是 运行 我机器上的一个 tor 守护进程,使用这个命令
tor --CookieAuthentication 0 --HashedControlPassword "" --ControlPort 9050 --SocksPort 50001
而且我可以通过 Telnet 连接而无需像这样输入密码
localhost:tmp davea$ telnet localhost 9050
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
AUTHENTICATE
250 OK
所以我知道我的密码至少是正确的。
请注意,当从命令行使用 curl
时,--proxy
选项专门用于 HTTP 代理,Tor 不是,它是 SOCKS 代理。
为了解决这个问题,使用 Nehal 在评论中建议的 SOCKS 代理(你可能想使用 --socks5-hostname
来代替,这样 DNS 解析也会通过 Tor 执行,否则你在本地泄漏 DNS 请求)。
所以你的电话应该是这样的:
curl http://www.google.com -L --socks5-hostname localhost:50001
旁注:控制端口 (9050) 仅用于向控制器传送命令。此端口根本不用于代理请求。