前言:为什么需要内网穿透
家庭或小型办公室网络通常处于运营商 NAT/防火墙之后,内网设备(NAS、Home Assistant、路由器管理后台、群晖 DSM 等)缺少可直接被公网访问的入口。此时想要"人在外面也能访问家里设备",就需要一种从公网发起、可安全回到内网服务的方案,这类方案通常统称为"内网穿透"。
从技术形态看,常见方案包括:端口映射 、动态 DNS 、反向代理 、VPN 、Ngrok 、frp 等。无论选择哪一种,核心诉求都绕不开两点:
- 需要一个公网可达的中转点(公网 IP 或具备公网入口的服务),用于承接外部请求并转发到内网。
- 需要控制安全边界(认证、加密、访问策略、日志审计),避免把内网服务直接暴露到互联网上。
从落地方式上,一般可分为以下三类:
1、购买内网穿透服务(厂商提供公网中转)
向内网穿透服务提供商购买服务,通过厂商带公网 IP 的 VPS/节点进行代理,通常按流量、带宽、节点数计费。优点是部署相对省心;缺点是多为共享带宽,体验受限于厂商节点与拥塞情况;安全性通常取决于厂商的实现与配置能力。
2、自购 VPS + 自建代理服务(可控性最高)
向 VPS 服务商购买带公网 IP 的 VPS,然后在 VPS 上自建代理(例如 frp)。一般按 VPS 配置按年付费。优点是安全边界与性能更可控、稳定性更好;缺点是对网络与系统运维能力要求更高,需要自行维护升级、日志与风控。

3、免费内网穿透(适合低要求场景)
一些厂商提供免费版用于吸引用户,例如:Sakura、Cpolar。优点是成本为零、试用门槛低;缺点通常是带宽/并发/在线时长/域名与端口等限制明显,不太适合对稳定性与可控性要求较高的场景。
本文的实际需求主要用于远程控制家居开关 ,数据量很小,更关注"稳定可用、成本可控、配置清晰"。因此我主要尝试第 2/3 类方案,并最终以 自建 frp(VPS 作为中转) 为主线进行记录。
自建frp服务器
参考这个网站
参考这个网站
frp客户端配置
获取frp客户端,注意尽可能和服务端的版本保持一致
wget [https://github.com/fatedier/frp/releases/download/v0.50.0/frp_0.50.0_linux_amd64.tar.gz](https://github.com/fatedier/frp/releases/download/v0.50.0/frp_0.50.0_linux_amd64.tar.gz)
tar -xvf frp_0.50.0_linux_amd64.tar.gz
mv frp_0.50.0_linux_amd64 frpc
cd frpc
vi frpc.ini
按照如下格式填写
shell
[common]
server_addr = [公网IP]
server_port = [默认是7000]
tcp_mux = true
protocol = tcp
user = [用户名]
token = [验证密钥]
dns_server = 114.114.114.114
[rdp] # 隧道的标识,不能重复
type = tcp
local_ip = 192.168.0.199
local_port = 5000
remote_port = 25000
use_encryption = true
use_compression = true