首页/教程/Clash配置文件里的port和socks-port分别是什么?
CLASH GUIDE

Clash配置文件里的port和socks-port分别是什么?

约 10 分钟阅读

Clash配置文件中的portsocks-port是两个独立的监听端口,分别对应HTTP/HTTPS代理和SOCKS5代理服务,默认值分别为7890和7891。查看当前端口值可以在Clash for Windows的General页面直接看到,Clash Verge Rev用户则需要在配置文件的编辑入口中查看portsocks-port字段的具体数值。修改端口时先在配置文件中找到对应的字段并更改数值,保存后让Clash重新加载配置。浏览器和系统代理的端口配置应填写7890,应用程序中如果支持SOCKS5代理则填写7891。如果希望简化配置,可以使用mixed-port字段让同一个端口同时提供两种代理服务。修改端口后注意检查防火墙是否放行了新端口,以及所有使用代理的应用是否同步更新了端口配置,避免因端口号不匹配导致代理连接失败。如果修改端口后遇到问题,回到配置文件中确认端口声明是否正确,以及是否有其他应用占用了新端口。

port是HTTP/HTTPS代理端口

端口负责接收HTTP协议的代理请求

Clash配置文件中的port字段定义了HTTP和HTTPS代理服务的监听端口,默认值为7890。这个端口专门负责处理浏览器、支持HTTP代理的应用程序以及通过系统代理设置走HTTP协议的网络请求。当用户在浏览器或系统网络设置中配置代理服务器地址为127.0.0.1:7890时,所有HTTP/HTTPS流量就会被引导到Clash客户端,由Clash根据规则决定是转发到代理节点还是直接连接。这是最常用的代理端口,覆盖了绝大多数日常上网场景。

系统代理设置通常使用port端口

在Windows、macOS和Linux的系统网络设置中配置代理时,填写的端口号通常对应的是Clash的port字段。系统代理本身是基于HTTP协议的,因此系统将网络请求发送到Clash的HTTP代理端口,Clash再根据配置文件中的规则进行流量路由。用户在Clash客户端界面中看到的“系统代理”开关,本质上就是将系统的代理地址设置为127.0.0.1:7890,让所有遵循系统代理设置的应用自动走Clash的HTTP代理通道。

port端口与HTTPS流量的处理

值得注意的是,虽然字段名称为port(HTTP端口),但它同时也处理HTTPS加密流量的代理转发。当浏览器访问HTTPS网站时,请求首先通过HTTP代理协议与Clash建立连接,然后Clash将加密的HTTPS流量通过代理节点转发到目标服务器。因此用户不需要为HTTP和HTTPS分别配置不同的端口,一个port端口就能同时覆盖两种协议。如果配置文件中未声明port字段,Clash可能无法正常启动代理服务。

socks-port是SOCKS5代理端口

SOCKS5协议的特点与端口职责

socks-port字段定义了SOCKS5代理服务的监听端口,默认值为7891。SOCKS5是一种更底层的代理协议,与HTTP代理不同,它不关心传输内容的具体格式,支持TCP和UDP流量的转发,也支持域名解析的代理。它适用于需要代理TCP/UDP流量的应用场景,比如即时通讯软件、游戏客户端、FTP传输以及那些不遵循系统HTTP代理设置的应用程序。将应用的SOCKS代理地址配置为127.0.0.1:7891即可使用Clash的SOCKS5代理功能。

SOCKS5相比HTTP代理的优势

SOCKS5代理在协议层面比HTTP代理更加通用。HTTP代理只能处理HTTP和HTTPS协议的请求,而SOCKS5可以代理任何基于TCP或UDP的流量,包括但不限于FTP、SMTP、远程桌面等非HTTP协议。SOCKS5还支持UDP转发,这对于需要低延迟的实时通信应用(如VoIP、在线游戏)尤为重要。在Clash中,socks-port为用户提供了HTTP代理无法覆盖的更多应用类型的代理支持,是补充port功能的重要配置项。

SOCKS5与HTTP代理的并存价值

