Surge - 轻松访问家中的网络设备

Posted by Admin on May 6, 2021

相信各位在自己的家中都有一些长期联网的设备,在外出时可能需要访问,比如 NAS 等,通常有两个方式实现:

  1. 直接设置 NAT 端口转发:配置简单,但是问题在于直接将相应的服务暴露在公网上,安全性很低,且当增加服务时需要不断去维护端口转发表。
  2. 架设 VPN 服务器:配置起来比较麻烦,但是安全性高,连上之后可以直接访问内网内所有设备。但是 VPN 发动慢,容易失败,性能较差。 利用 Surge iOS,可以做到无缝的远程安全访问内网设备。

首先我们需要做好以下准备:

  1. 内网中需要一个可以运行代理服务器的设备(如 RaspberryPi、路由器、iMac Mini)
  2. DDNS 服务及客户端(DSM 可作为客户端,很多路由器也支持,服务推荐使用花生壳或 no-ip.com)

正式开始:

  1. 请将内网的网段修改为一个不常见的网段,以避免与在外使用的 WiFi 网络的内网 IP 冲突导致问题,如 192.168.0.1/24 和 192.168.1.1/24 就是两个极为常见的网段,而 192.168.150.0/24 则很罕见,修改方式请参照路由器的配置说明。

  2. 我们需要在内网建立一个代理服务器,如果在家中有一个长期开启的 macOS 设备,推荐直接使用 Surge Mac 运行 Snell 代理服务,配置方式参见手册,https://manual.nssurge.com/others/snell-server.html。 如果没有,则可以选择任意设备,配置运行 snell-server 或者 ss-server,具体配置方式请参见程序的帮助。此处假设该设备 IP 为 192.168.150.4,代理服务端口号 6160。

  3. 配置路由器,将 6160 端口的 TCP 访问转发至 192.168.150.4 的 6160。

  4. 配置一个 DDNS,获得指向家中 IP 的域名,如:home.yach.me

  5. 配置 Surge 规则,首先加入相应的 Proxy 设置

1
2
[Proxy]
HomeProxy = snell, home.yach.me, 6160, psk=password

为了在内网中使用时,不再通过代理进行转发,可以使用 SSID Group。

1
2
[Proxy Group]
Home=ssid, default=HomeProxy, HomeSSID=DIRECT, HomeSSID2=DIRECT

最后加入相应的规则

1
2
[Rule]
IP-CIDR,192.168.150.0/24,Home,no-resolve

搞定,启动 Surge。现在在任何地方访问家中的设备都畅通无阻了。

注 1:不要使用 home.yach.me 这样的容易猜测的域名,有导致自己的公网 IP 暴露的可能性。