Clash专区主关键词:Clash端口设置·核验日期:2026-09-28

Clash混合端口(Mixed Port)妙用:为终端命令行与第三方应用配置代理

局域网共享与命令行加速

一、功能是什么与底层机制

在传统的代理软件中,通常将HTTP代理协议与SOCKS5代理协议分别监听在不同的本地端口上(例如HTTP用7890,SOCKS5用7891)。这种设计在给第三方软件(如Telegram、Git、Python脚本)配置代理时经常需要用户反复确认协议类型,稍有填错就会连接失败。

现代Clash引入了极其优雅的‘混合端口’(Mixed Port,默认7890)。它在一个单一端口上同时支持HTTP、HTTPS与SOCKS5协议握手,无论目标程序发送哪种协议请求,都能自动识别并完成转发,极大简化了终端配置逻辑。

二、什么时候需要开启或调整

许多程序员在终端中运行‘git clone’、‘curl’或‘npm install’时经常遭遇龟速或连接超时,因为命令行终端默认完全不继承系统代理设置。此时只需利用混合端口执行一行命令:

三、详细设置与导入步骤

在Windows PowerShell中运行: $env:http_proxy="http://127.0.0.1:7890"; $env:https_proxy="http://127.0.0.1:7890"

在CMD控制台中运行: set http_proxy=http://127.0.0.1:7890 && set https_proxy=http://127.0.0.1:7890

在Mac/Linux终端中运行: export http_proxy=http://127.0.0.1:7890; export https_proxy=http://127.0.0.1:7890

执行后在终端运行‘curl https://ipinfo.io’,若返回的IP显示为海外节点地址,证明命令行已经顺畅享受代理加速!

四、推荐设置与参数优化

针对Telegram桌面版:进入设置->高级->连接类型->添加自定义代理->选择‘SOCKS5’或‘HTTP’,主机填‘127.0.0.1’,端口填‘7890’,点击保存后Telegram便能立刻秒连,再也不转圈。

针对Git全局代理:在终端输入‘git config --global http.proxy http://127.0.0.1:7890’,从此拉取GitHub代码如飞车过境。

现代Clash客户端的图形交互本质上是由后端的RESTful API(默认监听在 127.0.0.1:9097 或 9090 端口)驱动的。很多用户不知道的是,这个API接口可以通过配置 external-controller 与 secret 密钥,实现跨设备的远程运维。例如,在局域网软路由上运行Mihomo内核,在桌面PC或iPad上只需打开轻量级Web面板(如Yacd或Metacubexd),输入软路由的IP与密钥即可实时监控全屋流量。

然而,在开放外部网络监听时,安全防护必须放在第一位。切勿将 external-controller 绑定至 0.0.0.0 且不设置任何访问密码,否则局域网内的任何恶意网页都能通过跨站脚本请求(CSRF)悄悄修改你的代理规则或窃取你的节点订阅信息。始终配置长度超过16位的随机字母数字强密钥,并仅在受信任的专用局域网网段内开放控制面板访问。

五、常见配置错误排查

确保本地没有其他竞争软件(如旧版V2ray或Charles抓包工具)同时霸占7890端口。若7890被占用,在Clash设置中将其改为7897或10808,相应终端命令中的端口数字同步修改即可。

利用Clash的混合监听端口(Mixed-Port,默认7890或7897),可以轻松为各种命令行终端与IDE开发环境注入代理能力。混合端口兼具Socks5与HTTP双重协议自适应特性,能够兼容各类不同的开发工具。

在macOS或Linux终端的Shell配置文件(~/.zshrc 或 ~/.bashrc)中,将 export http_proxy 与 export https_proxy 封装为简洁的 setproxy 别名函数。每次打开终端只需输入该命令,即可快速为当前命令行注入高速出海能力。

六、网络异常后的快速恢复方法

关于“Clash端口设置”常见问题解答

Q1

Clash界面上的Mixed Port(混合端口)7890具体代表什么?

Mixed Port是将传统独立的HTTP代理与SOCKS5代理合并在同一个端口监听的智能混合端口。无论第三方软件要求填写HTTP还是SOCKS5代理,都可以统一填入127.0.0.1:7890,软件会自动识别协议类型完成转发。

Q2

在Windows CMD或PowerShell中如何一键让命令行生效代理?

在PowerShell窗口中运行命令:$env:http_proxy="http://127.0.0.1:7890"; $env:https_proxy="http://127.0.0.1:7890"。执行后当前窗口内的git clone、curl或python包下载都将立即享受高速专线出海。

Q3

为什么关闭命令行窗口后,下次打开终端代理失效了?

因为通过命令行set或$env设置的环境变量仅在当前会话窗口的生命周期内有效,关闭即自动销毁。如果希望每次打开终端都永久生效,可以将上述导出命令写入PowerShell的配置文件profile.ps1中。

相关推荐阅读