一台Ubuntu Server 12.04 x86
原先利用iptables的NAT把8080转发到本机的80,把8888转发到22(不要问为什么)。
iptables -t nat -I PREROUTING -p tcp --dport 8888 -j REDIRECT --to-ports 22
iptables -t nat -I PREROUTING -p udp --dport 8888 -j REDIRECT --to-ports 22
iptables -t nat -I PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80
iptables -t nat -I PREROUTING -p udp --dport 8080 -j REDIRECT --to-ports 80
结果今天在别处通过8888接不上SSH了,但是通过8080还是可以访问到上面跑着的Apache。
于是直接跑到服务器那里,物理登录,发现ssh 127.0.0.1可以连接,而ssh 127.0.0.1:8888无法连接。
感觉特别奇怪。因为已经正常工作了2年了。通过iptables -L -t nat
发现规则依然存在。ufw status
发现也都allow那些端口了(连127.0.0.1都连不上应该跟Firewall没关系)。netstat
看了,端口没有被别的程序占用。
这究竟是什么情况,求支招。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.