星畅云 - 全球加速网络

Windows系统代理怎么设置?从图形界面到命令行一次弄清

更新于 2026-11-01 · xcyun.buzz

简答:Windows 10和Windows 11都可以在“设置→网络和 Internet→代理”中配置系统代理。最常用的是手动填写代理地址和端口;如果浏览器能用但Windows Update、Git或命令行不生效,还要检查WinHTTP或HTTP_PROXY环境变量。先确认客户端实际监听的协议、地址和端口,再按本文步骤配置并验证。

定义:Windows系统代理是由系统或应用读取的代理配置,用于让符合相应代理机制的网络请求通过指定服务器转发。

先看这张速查表:你应该设置哪一层

不要把“系统代理”“WinHTTP代理”和“命令行环境变量”当成同一个开关。它们可能服务于不同的应用,代理客户端是否生效还取决于应用本身是否读取对应配置。

需求优先设置位置需要填写什么验证方式
浏览器和多数读取系统代理的应用Windows“设置→网络和 Internet→代理”自动检测、PAC地址,或代理服务器地址与端口重新打开浏览器访问测试页面
Windows Update或其他WinHTTP程序netsh winhttpWinHTTP代理服务器、端口和绕过列表netsh winhttp show proxy
Git、curl、PowerShell脚本等命令行工具HTTP_PROXY、HTTPS_PROXY、NO_PROXY代理URL和不走代理的主机列表在同一个终端窗口查看变量并运行请求
SOCKS5或应用专属代理具体客户端或应用的代理设置按应用支持的协议、地址和端口填写在该应用内单独测试

微软说明Windows支持自动检测、设置脚本和手动代理三种主要方式;VPN连接如果需要代理,还要在对应VPN连接的代理设置中单独配置。可参考Microsoft Support的Windows代理设置说明。

Windows 11怎么设置系统代理

  1. 打开“设置”,进入“网络和 Internet”,选择“代理”。
  2. 如果所在网络会自动发现代理,打开“自动检测设置”。这类配置通常不需要手动填写地址和端口。
  3. 如果拿到的是PAC脚本地址,在“使用设置脚本”区域选择“设置”,打开开关,填写脚本地址并保存。
  4. 如果拿到的是固定代理,在“手动设置代理”区域找到“使用代理服务器”,选择“设置”。
  5. 打开“使用代理服务器”,在“代理IP地址”和“端口”中填写客户端或网络管理员提供的内容。
  6. 如有不需要经过代理的域名,在例外列表中填写;多个地址之间使用分号分隔。需要绕过本地内网时,可以勾选不对本地地址使用代理。
  7. 保存后重新打开需要使用代理的应用,再进行验证。

成功标准是:系统设置中的开关与地址端口和预期一致,且目标应用确实能建立连接。不要直接套用某个客户端的默认端口,应该以客户端当前显示的监听地址、协议和端口为准。

Windows 10入口在哪里,和Windows 11有什么差别

Windows 10同样从“设置→网络和 Internet→代理”进入,核心选项仍然是自动检测、设置脚本和手动代理。由于不同版本的设置页面文字或布局可能略有变化,找不到时可以在开始菜单搜索“代理设置”,再进入系统代理页面。

Windows 10和Windows 11的填写逻辑基本一致:自动检测适合由网络自动提供配置的场景;PAC脚本适合按访问地址动态决定是否使用代理;手动代理适合已经明确知道服务器地址和端口的场景。微软官方页面同时适用于Windows 10和Windows 11,具体界面以当前系统版本为准。

自动检测、PAC脚本和手动代理怎么选

方式适用场景优点常见问题
自动检测公司、校园或受管理网络无需手动输入服务器信息网络没有提供自动发现信息时可能不会得到有效代理
PAC脚本需要按域名或地址分流规则可以决定哪些请求走代理脚本地址失效、脚本内容错误或应用不读取PAC
手动代理已有固定服务器、IP和端口配置直观,便于核对地址、端口、协议或例外列表填写错误

如果你是通过本地代理客户端连接,通常需要先启动客户端,再从客户端状态页确认监听端口。系统设置中的代理类型和客户端实际支持的协议必须匹配;如果客户端只提供SOCKS端口,不要未经确认就把它当成HTTP系统代理端口使用。

系统代理已开,但Windows Update或服务仍不生效

Windows系统代理和WinHTTP代理不是完全相同的配置层。微软文档指出,Windows Update使用WinHTTP;如果只配置了用户层代理而没有配置WinHTTP,更新连接可能失败。遇到这种情况,先用管理员权限打开命令提示符或PowerShell,查看当前WinHTTP状态:

netsh winhttp show proxy

如果确认需要为WinHTTP设置固定代理,可以使用:

netsh winhttp set proxy proxy.example.com:8080

如需配置绕过列表,可使用:

netsh winhttp set proxy proxy.example.com:8080 bypass-list="localhost;127.0.0.1;*.example.local"

清除WinHTTP代理并恢复直连:

netsh winhttp reset proxy

上述命令的语法、查看、设置和重置方式可核对Microsoft Learn的netsh winhttp文档。该命令行配置针对WinHTTP,不能替代所有应用自己的代理设置;微软文档还说明,WinHTTP相关命令不支持SOCKS5。

Git、curl和PowerShell不走系统代理怎么办

命令行工具可能读取环境变量,也可能使用自己的配置。可以在当前PowerShell窗口临时设置:

$env:HTTP_PROXY = "http://127.0.0.1:端口"

$env:HTTPS_PROXY = "http://127.0.0.1:端口"

$env:NO_PROXY = "localhost,127.0.0.1"

设置后,必须在同一个终端窗口运行命令;如果只想临时使用,关闭窗口即可恢复。PowerShell的官方文档列出了HTTP_PROXY、HTTPS_PROXY、ALL_PROXY和NO_PROXY的作用。Git也支持通过http.proxy或相关环境变量配置HTTP代理,具体规则可查看PowerShell Invoke-WebRequest文档和Git配置文档。

如果代理地址包含用户名或密码,不建议直接把敏感信息写入公开脚本、截图或提交到代码仓库。认证格式和是否支持某种代理协议,应以目标工具的文档为准。

代理不生效、无法联网或关闭后仍残留:按这4步排查

  1. 核对输入:确认地址、端口、协议和客户端状态一致;本地代理客户端未启动时,系统连接到127.0.0.1通常会失败。
  2. 区分配置层:浏览器能用不代表Windows Update、Microsoft Store、Git或游戏一定读取同一代理。分别检查系统代理、WinHTTP和应用自己的代理设置。
  3. 检查例外列表:错误的绕过规则可能让目标地址直连,也可能让本应直连的内网地址进入代理。临时删除不确定的例外项后再测试。
  4. 清理残留:关闭系统代理后,运行netsh winhttp show proxy检查WinHTTP;如确认不再需要固定WinHTTP代理,再运行netsh winhttp reset proxy。同时检查当前终端中的HTTP_PROXY和HTTPS_PROXY变量。

如果改完代理后PowerShell或其他长期运行的程序仍表现异常,先关闭并重新打开该程序,让它重新读取代理配置。不要为了“全局生效”盲目同时打开多个代理层,否则更难判断究竟是哪一层在转发请求。

关闭Windows系统代理并恢复直连

  1. 打开“设置→网络和 Internet→代理”。
  2. 关闭“自动检测设置”、设置脚本和“使用代理服务器”中不再需要的项目;如果只启用了其中一项,只关闭对应项目即可。
  3. 打开新的浏览器或终端窗口进行验证。
  4. 如果Windows服务仍使用旧代理,运行netsh winhttp show proxy查看WinHTTP;需要清除时运行netsh winhttp reset proxy。
  5. 如果命令行仍然走代理,检查并清除当前会话中的环境变量,例如PowerShell可使用$env:HTTP_PROXY = $null和$env:HTTPS_PROXY = $null。

恢复直连后,成功标准是目标应用不再尝试连接旧代理地址,并能按自身网络条件建立连接。若只有某个应用仍异常,应优先检查该应用的独立代理配置。

常见问题

Windows系统代理地址和端口应该填什么?

填写代理客户端或网络管理员提供的服务器地址、IP和端口。使用本地客户端时,先确认客户端已经启动,并以客户端当前显示的监听协议和端口为准,不要直接套用未核实的默认端口。

为什么浏览器能上网,但Windows Update仍然失败?

浏览器可能读取用户层系统代理,而Windows Update使用WinHTTP。先运行<code>netsh winhttp show proxy</code>查看WinHTTP状态;如果确实需要固定代理,再按实际地址和端口配置WinHTTP。

设置了Windows系统代理,所有软件都会自动走代理吗?

不会。应用是否读取系统代理取决于其网络实现;Windows Update、Git、curl、游戏和部分独立客户端可能使用WinHTTP、环境变量或自己的代理设置,需要分层检查。

Windows代理关闭后,为什么命令行仍然走代理?

检查当前终端是否设置了<code>HTTP_PROXY</code>、<code>HTTPS_PROXY</code>或<code>ALL_PROXY</code>,并检查WinHTTP是否仍有配置。清除环境变量后重新打开终端,再运行测试。

系统代理可以直接填写SOCKS5端口吗?

不能一概而论。Windows系统代理页面和具体应用对协议支持可能不同;微软的WinHTTP命令文档明确说明相关命令不支持SOCKS5。若客户端只提供SOCKS5,应在支持该协议的应用或客户端中单独配置。

相关阅读

参考资料

  1. Microsoft Support:Use a proxy server in Windows
  2. Microsoft Learn:netsh winhttp
  3. Microsoft Learn:Windows Update issues troubleshooting
  4. Microsoft Learn:Invoke-WebRequest
  5. Git Documentation:git-config