重啟後連接埠無法存取

重啟後連接埠無法存取

重新啟動伺服器後,我無法再透過 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

相關內容