Surge通过mihomo内核使用VLESS协议配置教程

sisyphus 2026-01-27 16:24 1

一、 环境准备与安装




  1. 安装 mihomo


    使用 Homebrew 安装:


    brew install mihomo




  2. 建立符号链接


    将二进制文件链接至系统标准路径:


    sudo ln -s /opt/homebrew/bin/mihomo /usr/local/bin/mihomo




二、 配置 Surge 外部代理策略


在 Surge 配置文件的 [Proxy] 段落中添加以下内容。注意将 你的用户名 替换为实际的 macOS 用户名:


[Proxy]
mihomo = external, exec="/usr/local/bin/mihomo", local-port=65535, args="-d", args="/Users/你的用户名/.config/mihomo", args="-f", args="/Users/你的用户名/.config/mihomo/config.yaml", addresses=127.0.0.1

参数说明:




  • local-port:必须与下方 mihomo 配置文件中的 mixed-port 保持一致,且不能与 Surge 自身的监听端口(如 7890)冲突 。




  • args-d 指定工作目录,用于寻找 MMDB 数据库等资源;-f 指定配置文件绝对路径 。




  • addresses:ai建议在此填入代理服务器的真实 IP,可避免 Surge 增强模式对代理流量的二次拦截 。




  • 极简设置:实际使用只填写mihomo = external, exec="/usr/local/bin/mihomo", local-port=65535也可正常使用。




三、 编辑 mihomo 配置文件


配置文件路径:/Users/你的用户名/.config/mihomo/config.yaml


1. 极简配置


参考ACL4SSR Clash配置编写了一版配置,建议自行按需编辑,可以考虑提供节点和订阅信息让ai辅助编写。


mixed-port: 65535
allow-lan: true
mode: rule
auto-update: false
geodata-mode: false
external-controller: 127.0.0.1:9090
secret: "000000"
dns:
enable: true
ipv6: true
default-nameserver:
- 223.5.5.5
- 119.29.29.29
nameserver:
- 119.29.29.29
- 223.5.5.5
- https://doh.pub/dns-query
- https://223.5.5.5/dns-query
- https://doh.360.cn/dns-query
- https://dns.alidns.com/dns-query

proxy-providers:
Node:
type: http
url: ""
path: ./proxy_providers/node.yaml
interval: 3600
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300
payload:
- name: "Node"
type: vless
server: ""
port: 0
uuid: ""
udp: true
tls: true
flow: xtls-rprx-vision
servername: ""
client-fingerprint: chrome
reality-opts:
public-key: ""
encryption: none
network: tcp

Sub:
type: http
url: ""
path: ./proxy_providers/sub.yaml
interval: 3600
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 300

proxy-groups:
- name: 🚀 节点选择
type: select
use:
- Node
- Sub
proxies:
- ♻️ 自动选择
- 🔯 故障转移
- 🔮 负载均衡
- 🇭🇰 香港节点
- 🇯🇵 日本节点
- 🇺🇲 美国节点
- 🇨🇳 台湾节点
- 🇸🇬 狮城节点
- 🇰🇷 韩国节点
- DIRECT

- name: ♻️ 自动选择
type: url-test
use:
- Sub
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50

- name: 🔯 故障转移
type: fallback
use:
- Sub
url: http://www.gstatic.com/generate_204
interval: 300

- name: 🔮 负载均衡
type: load-balance
use:
- Sub
url: http://www.gstatic.com/generate_204
interval: 300

- name: 📲 电报消息
type: select
proxies:
- ♻️ 自动选择
- 🔯 故障转移
- 🔮 负载均衡
- 🇭🇰 香港节点
- 🇯🇵 日本节点
- 🇺🇲 美国节点
- 🇨🇳 台湾节点
- 🇸🇬 狮城节点
- 🇰🇷 韩国节点

- name: 📹 油管视频
type: select
proxies:
- ♻️ 自动选择
- 🔯 故障转移
- 🔮 负载均衡
- 🇭🇰 香港节点
- 🇯🇵 日本节点
- 🇺🇲 美国节点
- 🇨🇳 台湾节点
- 🇸🇬 狮城节点
- 🇰🇷 韩国节点

- name: 🎯 全球直连
type: select
proxies:
- ♻️ 自动选择
- 🔯 故障转移
- 🔮 负载均衡
- 🇭🇰 香港节点
- 🇯🇵 日本节点
- 🇺🇲 美国节点
- 🇨🇳 台湾节点
- 🇸🇬 狮城节点
- 🇰🇷 韩国节点
- DIRECT

- name: 🛑 广告拦截
type: select
proxies:
- REJECT
- DIRECT

