当前位置:首页 > 休闲

如何实现外网访问内网

家里那台群晖NAS已经跑了三年,何实存着全家照片和一堆电影。现外问题也跑了三年:出门在外,网访问内网想取个文件,何实只能干瞪眼。现外内网IP,网访问内网192.168.x.x,何实出了路由器就没人认识它。现外这事不解决,网访问内网NAS就是何实个局域网硬盘。

先搞清楚为什么外网进不来。现外运营商给的网访问内网光猫拨号,你拿到的何实公网IP大概率是假的——100.64开头的运营商级NAT,或者干脆是现外动态的,今天一个样明天又一个样。网访问内网路由器后面的设备全在私有地址池里,外网请求根本找不到入口。这不是设置问题,是网络架构决定的。

最省事的办法是内网穿透工具。ZeroTier、Tailscale这类,原理不复杂:两端都装客户端,通过第三方服务器牵线,打一条虚拟隧道。你在外面用手机连上,就像回到了家里的局域网。Tailscale我用了两年,免费版支持100台设备,配置基本是登录、授权、完事。延迟看中转节点,通常几十毫秒,传文件够用。缺点也明显——依赖第三方服务器,哪天它抽风或者改政策,你就得另找路子。

不想受制于人,就得自己搞。有公网IP的话,路由器上做端口映射,把内网某台机器的某个端口暴露出去。但动态IP是常态,所以得配DDNS。花生壳、Dynv6、Cloudflare DDNS,选一个。我在OpenWrt上跑了个Cloudflare的DDNS脚本,每五分钟检查一次IP变化,自动更新DNS记录。域名用自己买的,一年几十块,比花生壳免费版稳。

端口映射有个坑:别把NAS的5000端口直接怼出去。去年我图省事,把群晖管理界面映射到公网,第二天日志里全是暴力破解尝试。后来改成只开VPN端口,先连回内网再访问服务。WireGuard是现在最顺手的方案,配置文件扫个码就导入,手机电脑都能用。路由器上跑WireGuard服务端,UDP端口映射出去,外面连上就相当于在家。

没有公网IP怎么办?找运营商要。电信和联通部分地区打个电话就能给,理由说“家里装了监控需要远程查看”。客服一般会帮你改成公网IP,重启光猫就生效。移动宽带基本没戏,NAT层层叠叠,要不到。这时候只能回到内网穿透,或者用IPv6。IPv6现在三大运营商都下发,每个设备一个公网地址,防火墙放行对应端口就行。但外面网络不一定支持IPv6,手机流量通常可以,公司WiFi就难说。

还有个野路子:frp。自己有台VPS的话,服务端跑frps,家里路由器跑frpc,把内网服务反向代理到VPS上。访问VPS的某个端口,流量就转到家里。VPS带宽和流量是瓶颈,传大文件心疼,但应急访问够用。我拿它做备用通道,主用WireGuard,挂了就切frp。

安全这事不能省。暴露到公网的服务,密码至少16位,能开两步验证就开。SSH别用22端口,改个高位端口,禁用密码登录只留密钥。路由器固件保持更新,OpenWrt社区版比原厂固件勤快得多。我还在NAS上装了Fail2ban,连错三次直接封IP,省心。

实际体验下来,WireGuard加DDNS是最平衡的方案。速度跑满家里上传带宽,延迟低,配置一次管很久。Tailscale当备用,出门在外连不上自己的VPN时顶上。frp留给VPS,做最后一道保险。三套方案并行,总有一套能通。NAS里的照片,现在在哪都能翻出来看了。

分享到: