
局域网内(家/办公室),只需要有一台 MacOS 安装 Surge,配置好,内网其它设备都不用再安装任何代理工具(比如不方便安装代理的 AppleTV、电视棒、Switch、XBox、Oculas),都可以使用 MacOS 当网关,自动分流上网。
相比于软路由等方案,成本会更高,但配置更轻松、维护方便、使用过程有图形界面,Mac 运行稳定性仅次于 Linux 可以长期动行,几乎不怎么需要重启,除非操作系统版本升级。
在 MacOS 上运行 Surge,推荐使用一台 24 小时开机的 MacMini
允许局域网内的其它设备将 MacOS 当作网关使用
分组内自动 URL Test 选择延迟最低的节点,节点故障时自动切换
网络数据经 Surge on MacOS 自动分流(可以手动选择不同分组对应的分流策略)
国内的走国内直连
国内的搜索引擎、APP、聊天、视频服务等,GoogleFCM 服务也应该是直连的
国际的走机场代理
Google, YouTube, Spotify, Netflix, Twitter, Discord, Twitter 等
购买 Surge4 的 5 个授权(这个选项性价比最高,可用于 5 台 MacOS 设备)
代理服务 (机场不要太过于在意成本,成本太低的机场往往线路质量不稳定,有集体坠机的风险)
自动获取节点配置列表
生成代理分组(自动测试线路可用性)
生成分流规则
导出配置文件到 iCloud 文件夹(Surge 配置可以跨设备自动同步)
安装最新 LTS 版本的 Node.js
安装最新版本的 git
-- 这一步不需要操作,如果你有能力优化贡献代码,欢迎欢迎 --
这个工具是自己写的
自动导出代理分组和分流规则配置文件
我自己正在使用的配置文件就是用这生成的
https://github.com/web3jt/rules
打开 Terminal 打开命令行工具
# 这一个区块的内容,熟悉命令行的用户不用管,直接跳到下一段
# 进入用户文件夹
$ cd ~
# 新建一个专用文件夹,<dir-name> 换成自己想起的名字
$ mkdir <dir-name>
# 进入这个文件夹
$ cd <dir-name>
# 下载库
$ git clone https://github.com/web3jt/rules
# 进入文件夹
$ cd rules
# 自动安装依赖包
$ npm install
# 创建配置文件
$ cp config.sample.yaml config.yaml
# 编辑配置文件,或者不用 nano 工具,用任何文本编辑工具编辑这个 config.yaml 文件都可以
$ nano config.yaml
SURGE_PROVIDER: "https://example.com/subscribe/<key>?protocols=smart&list=surge"
SURGE_OUTPUT: "/Users/<username>/Library/Mobile Documents/iCloud~com~nssurge~inc/Documents/<profile-name>.conf"
SURGE_PROVIDER填入机场提供的代理配置列表 URLSURGE_OUTPUT中将<username>修改成 Mac 的用户名,也就是 Terminal 里命令提示符@前边的名字SURGE_OUTPUT中将<profile-name>修改成你想要的配置文件名,我自己用的就是机场的英文名如果 iCloud 里没有这么一个文件夹,那么随便指定到任何一个文件夹,起个名字,都行

$ node surge.js
Saved...
运行完毕后,配置文件会自动导出到 iCloud 文件夹
以后每次想重新获取最新节点列表,并再次生成配置文件覆盖的时候,只执行这一条命令就行了……
或者写一个 cron 每天运行一次
Surge 主窗口 - More (左下) - Profile - 切换配置文件为刚刚导出的 profile-name
Surge 主窗口 - Activity (左上)- 开启 System Proxy (右下)
Surge 主窗口 - Activity (左上)- 开启 Enhanced Mode (右下)
防止 MacOS 每次连入路由器、或路由器重启时,MacOS 被分配随机的 IP 地址
进入路由器设置,在
DHCP相关设置里,找到Mac/IP 绑定然后将 Mac (网卡物理地址)与想要设置的 IP 地址进行绑定推荐使用
192.168.x.254这种.254结尾的子网内最末一个 IP (因为一般家用路由器的 DHCP 分配规则都是小于 200,如果进入路由器设置页面进行绑定,你是可以看到 DHCP 的分配规则的,这里的 IP 没有确定之规,只要不在自动分配范围里就行,但一定要在路由器所在的子网网段里,如果路由器的 IP 是192.168.1.1那么就不要把 MacOS 的 IP 设置为非192.168.1.x的)或者手动在 Mac 网络选项里设置
TCP/IP的IPv4地址 (更推荐上一条在路由器里设置 Mac/IP 绑定,除非你连路由器的管理密码都忘了)
比如:电脑、手机、Switch、XBox、Oculas、AppleTV、Amazon 电视棒、Google 音箱等
进入 WiFi 设置
手动编辑网关地址为刚刚绑定的
192.168.1.254手动编辑 DNS 地址为
198.18.0.2(这是 Surge 提供的内网专用 DNS,使用 Surge 为网关时,必须使用此 DNS 才能正常访问网络)
LAN 设置,同理
如果你希望某一批设备,只要连接 WiFi 就能自动使用你的 Surge on MacOS 为网关的话:
在主路由 LAN 口上再插另外一台路由器(以下称之为
2 号路由)2 号路由的 WAN 口上网模式设置为 DHCP 自动分配
将 MacOS 连入 2 号路由器(最好用网线,比 WiFi 延迟低)
固定 MacOS 的 IP 地址
2 号路由设置,将 DHCP 服务下发 IP 配置时的
网关地址设定为 MacOS 的 IP 地址
如此,可以做到:
家里有两个 WiFi 热点可以使用
所有接入 2 号路由的设备都自动将 Surge on MacOS 当作网关,所有网络访问自动分流
某个设备如果不需要自动分流(直连网络),那么接入 1 号路由就行了
如果你使用商用路由 + AP/AC 甚至多层交换的解决方案,就像我一样用 vLAN 吧,多个子网,想互通就互通,想隔离就隔离,家人、访客、出海、工作、电视和游戏、物联网、监控,都能有相当舒服的姿势
有商用路由的也不需要我这里哔哔了,诸神可借鉴思路、动动手指轻松搞定