很多应用开发者在设计网络功能时会优先支持SOCKS5代理,因为它对应用层的协议没有限制,实现起来更加灵活。终端命令行工具如curl可以通过--socks5参数使用SOCKS5代理,即时通讯软件如Telegram支持SOCKS5代理配置,部分下载工具也优先支持SOCKS5。portsocks-port两个端口并存的设计,使得Clash能够同时满足HTTP协议应用和更广泛应用类型的代理需求,用户根据应用支持情况灵活选择使用哪个端口。

混合端口mixed-port的多协议复用

mixed-port的配置方式与默认值

Clash还提供了mixed-port字段,允许用户在同一个端口上同时提供HTTP/HTTPS和SOCKS5两种代理服务。如果配置文件中设置了mixed-port: 7890,则portsocks-port可以省略,Clash会在该端口上同时接收HTTP代理请求和SOCKS5代理请求,并自动识别协议类型进行相应处理。这种混合模式简化了代理配置,用户只需要记住一个端口号即可满足两种协议的需求。新版本的Clash核心对混合端口的支持已较为成熟,越来越多的用户开始采用这种简化配置方式。

混合端口的适用场景与局限性

混合端口特别适合需要在不同应用之间频繁切换代理协议的场景——用户只需在各类应用的代理配置中统一填写同一个地址和端口,应用会自动选择合适的协议。但部分老旧应用对混合端口的兼容性不如单独端口稳定,如果某个应用通过混合端口连接Clash时出现频繁断开或连接失败的情况,可以尝试切回标准的portsocks-port分置方案,分别使用7890和7891两个独立的端口。混合端口的适用性在不同客户端和核心版本中略有差异。

混合端口与单独端口的对比选择

使用混合端口可以减少配置文件中的字段数量,降低配置复杂度和端口管理成本。但使用单独端口时,用户可以更清楚地从端口号上区分流量来源——7890端口的连接来自HTTP应用,7891端口的连接来自SOCKS5应用,在排查问题时更容易定位。对于大多数普通用户来说,混合端口足够稳定且更加便捷;对于需要精细化流量管理的进阶用户,单独端口提供了更清晰的区分度。

端口在界面中的查看与修改

Clash for Windows中的端口显示

在Clash for Windows的General(常规)页面中,PortSocks Port会直接显示在界面顶部区域,用户可以在界面上看到当前监听的端口号。点击端口数字可以直接复制端口号,方便在浏览器或应用中粘贴配置。界面中还会有一个终端图案按钮,点击后可以打开一个已经配置好代理环境变量的命令行窗口,方便在不手动设置代理的情况下直接使用终端命令通过代理访问外部网络。

Clash Verge Rev等新客户端的端口配置入口

在Clash Verge Rev等新版本图形客户端中,端口设置通常在配置文件的编辑功能中调整,而非直接在界面上提供独立的端口输入框。用户需要进入设置页面找到配置编辑入口,在YAML配置文件中手动修改portsocks-portmixed-port字段的值,保存后客户端会自动重新加载配置使新端口生效。部分版本可能在“代理设置”或“网络设置”区域提供了可视化端口输入框,具体位置因客户端版本而异,如果找不到可优先使用配置文件编辑方式。

修改端口后的生效与验证

修改配置文件中的端口号后,需要让Clash重新加载配置才能生效。在Clash for Windows中可以在General页面点击“General YML”编辑保存后客户端自动重载,或者通过重启客户端强制加载新配置。在Clash Verge Rev中修改配置文件保存后,客户端通常会检测到变化并提示“配置已更改,是否重新加载”,点击确认即可生效。如果修改后网络连接异常,先检查客户端状态栏是否显示了正确的端口号,再确认防火墙是否放行了新的端口。

端口对应的应用配置指南

系统代理中的端口配置

在Windows系统中,进入“设置”->“网络和Internet”->“代理”,在手动设置代理部分将地址填写为127.0.0.1,端口填写7890(对应HTTP/HTTPS代理)。macOS用户进入“系统设置”->“网络”->“高级”->“代理”,在HTTP和HTTPS代理中填入相同的地址和端口。这些设置生效后,所有遵循系统代理设置的应用(包括大多数浏览器和桌面软件)会自动通过Clash的HTTP代理端口转发流量。如果使用混合端口,系统代理端口同样填写混合端口的端口号。

