我想通过命令行设置代理,我发现的第一件事是您必须以管理员权限运行命令行 - 那么基本代理集将是:
netsh winhttp set proxy SERVER:PORT
这很好用,但我也想添加一个登录名。如您所见,我已经尝试使用netsh->winhttp,但是手册没有说明登录部分,所以我只是尝试了:
netsh winhttp set proxy user:password@SERVER:PORT
不幸的是,这不起作用。是否有可能在netsh->winhttp中实现这样的事情?
如果是这样,如何?如果不是 => 我应该遵循哪些窗口命令?
感谢您的帮助,如果不清楚,请随时提出任何问题。
USING: Windows 7, cmd.exe, netsh->winhttp
编辑:这看起来像C++方式:http://msdn.microsoft.com/en-us/library/windows/desktop/aa383144(v=vs.85).aspx,但C++更好的方法可能是这样:http://msdn.microsoft.com/en-us/library/windows/desktop/aa385384(v=vs.85).aspx#general_option, - 所以剩下的问题是如何在命令行中实现这一点(甚至更好的命令行->netsh->winhttp)?
如果您使用的是Microsoft Windows 环境,则可以根据需要设置一个名为 HTTP_PROXY
、 FTP_PROXY
或 HTTPS_PROXY
的变量。
我使用以下设置来允许我在 windows 命令提示符下的命令使用浏览器代理访问互联网。
set HTTP_PROXY=http://proxy_userid:proxy_password@proxy_ip:proxy_port
右侧的参数必须替换为实际值。
设置变量HTTP_PROXY
后,我们在 windows 命令提示符下执行的所有后续命令将能够通过代理以及提供的身份验证访问互联网。
此外,如果您还想使用 ftp 和 https 来使用相同的代理,那么您可能还希望使用以下环境变量。
set FTP_PROXY=%HTTP_PROXY%
set HTTPS_PROXY=%HTTP_PROXY%
cmd
通过袜子代理隧道传输所有互联网流量:
netsh winhttp set proxy proxy-server="socks=localhost:9090" bypass-list="localhost"
查看当前代理设置:
netsh winhttp show proxy
清除所有代理设置:
netsh winhttp reset proxy
IE可以设置用户名和密码代理,所以也许在那里设置它并导入确实有效
reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyEnable /t REG_DWORD /d 1
reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyServer /t REG_SZ /d name:port
reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyUser /t REG_SZ /d username
reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyPass /t REG_SZ /d password
netsh winhttp import proxy source=ie
根据我的经验,解决此问题的最佳方法是(以及许多其他情况)是使用 cntlm,这是一个指向远程身份验证代理的本地无身份验证代理。然后,只需将 WinHTTP 设置为指向本地 CNTLM(通常为 localhost:3128),并且可以将 CNTLM 本身设置为指向远程身份验证代理。CNTLM 有一个"神奇的 NTLM 方言检测"选项,该选项生成要放入 CNTLM 配置文件的密码哈希。