内网穿透配置指南:让家里的设备也能被外网访问,其实没那么难
先说结论:内网穿透这事儿,听起来挺玄乎,实际上理解了原理之后,配置起来也就那么几步。今天这篇文章,我就用最直白的话,把整个流程给你捋一遍。
为什么要内网穿透?
简单说,你家里的电脑、NAS、摄像头,都在路由器后面,外网根本看不见它们。你想在公司访问家里的NAS,或者在朋友面前展示一下自己搭建的服务,直接输IP肯定是不行的。内网穿透就是帮你搭一座桥,让外网的请求能“穿”进你的内网设备。
选哪种方案?
常见的有这么几种:一种是 frp、nps 这类自建服务,需要你自己有一台带公网IP的云服务器;另一种是 commercial 的穿透服务,比如花生壳、ZeroTier 这些,配置简单但可能有速率限制。
如果你手里刚好有台云服务器,我建议走 frp 方案,免费、可控、速度也够用。下面就以 frp 为例,说说具体怎么配。
动手之前,先理清两边
网络结构要清楚:云服务器是“服务端”,你家内网那台设备是“客户端”。服务端负责接收外网请求,客户端负责把请求转发给家里的设备。
第一步,在云服务器上装 frps(服务端)。下载对应版本,解压,编辑 frps.ini 配置文件。关键就两项:bind_port 设一个监听端口,比如 7000,用于和客户端通信;dashboard_port 可以开个 web 面板方便看状态,比如 7500。
第二步,配置客户端 frpc。在你内网的机器上,写 frpc.ini。填上服务端的公网IP和 bind_port,然后定义你要暴露的服务。比如你想远程桌面家里的电脑,就配一个 TCP 类型的隧道,本地IP写 127.0.0.1,本地端口写 3389,远程端口写个 6000。这样外网访问云服务器的 6000 端口,就会转发到你家里那台电脑的 3389。
第三步,启动并自启。服务端跑 ./frps -c frps.ini,客户端跑 ./frpc -c frpc.ini。没问题的话,用 systemd 设个开机自启,省得每次重启机器都要手动跑一遍。
别忘了防火墙和安全
云服务器的安全组里,放行 bind_port 和你要用的远程端口。客户端的 frpc 配置文件里,建议把 token 设上,服务端也要对得上,不然谁都能连你的隧道就麻烦了。
最后提醒一句:公网暴露服务,密码强度一定要够,能上 HTTPS 就别用 HTTP。内网穿透是把双刃剑,方便的同时也得把安全关把好。
按这个流程走一遍,基本上半小时内就能搞定。祝顺利。