浏览器扩展中的端口配置

使用SwitchyOmega等浏览器代理管理扩展时,在扩展配置中新建一个代理情景模式,协议选择HTTP或SOCKS5,服务器地址填写127.0.0.1,端口根据需求填写7890(HTTP)或7891(SOCKS5)。配置完成后可以在扩展工具栏中一键切换代理模式,比修改系统代理设置更加灵活方便。如果需要在浏览器中同时测试两种协议,可以分别创建HTTP和SOCKS5两个情景模式,在不同场景下快速切换。

命令行终端中的端口配置

在Linux或macOS终端中,通过设置环境变量export http_proxy=http://127.0.0.1:7890export https_proxy=http://127.0.0.1:7890可以让支持环境变量的命令行工具使用HTTP代理端口。如果应用只支持SOCKS5代理(如部分IRC客户端或特定网络工具),则需要使用127.0.0.1:7891并设置export all_proxy=socks5://127.0.0.1:7891。设置完成后用env | grep proxy确认环境变量已生效。如果使用混合端口,环境变量中的端口号填写混合端口的端口值。

端口相关的常见故障排查

端口被占用导致Clash无法启动

如果Clash启动时提示“address already in use”或“端口已被占用”,说明7890或7891端口已经被其他应用程序占用,导致Clash无法绑定端口。解决方式有两种:一是通过命令netstat -ano | findstr 7890(Windows)或lsof -i :7890(macOS/Linux)查找占用端口的进程并终止;二是修改Clash配置文件中的端口号,改为其他未被占用的端口值(如port: 7892),然后重启Clash。建议优先修改端口号,因为终止其他进程可能影响其正常运行。

修改端口后防火墙配置的更新

修改Clash的监听端口后,如果系统防火墙或第三方杀毒软件之前已为旧端口配置了放行规则,新端口默认可能被防火墙阻止,导致外部应用无法连接到Clash代理。用户需要进入防火墙设置中为新的端口号添加入站和出站规则,允许Clash进程通过该端口通信。对于Windows Defender防火墙,可以在“高级安全”规则中添加针对Clash可执行文件的新端口放行规则。云服务器场景下还需要在安全组策略中更新端口放行配置。

应用配置端口与Clash监听端口不匹配

最常遇到的连接问题是应用代理设置中的端口号与Clash实际监听的端口号不一致。如果Clash配置文件中port已改为7892,但系统代理设置中仍填写7890,则网络请求无法到达Clash。用户在修改端口后需要同步更新所有使用Clash代理的应用中的端口配置,包括系统代理设置、浏览器扩展配置、命令行环境变量和各类软件的代理设置。可以在修改完成后用curl -x http://127.0.0.1:新端口 https://www.google.com测试端口是否可达。

常见问题 FAQ

port和socks-port的默认端口号是多少?

port默认为7890,socks-port默认为7891。如果配置文件中未声明这两个字段,Clash核心会使用这些默认值启动代理服务。如果使用mixed-port混合端口模式,则默认为7890。

port和socks-port可以设置成同一个端口号吗?

不可以。如果portsocks-port设置为相同的端口号,Clash启动时会报端口冲突错误,无法绑定两个不同的服务到同一个端口。如果需要使用同一个端口提供两种协议,应该使用mixed-port字段而非分别设置portsocks-port

修改端口号后需要重启Clash吗?

需要。修改配置文件中的端口号后,Clash需要重新加载配置才能让新端口生效。可以在客户端中执行重新加载操作,或者完全退出Clash后再重新启动。修改后还需要同步更新所有使用Clash代理的应用中的端口配置。

应用如何选择使用port还是socks-port?

取决于应用支持的代理协议类型。浏览器和系统代理使用HTTP/HTTPS协议,对应port端口;SOCKS5应用和部分命令行工具对应socks-port端口。如果应用同时支持两种协议,建议优先使用HTTP代理,因为它在兼容性和调试便利性上更成熟。使用混合端口时应用无需区分协议类型。

使用提醒

请从可信来源获取软件与配置,并遵守所在地法律法规和相关服务条款。