当前位置:首页 > 综合

外网访问内网服务器如何开端口

公司内网跑着一台测试服务器,外网想在家连上去调代码。访问服务这件事听起来简单,内网做起来能把人折腾一晚上。器何核心问题就一个:外网的开端口数据包怎么找到你那台藏在路由器后面的机器。路由器上的外网端口映射,就是访问服务干这个的。

先搞清楚你的内网网络长什么样。家里宽带一般是器何光猫拨号或者路由器拨号,你的开端口服务器接在路由器LAN口上,IP可能是外网192.168.1.100这种。外网看到的访问服务IP是运营商分配的公网地址。如果运营商给你的内网是大内网IP(100.64.x.x开头那种),端口映射做了也没用,器何需要先打电话让运营商改桥接或者申请公网IP。开端口电信一般好说话,联通看地区,移动基本别想。

确认有公网IP之后,登录路由器管理后台。TP-Link、华硕、OpenWRT这些界面不同,但逻辑一样:找到“端口转发”或“虚拟服务器”菜单。填三个关键信息——外部端口、内部IP、内部端口。比如你想从外网SSH到内网服务器,外部端口填2222(别用22,容易被扫),内部IP填192.168.1.100,内部端口填22。协议选TCP。保存生效。

这时候从外网用ssh user@公网IP -p 2222就能连上了。前提是服务器的防火墙放行了22端口,Windows的话还要检查防火墙入站规则。很多人卡在这一步,映射做对了但系统防火墙拦着,白忙活。

有个坑得提一下:80和443端口。大部分家宽运营商封了这两个端口,你做映射也访问不了。解决办法是换个高位端口,比如8080或者8443。如果非要用域名不带端口访问,那就得用反向代理加DNS解析,或者上Cloudflare Tunnel这类工具绕过端口封锁。

动态公网IP也是个麻烦事。重启光猫IP就变了,昨天做的映射今天失效。DDNS能解决这个问题。路由器自带DDNS功能的话,注册个花生壳或者No-IP账号,绑定域名。IP变了路由器自动更新解析记录。没有DDNS就用脚本定时检测IP变化,调用DNS服务商的API更新。我自己的做法是树莓派上跑个cron脚本,每五分钟查一次公网IP,变了就推送到Cloudflare。

安全方面别偷懒。端口映射等于在你家墙上开了个洞。外部端口别用默认的,SSH改高位端口,RDP也是。能上VPN就上VPN,WireGuard配一下不复杂,连上VPN再访问内网比直接暴露端口安全一个量级。实在要用端口映射,路由器上开个访问日志,看看有没有人在扫你的端口。

还有一种情况:你在公司内网,想从外网访问公司的服务器。这就不是你家路由器能解决的了。得找公司网管开防火墙策略,或者在DMZ区做映射。多数公司不会为个人需求动防火墙,这时候用frp或者ngrok做内网穿透更现实。frp需要一台有公网IP的VPS做中转,ngrok直接用现成服务但免费版有连接数限制。

端口映射本身不复杂,复杂的是网络环境。公网IP、运营商封锁、防火墙、动态IP,每个环节都可能出问题。排查的时候从外到内一层层查:先确认公网IP能不能ping通,再确认端口是否开放(用在线端口扫描工具),最后查内网服务器本身。别一上来就怀疑路由器配置,很多时候问题出在更前面。

分享到: