重启后端口无法访问

重启后端口无法访问

重新启动服务器后,我无法再通过 ssh 访问它。我正在运行无头 Ubuntu 20.04.5 在调查问题后,我注意到我的服务器上的所有端口似乎都已关闭(使用像 yougetsignal 这样的开放端口检查器)。我对之前打开的所有端口进行了测试。
但是,sudo netstat -tulpn | grep LISTEN返回我的端口已打开。端口 22 的示例:

tcp6       0      0 :::22                   :::*                    LISTEN      362/sshd: /usr/sbin

telnet localhost 22也会导致超时。

我的下一个假设是 iptables 规则以某种方式被覆盖,所以我运行了iptables -S | grep '22',仍然使用端口 22 作为示例。结果是:

-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT 

另外,没有安装 ufw,也没有安装我所知道的任何其他防火墙服务。

我现在有点迷失,因为我找不到问题所在,更不用说解决它了。
任何帮助是极大的赞赏。

更新:
nnmap localhost有以下输出:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.000012s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 985 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
110/tcp  open  pop3
143/tcp  open  imap
443/tcp  open  https
465/tcp  open  smtps
587/tcp  open  submission
993/tcp  open  imaps
995/tcp  open  pop3s
3000/tcp open  ppp
3306/tcp open  mysql
8090/tcp open  opsmessaging

但是,使用 nmap 从另一个系统扫描会返回:

Host is up (0.0011s latency).
Not shown: 995 filtered ports
PORT      STATE  SERVICE
53/tcp    open   domain
143/tcp   open   imap
993/tcp   open   imaps
995/tcp   open   pop3s
40193/tcp closed unknown

因此,虽然这些端口看起来是开放的,但从外部无法访问它们。

答案1

我能够解决这个问题,并留下说明,以防有人偶然发现这个线程有同样的问题。
问题是,重启后 iptables 规则不会保存。具体来说,IN_public_allow 部分。它应该列出服务器上所有打开的端口。如果没有,您必须手动附加所述规则,iptables -A IN_public_allow -p tcp --dport [PORT]-j ACCEPT其中 [Port] 是应添加的端口。
为了避免在将来重新启动后出现这种情况,您只需安装一个包即可自动保存和恢复规则:apt-get install iptables-persistent 规则可以使用IPv6iptables-save > /etc/iptables/rules.v4保存。ip6tables-save > /etc/iptables/rules.v6

相关内容