乍一看,这似乎是一个简单的问题,但除非我错过了一些明显的事情(这总是可能的),否则就会发生一些奇怪的事情。
昨天我正在办公室运行的服务器系统上远程工作。我在移动一些文件后重新启动它,它突然停止响应 Internet 请求——SSH、HTTP/HTTPS、IMAP 等等。但是,如果我通过 SSH 连接到同一 LAN 上的另一台计算机,然后通过 SSH 连接到该服务器,我仍然可以访问它。再次重新启动服务器没有任何改变。
我的第一个想法是该系统上的防火墙出了问题,但是......
me@nas:~$ sudo iptables -L
[sudo] password for me:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp echo-request
ACCEPT tcp -- anywhere anywhere tcp dpt:8022
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere tcp dpt:submission
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3s
ACCEPT tcp -- anywhere anywhere tcp dpt:imap2
ACCEPT tcp -- anywhere anywhere tcp dpt:imaps
ACCEPT tcp -- anywhere anywhere tcp dpt:microsoft-ds
ACCEPT tcp -- anywhere anywhere tcp dpt:10024
ACCEPT tcp -- anywhere anywhere tcp dpt:8099
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
(我还暂时禁用了该系统上的防火墙。没有任何变化。)
为了绝对确定它不是路由器,我升级了它的固件(无论如何我一直需要这样做)并手动重新输入所有设置,包括该机器的端口转发设置。再次,没有变化。
我不能责怪 ISP,因为我仍然可以通过相同的 IP 地址和略有不同的端口 SSH 到网络上的其他计算机。我试过“盾牌起来!”来自grc.com的服务;它看到另一台机器的 SSH 端口,但是全部该服务器的端口显示为“隐形”。
服务器运行的是 Ubuntu 18.04。我剩下的唯一想法是,我可能会在重新启动之前自动告诉它更新软件,并且新的东西可能会更改设置,但我认为自从进行任何升级以来我已经重新启动了几次。
我还能看什么?
稍后编辑:
几天后,问题再次出现,我找到的原始解决方案(重新启动系统而不是远程重新启动)确实有效不是修理它。经过多次撕扯头发后,我偶然发现了另一个解决方案:sudo dhclient
每次只需打电话就能解决问题。将其添加到 root 用户crontab
(“@reboot /sbin/dhclient”)似乎已经永久解决了这个问题。
答案1
哦%#@$%#$...我突然想到,虽然我重启了好几次,但我并没有真正关闭机器。这样做了,将其关闭三十秒,然后重新启动......突然间一切又恢复正常了。 :-(
不知道是什么宇宙射线导致了这个问题,但现在已经解决了。
请参阅上面问题的更新描述。