通过Windows命令行(包括登录参数)设置代理

Set proxy through windows command line including login parameters

我想通过命令行设置代理,我发现的第一件事是必须以管理员权限运行命令行-然后基本代理集应为:

1
netsh winhttp set proxy SERVER:PORT

这很好用,但我也想添加一个登录名。如您所见,我已经尝试过使用netsh-> winhttp,但是手册中没有提及登录部分,所以我只是尝试了:

1
netsh winhttp set proxy user:password@SERVER:PORT

不幸的是,这不起作用。甚至可以在netsh-> winhttp中实现这样的功能吗?

如果是这样,怎么办?如果不是=>我应该遵循哪些Windows命令?
ì?Oì?rì? ì?iì?sì? ì?tì?hì?iì?sì? ì?mì?oì?rì?eì? ????????????????? ì?aì?cì?hì?iì?eì?vì?eì?aì?bì?lì?eì? ì?tì?hì?rì?o??ì?uì?gì?hì? ì?sì?oì?mì?eì? ì?Wì?iì?nì?dì?oì?wì?sì?Aì?Pì?Iì? ì?(ì?eì?.ì?gì?.ì?ì?uì?sì?iì?nì?gì?ì?Cì?/ì?Cì?ì?ì?)ì??ì?

感谢您的帮助,如果有不清楚的地方,请随时提出任何问题。

使用:Windows 7,cmd.exe,netsh-> winhttp

编辑:看起来像C的方式:http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa383144(v=vs.85).aspx,但是对于C更好的方式可能是可以这样:http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa385384(v=vs.85).aspx#general_option,所以剩下的问题是如何在命令行一般(甚至更好的命令行-> netsh-> winhttp)?


如果使用的是Microsoft Windows环境,则可以根据需要设置名为HTTP_PROXYFTP_PROXYHTTPS_PROXY的变量。

我使用以下设置允许Windows命令提示符下的命令使用浏览器代理访问Internet。

1
set HTTP_PROXY=http://proxy_userid:proxy_password@proxy_ip:proxy_port

右边的参数必须替换为实际值。

一旦设置了变量HTTP_PROXY,我们在Windows命令提示符处执行的所有后续命令将能够通过代理以及提供的身份验证访问Internet。

此外,如果您还希望使用ftp和https来使用同一代理,那么您可能还希望使用以下环境变量。

1
2
3
set FTP_PROXY=%HTTP_PROXY%

set HTTPS_PROXY=%HTTP_PROXY%


cmd

通过袜子代理隧道传输所有互联网流量:

1
netsh winhttp set proxy proxy-server="socks=localhost:9090" bypass-list="localhost"

查看当前代理设置:

1
netsh winhttp show proxy

清除所有代理设置:

1
netsh winhttp reset proxy

IE可以设置用户名和密码代理,因此也许在此处进行设置并导入确实可行

1
2
3
4
5
reg add"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1
reg add"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyServer /t REG_SZ /d name:port
reg add"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyUser /t REG_SZ /d username
reg add"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyPass /t REG_SZ /d password
netsh winhttp import proxy source=ie


根据我的经验,解决此问题的最佳方法是使用cntlm,这是一个本地无身份验证代理,它指向远程身份验证代理。然后,您可以将WinHTTP设置为指向本地CNTLM(通常为localhost:3128),然后将CNTLM自身设置为指向远程身份验证代理。 CNTLM具有"魔术NTLM方言检测"选项,该选项会生成要放入CNTLM配置文件中的密码哈希。