使用 Shadowsocks 访问家庭内网
dianqk
2021年01月11日 10:25

前提:

•  公网 IP

•  DDNS

TL;DR

开一个 SS 端口,配置端口转发和流量规则,注意区分出门在外代理和在家直连的变换。


出门在外总有需要访问家里内网服务的一些场景,比如访问 NAS、下载好的视频、监控。

常见的访问方式有:

•  直接公网端口转发访问(安全性低,多个服务要配置多个端口)

•  使用 VPN 访问内网(每次使用都要打开 app,同时还不能访问当前网络环境的设备)

•  Zerotier 无公网 P2P 访问(每次访问也需要单独开个 app)

Zerotier 体验如何笔者并没有用过,但看起来使用时还是得单独开个 app。(如有错误还请指出)

在日常使用手机等设备时,我们会日常开着 Surge / Quantumult X 等 app 来优化网络质量。于是我们在家里开个 shadowsocks 服务,使用支持 SS 的 app 连接即可完成便捷访问内网服务需求。同时你还可以避免出门时,非内网服务走直连或其他规则,也可以同时使用多个家庭内网服务。

部署 SS

额外的注意事项:

•  为了安全性考虑,建议选择 aes 等加密方式

•  注意配置好规则,仅需要的 IP 或域名走代理

部署 SS 推荐选择 https://github.com/shadowsocks/shadowsocks-rust rust 版本。

不推荐 shadowsocks-libev 版本,一是因为官方已经转向 rust 版本开发,而是使用时必须指定使用的 DNS。使用时需要注意设定 DNS 为可访问内网的 DNS。

端口转发

正常配置即可,但如果你的 app 不支持基于 Wi-Fi 切换代理变直连的规则,同时又懒得到家手动切换。

可以考虑配置 IP 回流,在内网也可以使用部署的 SS 服务。

我推荐一种可能更便捷的方案:将 DDNS 配置的公网域名(也是用给 SS 的域名)在内网 DNS 服务中指向部署 SS 的机器 IP

最后在客户端配置好规则,即可在外在家访问内网服务。甚至你还可以为内网服务配置 443 的 HTTPS。

4G 网络访问内网服务

参考内容:

  • 轻松访问家中的网络服务 https://community.nssurge.com/d/5