- name: 🇭🇰 香港节点
type: url-test
use:
- Sub
filter: "(?i)港|hk|hongkong|hong kong"
url: http://www.gstatic.com/generate_204
interval: 300

- name: 🇯🇵 日本节点
type: url-test
use:
- Sub
filter: "(?i)日本|jp|japan"
url: http://www.gstatic.com/generate_204
interval: 300

- name: 🇺🇲 美国节点
type: url-test
use:
- Node
- Sub
filter: "(?i)美|us|united states|Node"
url: http://www.gstatic.com/generate_204
interval: 300

- name: 🇸🇬 狮城节点
type: url-test
use:
- Sub
filter: "(?i)新加坡|sg|singapore"
url: http://www.gstatic.com/generate_204
interval: 300

- name: 🇨🇳 台湾节点
type: url-test
use:
- Sub
filter: "(?i)台|tw|taiwan"
url: http://www.gstatic.com/generate_204
interval: 300

- name: 🇰🇷 韩国节点
type: url-test
use:
- Sub
filter: "(?i)韩|kr|korea"
url: http://www.gstatic.com/generate_204
interval: 300

- name: 🐟 漏网之鱼
type: select
proxies:
- 🚀 节点选择
- DIRECT

rule-providers:
LocalAreaNetwork:
behavior: classical
type: http
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/LocalAreaNetwork.yaml"
interval: 86400
path: ./ACL4SSR/LocalAreaNetwork.yaml
UnBan:
behavior: classical
type: http
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/UnBan.yaml"
interval: 86400
path: ./ACL4SSR/UnBan.yaml
BanAD:
behavior: classical
type: http
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/BanAD.yaml"
interval: 86400
path: ./ACL4SSR/BanAD.yaml
BanProgramAD:
behavior: classical
type: http
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/BanProgramAD.yaml"
interval: 86400
path: ./ACL4SSR/BanProgramAD.yaml
Telegram:
behavior: classical
type: http
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/Telegram.yaml"
interval: 86400
path: ./ACL4SSR/Telegram.yaml
ChinaDomain:
behavior: classical
type: http
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/ChinaDomain.yaml"
interval: 86400
path: ./ACL4SSR/ChinaDomain.yaml

rules:
- RULE-SET,LocalAreaNetwork,🎯 全球直连
- RULE-SET,UnBan,🎯 全球直连
- RULE-SET,BanAD,🛑 广告拦截
- RULE-SET,BanProgramAD,🛑 广告拦截
- RULE-SET,Telegram,📲 电报消息
- RULE-SET,ChinaDomain,🎯 全球直连
- GEOIP,CN,🎯 全球直连
- MATCH,🐟 漏网之鱼

2. 地理数据库 (MMDB) 配置


若需使用 GEOIP 分流,mihomo 必须在工作目录下找到数据库文件。




  • 推荐方案:直接映射 Surge 现有的数据库文件:


    ln -s "/Users/你的用户名/Library/Application Support/com.nssurge.surge-mac/GeoLite2-Country.mmdb" "/Users/你的用户名/.config/mihomo/Country.mmdb"




  • 备用方案:自行检索下载Country.mmdb文件到/Users/你的用户名/.config/mihomo/




四、 故障排查


日志监控


若启动失败或报错,请检查 /private/tmp 目录下的日志文件:

Surge-External-mihomo.log:记录了外部进程的所有输出 。
Surge-External-vless.log
SurgeHelper.log
SurgeSystemExtension.log

五、使用


Surge调用


在Surge某策略组中选中mihomo策略,无需手动启动mihomo


Web 面板管理


打开任意 mihomo web控制面板(如 MetaCubeXD),主机填入 127.0.0.1,端口 9090,密钥为你在 secret 中设置的内容。连接成功后即可实时切换节点。

最新回复 (7)
  • sisyphus 楼主 01-27 16:25
    1

    在网上没有找到详细教程,各论坛里大佬们都说得比较简洁,研究了两天写了一下教程,可能有各种缺漏或更优配置,欢迎提出建议!

  • icen10k 01-27 17:51
    2

    没懂用 surge 为什么还有用这个内核

  • just.do.it 01-27 17:53
    3

    当然是支持surge不支持的vless或者ssr等协议了

  • icen10k 01-27 17:55
    4

    是为了 surge 的其他功能吗

  • sisyphus 楼主 01-27 18:03
    5

    就是为了用vless协议,印象中开发者是觉得vless协议有缺陷所以不想支持,但它确实是现在比较火的协议,手上有机场主要是vless协议节点,所以研究了一下

  • Ramo99 01-28 01:16
    6

    折腾万岁 感谢分享

  • lambda 07-06 12:29
    7

    感谢大佬,最近很多机场都搞了vless,搞的surge不支持

* 帖子来源Linux.do
返回