那些年我被“连不上”逼疯的瞬间
说真的,每次一提到端口转发,我脑子里就自动播放那些年debug到凌晨三点的画面,明明配置看起来没毛病啊,防火墙也关了,服务也起了,可就是——连!不!上!你说气不气人?今天咱们就唠唠端口转发常见问题,都是我拿头发换来的经验,希望能帮你少走点弯路。

第一个坑:本地能通,远程死活连不上
这事儿我遇到过不下五次,一开始我傻乎乎地以为是服务端的问题,又是重启又是看日志,结果折腾半天才发现——哦,原来是绑定地址写成了0.0.1,大哥,你只监听本地回环,外面的请求当然进不来啊!改成0.0.0之后瞬间通,当时真想给自己一巴掌,所以啊,做端口转发之前,先确认你的服务到底监听在哪个网卡上,这个小细节能省你两小时。
第二个坑:防火墙“假装”放行了
有一次我在云服务器上配转发,安全组规则加得明明白白,iptables也写了ACCEPT,结果还是不通,你猜怎么着?规则顺序搞反了!那个DROP规则跑在ACCEPT前头,包还没到转发那一步就被扔了,哎,端口转发常见问题里,防火墙顺序绝对能排前三,后来我养成了习惯:配完先用telnet试一下端口通不通,再看iptables -L -n --line-numbers瞅瞅规则位置,别光看“有没有”,得看“谁先谁后”。
第三个坑:NAT回流没开,内网访问域名绕死你
这个特别隐蔽,外网访问正常,内网用公网IP或者域名访问就不行,你说怪不怪?其实是路由器或防火墙上没开NAT回流(也叫hairpin NAT),内网机器发请求到公网IP,包到了路由器,路由器懵了:这包从里面来要去我自己?算了不转发了,解决办法要么开回流,要么内网直接走本地DNS解析到内网IP,反正端口转发这事吧,内外网路径不一样,思维也得跟着拐弯。
第四个坑:端口冲突,悄无声息地挂了
有回我配了个8080转发,服务起不来,日志也不报错,就默默死了,查了半天——哦,原来系统里另一个进程早占了8080。netstat -tulnp | grep 8080一跑,真相大白,所以配端口转发前,先确认目标端口没被占用,别嫌麻烦,一条命令的事。
最后唠叨一句
端口转发常见问题翻来覆去就那么几类:监听地址、防火墙顺序、NAT回流、端口冲突,看着简单,真踩起来一个比一个磨人,但只要你按顺序排查——先本地通不通,再防火墙放没放,再路由转没转,最后看端口占没占——基本半小时内能定位,行了,不说了,我去检查一下我那个还没搞定的转发规则……祝你一次配通,少掉头发!
(内链提示:如果你也在折腾端口转发,欢迎回到本站《端口转发常见问题》合集页查看更多排错案例。)