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

时间:2014-11-18 11:11:05

标签: windows proxy cmd winhttp netsh

我想通过命令行设置代理,首先我发现你必须运行具有管理员权限的命令行 - 然后基本代理集将是:

netsh winhttp set proxy SERVER:PORT

这很好用,但我也想添加一个登录名。正如你所看到我尝试使用netsh-> winhttp,但是manual没有说明登录部分,所以我只是尝试了:

netsh winhttp set proxy user:password@SERVER:PORT

遗憾的是,这不起作用。甚至可以在netsh-> winhttp中实现这样的东西?

如果是这样,怎么样?如果不是=>我应该遵循哪些Windows命令?
或者这更容易̶a̶c̶h̶i̶e̶v̶e̶a̶b̶l̶e̶通过一些WINDOWSAPI̶(例如,使用C / C + +̶̶)̶?̶

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

使用: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)?

4 个答案:

答案 0 :(得分:16)

如果您使用的是Microsoft Windows环境,则可以根据需要设置名为HTTP_PROXYFTP_PROXYHTTPS_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%

答案 1 :(得分:7)

IE可以设置用户名和密码代理,因此可以在那里设置并导入确实有效

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

答案 2 :(得分:5)

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

答案 3 :(得分:1)

cmd

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

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

查看当前的代理设置:

netsh winhttp show proxy

清除所有代理设置:

netsh winhttp reset proxy