上周帮一个做电商的朋友看电脑,他说自己在系统里填好了代理,结果抓数据的脚本跑起来还是本地的地址。折腾了半个多小时,最后发现是脚本里压根没带代理参数——系统那边设的是全局,可这个脚本自己走的是另一套网络逻辑。这类事太常见了。代理IP和端口怎么写、写在哪里,比"能不能连上"更值得先想清楚。这篇就从头把这几个问题捋一遍:端口是什么、全局怎么填、应用内怎么填、什么情况下该选哪种。
一、先弄明白:代理IP和端口,就是"代收点"的地址和窗口号
把代理服务器想成一个快递代收点。IP 就是代收点的门牌地址,端口就是里面几号窗口。你写"某某路 12 号",快递员知道去哪;但还得写"3 号窗口",人家才知道找谁。IP 少了端口是找不到人的,端口写错了也一样打不开门。
常见的端口搭配有这么几种,记不住也没关系,服务商后台都会直接告诉你:
| 协议写法 | 典型端口 | 用在哪 |
|---|---|---|
| HTTP / HTTPS | 8080、3128 这类 | 系统代理、浏览器、绝大多数脚本 |
| SOCKS5 | 1080 这类 | 对连接类型要求更宽松的场景 |
再来说"全局"和"应用内"。全局,指的是你在操作系统里填一次,整台电脑上所有走系统代理的软件都跟着用;应用内,是你跑到某个软件自己的设置里、或者代码里,单独喂给它一个地址和端口。前者是"全楼共用一个代收点",后者是"我这户自己单独叫一个"。
二、全局生效怎么填:Windows 和 macOS 各走一遍
Windows 这边,最省事的入口是:开始菜单 → 设置 → 网络和 Internet → 代理 → 手动设置代理 → 点"设置",把代理 IP 填进地址栏、端口填进端口栏,保存。老一点的入口也能用:按 Win + R,输入 inetcpl.cpl 回车,进"连接"选项卡里的"局域网设置",勾上"为 LAN 使用代理服务器"。两条路改的是同一个东西,随便走哪条。
填完别急着开跑。开个命令行,让它带着代理发一次请求,看返回的出口 IP 到底是谁:
# 带着代理发一次请求,返回的 IP 应该就是代理 IP
curl -x http://12.34.56.78:8080 http://<查IP的接口地址>
# 如果代理需要账号密码,直接写在地址里
curl -x http://用户名:密码@12.34.56.78:8080 http://<查IP的接口地址>
能通,说明地址、端口、账号三项至少没写错。不通的话,八成是端口抄错了位,或者账号里带了特殊字符没做编码。
macOS 这边:系统设置 → 网络 → 选中当前用的网络 → 详细信息 → 代理,里面分"网页代理(HTTP)""安全网页代理(HTTPS)""套接字代理(SOCKS)"几栏,按服务商给的类型填服务器和端口就行。填完点"好",记得再点一次"应用",不然不生效——这一步挺多人漏掉。
如果你习惯用命令行干活,还能临时给当前终端挂上代理:
export http_proxy="http://用户名:密码@12.34.56.78:8080"
export https_proxy=$http_proxy
export all_proxy="socks5://12.34.56.78:1080"
注意这个方式只对这个终端窗口有效,关掉就没了。想长期用,就把它写进 ~/.bashrc 或 ~/.zshrc 里。
这里有个必须提醒的点:系统级全局并不真的"全局"。有些软件自己有网络模块,压根不读系统代理设置;还有一类程序只认环境变量。所以你在系统里填完,最好拿实际要用的那个软件验证一次,别默认它一定听话。
三、应用内单独填:几种常见写法,对号入座就行
浏览器这一类。Chrome、Edge 默认跟随系统代理,改不了单独一个;想只让某个浏览器走代理,用 Firefox 更直接,它设置页里自带连接设置,能手填地址端口。另一个办法是装个代理管理插件,在插件里挂好几条线路,点一下就换一条——适合要频繁换地区看搜索结果的人。
写代码这一类。Python 里最常用的是给请求加 proxies 参数,注意 http 和 https 要分别写,缺一个就会有一部分请求漏出去:
import requests
proxies = {
"http": "http://用户名:密码@12.34.56.78:8080",
"https": "http://用户名:密码@12.34.56.78:8080",
}
resp = requests.get("http://<目标接口>", proxies=proxies, timeout=10)
print(resp.status_code)
如果你用自动化浏览器,那就更简单,启动时把参数塞进去:
options.add_argument("--proxy-server=http://12.34.56.78:8080")
命令行工具同理,单次带上就行:curl -x http://12.34.56.78:8080 ...;Git 想单独走代理,用 git config --global http.proxy http://12.34.56.78:8080。
多开环境这一类。做多账号运营的人对这块最熟:指纹浏览器里每个环境单独配一条代理,A 环境的账号永远从 A 那条线出去,B 环境走 B。环境之间 IP 不串,账号之间才不容易被关联。这种场景下全局设置反而是帮倒忙。
四、到底怎么选:看"这台电脑上是谁在用这条IP"
别纠结概念,直接按场景对号入座。
| 你在做的事 | 建议方式 | 为什么 |
|---|---|---|
| 整台电脑只干一件事,比如只看某地区的搜索结果 | 全局 | 填一次,浏览器和别的软件都能用,省事 |
| 一台机器同时跑好几个账号环境 | 应用内单独填 | 每个环境一条线,互不干扰 |
| 脚本要按任务更换不同的出口 | 应用内(代码里) | 在代码里按条取用,比反复改系统设置快得多 |
| 临时排查"到底通不通" | 先全局验证 | 先确认地址端口没问题,再落到具体软件里 |
一句话原则:这台电脑上只有一件事要用代理,选全局;有好几件事、而且各要用不同地区的 IP,就选应用内。全局的好处是快,坏处是一改全改,某次填错一个数字,全机的软件都跟着罢工;应用内的好处是隔离干净,坏处是每个软件都得配一遍,容易漏。
还有几个实操里经常踩的坑,顺手记一下:
一是绕过列表。全局设完发现本地打印机、内网系统连不上了,去"请勿对以下列条目开头的地址使用代理服务器"里加上 127.0.0.1;localhost;192.168.* 就行,本地流量别让它绕远路。
二是密码里的特殊符号。密码里如果有 @ 或 #,直接拼在地址里会解析出错,得先做 URL 编码,或者改用软件里单独的账号密码输入框。
三是超时和并发。填完能通不代表稳,脚本跑几十个请求后开始报错,往往不是代理坏了,而是你的超时设得太短、或者并发开得太大把带宽压满了。代理服务本身的带宽规格这块要提前看清楚。
五、参数设得再对,IP 资源不稳也白搭
设置方法就这些,剩下真正拉开差距的是背后那条线路。神龙IP 走的是自营机房路线,200+ 城市可精准定位,1000万+ 纯净 IP,30ms 级别的响应速度,带宽 6-15M 可定制,协议上支持 IKEv2、PPTP、L2TP、SSTP、SOCKS5,传输全程加密,填到系统里或者写进代码里都能直接用。
套餐怎么挑,看你上面选的是哪条路。如果你是做数据采集、各地搜索排名测试这类需要不断更换出口 IP 的活儿,动态高级套餐更对路:6Mbps 峰值、日更 200 万+ IP、2 到 360 小时的时效可选,写进代码里按任务取一个就行;如果你要多开环境做账号的 IP 独立防关联,或者需要长期稳定的登录环境,那就看静态高级——长期固定 IP、运营商合作资源、6Mbps 带宽,一个环境一条线挂到底,不会中途变地址。要求更高的还有动态独享,10Mbps 峰值,资源不与人挤。
常见问题
Q:系统里明明填了,为什么某个软件还是走本地 IP?
很正常。有些软件不读系统代理设置,只认自己配置文件里的参数或者环境变量。先去它的设置里找找有没有代理项,没有的话就查文档看能不能用启动参数指定,实在不行就改环境变量。判断方法很简单:在那个软件里发一次请求,看出口 IP 是谁。
Q:端口到底填哪个?服务商给了好几个。
跟着协议走。走 HTTP/HTTPS 就填对应的端口,走 SOCKS5 就填 SOCKS5 那个。别把 SOCKS5 的端口填进 HTTP 那一栏,看着能保存,实际连不上。填之前先确认自己在哪个输入框。
Q:全局和应用内能不能同时用?会不会打架?
能同时存在,但要注意优先级。大部分软件里,应用内自己填的代理会盖过系统设置;所以你在系统里挂了一条、浏览器插件里又挂了一条,实际走的是插件那条。真要排查问题,建议先只留一处配置,把它验证通了再加第二处。
Q:一台电脑开好几个浏览器环境,各填各的 IP,会互相影响吗?
只要每个环境是独立配置、独立启动的,就不会串。真正容易出问题的是"共用同一个浏览器实例"或者复制环境时把代理配置一起复制过去了,结果两个环境走了同一条线。配完顺手核对一遍每个环境的出口 IP,比事后补救省心得多。





