代理提示端口被占用怎么办?查清进程再改设置
客户端启动时提示“端口被占用”,先查日志里的本地地址、端口和协议,再确认谁在监听。它可能是另一个客户端实例,也可能是其他程序,不能据此判断机场节点坏了。先找占座的人,比给远程节点挨个打电话更有效。
先确认是哪一个入口出错
本文以Windows上的本地代理为例。微软错误码说明将10048解释为地址已被使用,也可能涉及尚未正确关闭或正在关闭的套接字。
如果日志写的是10013“拒绝访问”,则应结合权限及具体绑定情况另查,不能把所有启动失败都叫“端口占用”。记下完整错误、协议、地址和端口;订阅里远程节点的端口,不一定是本机需要检查的入口。
用两条查询找出进程
打开Windows PowerShell,把下面的7890替换成报错中的本地端口:
Get-NetTCPConnection -LocalPort 7890 -State Listen | Select-Object LocalAddress,LocalPort,OwningProcess
Get-NetTCPConnection文档说明,该命令可按本地端口和状态查询TCP连接。结果里的OwningProcess是所属进程的PID,相当于这次占座者的号码牌。
LocalAddress是本地监听地址。若出现多行,应结合地址和PID判断,不要仅因端口数字相同,就认定存在多个冲突程序。端口号只是线索,日志里的协议与绑定地址也要一起看。
再按查询到的PID找程序。1234只是示例,须换成自己的结果:
Get-Process -Id 1234
Get-Process文档支持按PID查询进程。以上命令只用于查看,不会结束程序。把名称和自己正在运行的软件对照,别见到一个陌生名字就急着请它退场。
查明以后,选择对应处理
如果是自己重复启动的代理,先保存正在进行的任务,再从客户端正常退出多余实例,确认是否还有后台服务。只关窗口,未必已经停止监听。
如果占用者是需要保留的程序,可以为代理选择另一个可用端口,保存配置并按客户端说明重新加载。重新查询,确认新入口由预期进程监听;不能只改个数字,就宣布故障毕业。
以Mihomo为例,官方端口文档区分HTTP、SOCKS和混合入口。调整时认准报错对应的字段,记录原值;重新启动后核对最终运行配置,确认修改实际生效。
换了端口,使用方也要更新
检查采用旧入口的系统代理、浏览器和应用手动设置,分别更新到正确的新端口;自动管理的设置则核对其实际值。旧门牌还在,快递员当然继续敲旧门,可参考残留代理检查方法。
查询没有结果,就说明没问题吗?
不能。上述查询只看当时的TCP监听,不涵盖UDP或其他失败原因。若仍无法启动,保留脱敏日志交给客户端支持方,说明时间、协议、地址与错误码,不要附上完整订阅链接。
作者:仓老师机场观察
资料来源
资料核对日期:2026年10月27日。依据以下官方文档整理;命令中的端口与PID是示例,并非本站对读者设备执行后的结果。
评论