重启后无法访问端口

重启后无法访问端口

重启服务器后,我无法再通过 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] 是应该添加的端口。
为了避免将来重启后出现这种情况,您只需安装一个软件包即可自动保存和恢复规则:可以使用和为 IPv6apt-get install iptables-persistent 保存规则。iptables-save > /etc/iptables/rules.v4ip6tables-save > /etc/iptables/rules.v6

相关内容