[Surge] 强迫症福音:一份遵循 “奥卡姆剃刀” 原则的极简配置指南
浏览了社区和 GitHub 上众多的 Surge 配置仓库,我发现一个普遍痛点:配置项冗余且混乱。很多早已废弃的参数、默认即可的开关、甚至相互冲突的规则被盲目复制粘贴,对于追求极致整洁的强迫症患者来说,阅读这些配置文件简直是一种折磨。
为此,我决定重构一份 “反熵增” 的配置清单。
核心原则:如无必要,勿增实体。
- 剔除默认值:如果 Surge 的默认行为已经合理,绝不显式写入配置文件。
- 拒绝无效参数:清理死代码和过时配置(如 VIF 模式下的
skip-proxy)。 - 仅保留关键:只体现需要根据国情额外配置的,或社区公认的最佳实践(Best Practice)。
基于以上原则,我整理了以下配置。希望它能成为一份逻辑自洽、甚至赏心悦目的基准配置。欢迎大家从原理层面进行 “代码审查” 和讨论,我们将持续迭代更新。
[General] 核心设置
[General]
# --- 连接稳定性与测试 ---
# 开启 Wi-Fi 助理:当 Wi-Fi 信号极差或无法联网时,自动使用蜂窝数据
wifi-assist = true
# 连通性测试:用于检测是否具备互联网访问能力
internet-test-url = http://wifi.vivo.com.cn/generate_204
# 代理测速:用于测试代理节点的延迟基准
proxy-test-url = http://cp.cloudflare.com/generate_204
# --- 物理网络旁路 (核心优化) ---
# 作用:流量不经过 Surge 虚拟网卡,直接由物理网卡处理 (VIF 模式下唯一有效的绕过方式)
# 1. 192/10/172: 解决局域网传输 (NAS) 发热、跑不满带宽的问题;确保公共 Wi-Fi 认证页面正常弹出
# 2. 100.64: 解决 Tailscale/ZeroTier 组网连接失败、运营商内网服务异常
# 3. 224/239/255: 解决 AirPlay 投屏找不到设备、智能家居 SSDP 发现问题
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 239.255.255.250/32, 224.0.0.0/24, 255.255.255.255/32
# --- DNS 解析 ---
# 策略:阿里(223) + 腾讯(119) 提供高可用解析,System 作兜底
# 注意:保留 system 是为了在公共 Wi-Fi 未认证(外网不通)时,能获取路由器下发的内网 IP 以弹出登录页
dns-server = 223.5.5.5, 119.29.29.29, system
# 劫持转发:强制接管设备内所有发往 53 端口的 DNS 查询 (防止 App 自定义 DNS 导致分流失效)
hijack-dns = *:53
按需选配:
# ============================================
# Optional / Advanced Settings (按需启用)
# ============================================
# --- 远程控制器 (HTTP API) ---
# 允许通过 HTTP API 控制 Surge (如 Yacd 面板 / 快捷指令)
# http-api = pass@127.0.0.1:6171
# http-api-tls = false
# http-api-web-dashboard = false
# --- 局域网访问 (Wi-Fi/热点共享) ---
# 允许局域网内其他设备连接本机的代理服务
# allow-wifi-access = false
# allow-hotspot-access = true
# 代理服务监听端口 (默认 HTTP:6152, SOCKS5:6153)
# wifi-access-http-port = 6152
# wifi-access-socks5-port = 6153
# --- 高级网络行为 ---
# 隐藏状态栏 VPN 图标
# hide-vpn-icon = false
# 排除简单主机名 (不包含点的域名) 走代理,通常用于让内部域名强制直连
# exclude-simple-hostnames = true
# IPv6 支持 (默认关闭,国内环境建议保持关闭以提升兼容性)
# ipv6 = false
# 当遇到 REJECT 策略时,是否显示网页报错页面 (默认为直接断开)
# show-error-page-for-reject = true
# UDP 转发失败时的回退行为 (默认为 REJECT,可选 DIRECT)
# udp-policy-not-supported-behaviour = REJECT
# --- DNS 与数据源 ---
# 加密 DNS (DoH/DoQ): 除非有抗污染强需求,否则不建议开启,会增加延迟
# encrypted-dns-server = https://223.5.5.5/dns-query, quic://dns.alidns.com
# 自定义 GeoIP 数据库源 (仅当默认数据库不准时使用)
# geoip-maxmind-url = https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb
# 从 /etc/hosts 读取 DNS 记录 (仅 macOS)
# read-etc-hosts = true
# --- 遗留与替代项 (不推荐使用) ---
# [VIF Mode 无效] 即使配置也被忽略,物理直连请使用 tun-excluded-routes
# skip-proxy = 192.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, *.local, localhost
# [建议使用模块] 强制返回真实 IP (解决游戏 NAT 类型或去 IP 校验)
# 推荐使用 Surge 模块或 Rule 进行管理,保持主配置简洁
# always-real-ip = *.srv.nintendo.net, *.stun.playstation.net, xbox.*.microsoft.com
