做网站,最怕就是内网访问不通。
很多新手朋友,刚搭好Nginx或者Apache,满心欢喜想让别人看看自己的作品。结果一查IP,全是192.168.x.x。
心里那个急啊,感觉被互联网拒之门外。
其实,这锅不用背。大部分时候,是你没搞懂“端口映射”这回事。
今天我不讲那些晦涩的网络协议,就讲怎么实操。怎么把家里或公司的局域网,变成互联网上能访问的站点。
先说个大实话,现在申请固定公网IP太难了。
电信联通,恨不得把公网IP当古董供着。
如果你能搞到固定公网IP,那恭喜你,你是天选之子。
直接进路由器后台,找到“端口转发”或者“虚拟服务器”。
添加一条规则。
协议选TCP,外部端口随便填,比如8080。内部IP填你服务器的局域网IP,内部端口填80或者443。
保存,重启路由器。
这时候,你在外网访问你的公网IP:8080,就能看到了。
简单粗暴,有效。
但大多数人的情况是,动态公网IP,或者根本就没公网IP。
这时候,端口映射就失效了。
别慌,还有招。
这就是很多人纠结的“网站怎么做端口映射”的进阶版,也就是内网穿透。
我推荐用FRP,或者一些成熟的商业穿透服务。
为什么推荐FRP?
因为免费,可控,不依赖第三方平台跑路。
你需要一台有公网IP的云服务器,作为服务端。
然后在你的内网机器上,运行客户端。
配置很简单,修改frpc.ini。
server_addr填你的云服务器IP,server_port填FRP服务端监听的端口。
添加一个代理,type填tcp,local_ip填内网IP,local_port填80。remote_port填你在云服务器上开放的端口。
启动客户端。
然后,去云服务器防火墙,开放那个remote_port。
最后,浏览器访问云服务器IP:remote_port。
成了。
这里有个坑,很多人卡在这。
云服务器安全组没开端口。
你路由器映射得再好,云服务器的安全组拦着,也是白搭。
记得去阿里云或者腾讯云的后台,把对应的TCP端口加到白名单。
这一步,我踩过无数坑,每次都是这里报错,查半天日志才发现是安全组的问题。
还有,SSL证书的问题。
如果你做HTTPS,内网穿透配置起来稍微麻烦点。
需要在FRP配置里加上cert_file和key_file的路径。
而且,浏览器会报不安全警告,除非你用了泛域名证书,并且配置了域名解析到云服务器的IP。
这时候,你就需要买域名,解析A记录到云服务器IP。
然后在FRP配置里,把type改成https,加上custom_domains。
这样,用户访问你的域名,流量经过云服务器解密,再转发到你的内网。
体验跟直接访问公网IP没区别。
有人说,这太麻烦了,有没有简单的?
有,用现成的内网穿透工具,比如花生壳或者Natapp。
它们把底层逻辑封装好了,你只需要下载个客户端,填个token。
就能生成一个临时域名。
适合测试,不适合生产环境。
为什么?
因为稳定性差,延迟高,而且免费版的带宽小得可怜。
你放个视频上去,卡得怀疑人生。
所以,如果是正经做网站,还是建议自己搞FRP。
虽然前期配置麻烦点,但后期省心。
而且,你能完全掌控流量,不被平台限速。
最后提醒一句,安全第一。
端口映射之后,你的内网机器就暴露在公网视野里了。
别开什么3389远程桌面,别留什么弱密码。
防火墙该开就开,只开放必要的端口。
不然,明天你的服务器就被挖矿了。
别笑,我上周刚帮一个朋友清理了被植入挖矿程序的机器。
那场面,CPU占用率100%,风扇转得像直升机。
排查了三天,最后发现是端口映射没做好,SSH端口直接暴露。
教训啊,血淋淋的教训。
所以,网站怎么做端口映射,不仅仅是技术活,更是安全意识活。
搞懂了原理,你就不再是那个对着192.168.x.x发呆的小白了。
你能掌控自己的网络,这才是玩技术的乐趣所在。
去试试吧,别怕折腾。
错了再改,总好过一直停在原地。