# MacOS 使用 Surge 的网关方案 **Published by:** [John Torres](https://paragraph.com/@lota/) **Published on:** 2022-03-27 **URL:** https://paragraph.com/@lota/macos-surge ## Content Surge on MacOS目的局域网内(家/办公室),只需要有一台 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 等二. 成本$99购买 Surge4 的 5 个授权(这个选项性价比最高,可用于 5 台 MacOS 设备)$xx代理服务 (机场不要太过于在意成本,成本太低的机场往往线路质量不稳定,有集体坠机的风险)三. 相关链接Surge 官网https://nssurge.com/四. 使用自动代理分组和优化规则生成工具自动获取节点配置列表生成代理分组(自动测试线路可用性)生成分流规则导出配置文件到 iCloud 文件夹(Surge 配置可以跨设备自动同步)1. 下载和安装依赖安装最新 LTS 版本的 Node.js https://nodejs.org/en/ 安装最新版本的 git https://git-scm.com/2. GitHub-- 这一步不需要操作,如果你有能力优化贡献代码,欢迎欢迎 --这个工具是自己写的自动导出代理分组和分流规则配置文件我自己正在使用的配置文件就是用这生成的https://github.com/web3jt/rules3. 下载、初始化、编辑配置打开 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 4. 编辑配置文件 config.yamlSURGE_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 中将 修改成 Mac 的用户名,也就是 Terminal 里命令提示符 @ 前边的名字SURGE_OUTPUT 中将 修改成你想要的配置文件名,我自己用的就是机场的英文名如果 iCloud 里没有这么一个文件夹,那么随便指定到任何一个文件夹,起个名字,都行附图,我正在使用的机场可导出的节点列表的地方5. 运行脚本,自动获取代理列表并导出配置文件$ node surge.js Saved... 运行完毕后,配置文件会自动导出到 iCloud 文件夹 以后每次想重新获取最新节点列表,并再次生成配置文件覆盖的时候,只执行这一条命令就行了…… 或者写一个 cron 每天运行一次五. 在 Surge 中应用刚刚导出的配置文件Surge 主窗口 - More (左下) - Profile - 切换配置文件为刚刚导出的 profile-name六. 设置 Surge 为系统代理并开启增强模式Surge 主窗口 - Activity (左上)- 开启 System Proxy (右下)Surge 主窗口 - Activity (左上)- 开启 Enhanced Mode (右下)七. 将 MacOS 的 IP 地址设为固定防止 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 吧,多个子网,想互通就互通,想隔离就隔离,家人、访客、出海、工作、电视和游戏、物联网、监控,都能有相当舒服的姿势 有商用路由的也不需要我这里哔哔了,诸神可借鉴思路、动动手指轻松搞定写在最后 欢迎打赏,给啥都行,不嫌多不嫌少,哈哈 ETH/BSC 钱包地址 0x66666666f6d4Eef3bF30A60DDe1Bf50Ce056e87f ENS 域名 lota.eth 祝大家刷绿码!收红包!! ## Publication Information - [John Torres](https://paragraph.com/@lota/): Publication homepage - [All Posts](https://paragraph.com/@lota/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@lota): Subscribe to updates - [Twitter](https://twitter.com/web3jt): Follow on Twitter