我家那台老式NAS,公网折腾了整整一个周末,何内就为了在外网能连上它看个电影。网穿电信的公网光猫,死活不给公网IP,何内打客服电话,网穿对方礼貌地告诉我:"先生,公网您家的何内宽带是动态内网IP,属于正常情况。网穿"正常?公网我差点把路由器从窗户扔出去。
后来我冷静下来,何内翻遍了各种论坛,网穿试了四五种方案,公网总算找到几条真能走通的何内路。你要是网穿也卡在这一步,别急着砸设备,下面这些办法,我按推荐程度给你排个序。
最省心的:用现成的内网穿透服务
像花生壳、cpolar这类工具,装个客户端,注册账号,它会在你本地和它的服务器之间建立一条隧道。别人访问你的时候,先访问它的服务器,再转发到你的设备上。免费版够用,但速度嘛……看个文档还行,传大文件能急死你。我试过用cpolar传一个2GB的视频,进度条走了半小时,最后直接放弃。不过胜在简单,五分鐘就能配好,适合应急。
稍微折腾点但更自由的:frp自建服务器
前提是你得有一台有公网IP的服务器,哪怕是台最便宜的云主机,一年几十块那种。你在那台服务器上跑frps,本地设备跑frpc,两边一对接,隧道就通了。这方案的好处是流量走你自己的服务器,速度取决于你服务器的带宽。我后来就搞了台腾讯云轻量服务器,带宽5M,传文件勉强能到600KB/s,看个1080p的片源会卡,但管理文件、远程桌面完全够用。配置过程有点麻烦,要改配置文件、开放端口,但网上教程一堆,照着敲就行。
零成本但看运气的:IPv6
你可能会问,IPv6不是公网地址吗?对,但前提是运营商给你分配了,而且你光猫的路由模式设置正确。我试着把光猫改成桥接,用路由器拨号,居然真拿到了一个240e开头的IPv6地址。手机用流量(现在流量基本都有IPv6)直接输地址就能访问。但问题来了——你得有个域名,还得做DDNS,因为IPv6地址会变。而且很多家庭网络环境里,IPv6被防火墙挡得严严实实,你得在路由器上放行端口。折腾半天,成功率一半一半吧。
最后说个偏方:ZeroTier组虚拟局域网
这玩意儿不是穿透,而是把不同地点的设备组成一个虚拟局域网。你手机装上客户端,跟家里的NAS就相当于在同一个局域网内,直接输内网IP访问就行。听起来挺美,但它的服务器在国外,连接速度看脸。我白天在公司连家里,延迟200多毫秒,能连上,但操作界面卡得要命。晚上稍微好点,但也就将就能用。适合偶尔应急,不适合长期依赖。
说句掏心窝的话,如果你只是偶尔远程访问一下,别追求什么完美方案。我最后实际用的组合是frp加一个便宜的域名,总共花了不到一百块,稳定跑了三个月没掉线。你要是懒得折腾,花几十块钱买别人搭好的穿透服务,省下的时间够你多看两部电影了。别在这事儿上太较真,技术是为人服务的,不是用来折磨自己的。