You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下如何通过CMD或Python设置代理?已尝试方案无效求助

Windows10下CMD/Python设置代理未生效的解决办法

问题原因

你用netsh winhttp set proxy设置的是WinHTTP接口的代理,这个仅对使用WinHTTP的系统服务、特定程序生效,而浏览器(依赖WinINET接口)、requests默认(读取系统WinINET代理)都不会读取这个设置,所以才会出现设置后IP无变化的情况。


解决方法

1. 让浏览器/系统全局代理生效

要让浏览器等依赖系统代理的程序生效,需要设置WinINET的系统代理,可通过CMD修改注册表实现:

# 开启并设置代理
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d "proxy-ip:proxy-port" /f

# 取消代理(按需使用)
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f

注意:修改后需要重启浏览器才能生效。

2. 让Python的requests生效

有三种方式可选:

方式一:单个请求指定代理

直接在请求时传入代理参数,适合临时使用:

import requests

proxies = {
    'http': 'http://proxy-ip:proxy-port',
    'https': 'http://proxy-ip:proxy-port'
}

response = requests.get("https://ipinfo.io/", proxies=proxies)
print(response.text)

方式二:设置环境变量全局生效

对当前Python进程内的所有requests请求生效:

import os
import requests

os.environ['HTTP_PROXY'] = 'http://proxy-ip:proxy-port'
os.environ['HTTPS_PROXY'] = 'http://proxy-ip:proxy-port'

response = requests.get("https://ipinfo.io/")
print(response.text)

方式三:读取系统代理(需requests支持)

requests默认会读取系统的WinINET代理(即上面设置的系统全局代理),只要系统代理设置正确,无需额外代码即可生效。


额外注意事项

  • 如果代理需要用户名密码认证,代理地址格式为:http://username:password@proxy-ip:proxy-port
  • 设置后可通过访问https://ipinfo.io(浏览器或Python请求)验证IP是否切换为代理IP

内容的提问来源于stack exchange,提问作者Eren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:55:25