嘗試在 Ubuntu 18.04 伺服器上開啟連接埠 - 我缺少一些東西

嘗試在 Ubuntu 18.04 伺服器上開啟連接埠 - 我缺少一些東西

我嘗試在 Ubuntu 18.04 Server 虛擬機器上開啟連接埠 30080,但看到一些令人困惑的結果。

iptables 輸出

ubuntu@k8-master:~$ sudo iptables -v -x -n -L
[sudo] ubuntu 密碼:
Chain INPUT(策略接受289個資料包,98798位元組)
    pkts 位元組目標 prot 選擇輸出來源目標
    3919 272820 KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes 服務入口網站 */
    3919 272820 KUBE-EXTERNAL-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes 外部可見的服務入口網站 */
  846424 164692436 KUBE 防火牆全部 -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD(策略 DROP 0 封包,0 位元組)
    pkts 位元組目標 prot 選擇輸出來源目標
       0 0 KUBE-FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes 轉送規則 */
       0 0 KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes 服務入口網站 */
       0 0 DOCKER-USER 全部 -- * * 0.0.0.0/0 0.0.0.0/0
       0 0 DOCKER-ISOLATION-STAGE-1 全部 -- * * 0.0.0.0/0 0.0.0.0/0
       0 0 全部接受 -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate 相關,已建立
       0 0 DOCKER 全部 -- * docker0 0.0.0.0/0 0.0.0.0/0
       0 0 全部接受 -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
       0 0 全部接受 -- docker0 docker0 0.0.0.0/0 0.0.0.0/0
       0 0 全部接受 -- * * 10.244.0.0/16 0.0.0.0/0
       0 0 全部接受 -- * * 0.0.0.0/0 10.244.0.0/16

鏈輸出(策略接受281個資料包,145464位元組)
    pkts 位元組目標 prot 選擇輸出來源目標
    6870 412563 KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes 服務入口網站 */
  846213 192244364 KUBE 防火牆全部 -- * * 0.0.0.0/0 0.0.0.0/0

鏈 DOCKER (1 參考)
    pkts 位元組目標 prot 選擇輸出來源目標

鏈 DOCKER-ISOLATION-STAGE-1(1 篇參考文獻)
    pkts 位元組目標 prot 選擇輸出來源目標
       0 0 DOCKER-ISOLATION-STAGE-2 全部 -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
       0 0 回傳全部 -- * * 0.0.0.0/0 0.0.0.0/0

鏈 DOCKER-ISOLATION-STAGE-2(1 篇參考文獻)
    pkts 位元組目標 prot 選擇輸出來源目標
       0 0 刪除所有 -- * docker0 0.0.0.0/0 0.0.0.0/0
       0 0 回傳全部 -- * * 0.0.0.0/0 0.0.0.0/0

鏈 DOCKER-USER (1 條參考文獻)
    pkts 位元組目標 prot 選擇輸出來源目標
       0 0 回傳全部 -- * * 0.0.0.0/0 0.0.0.0/0

鏈 KUBE-EXTERNAL-SERVICES (1 條參考文獻)
    pkts 位元組目標 prot 選擇輸出來源目標
       0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 /* robots-shop/web:8080 沒有端點 */ ADDRTYPE 匹配 dst-type LOCAL tcp dpt:30080拒絕-with icmp-port-unreachable

鏈 KUBE-FIREWALL (2 篇參考文獻)
    pkts 位元組目標 prot 選擇輸出來源目標
       0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 /* 用於丟棄標記資料包的 kubernetes 防火牆 */ mark match 0x8000/0x8000

鏈 KUBE-FORWARD (1 篇參考文獻)
    pkts 位元組目標 prot 選擇輸出來源目標
       0 0 全部刪除 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate 無效
       0 0 全部接受 -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes 轉送規則 */ 標記符合 0x4000/0x4000
       0 0 全部接受 -- * * 10.0.0.0/16 0.0.0.0/0 /* kubernetes 轉送 conntrack pod 來源規則 */ ctstate RELATED,ESTABLISHED
       0 0 全部接受 -- * * 0.0.0.0/0 10.0.0.0/16 /* kubernetes 轉送 conntrack pod 目標規則 */ ctstate RELATED,ESTABLISHED

鏈 KUBE-SERVICES (3 篇參考文獻)
    pkts 位元組目標 prot 選擇輸出來源目標
       0 0 REJECT tcp -- * * 0.0.0.0/0 10.96.93.102 /* robots-shop/cart:8080 沒有端點 */ tcp dpt:8080拒絕-with icmp-port-unreachable
       0 0 REJECT tcp -- * * 0.0.0.0/0 10.111.89.174 /* robots-shop/web:8080 沒有端點 */ tcp dpt:8080拒絕-with icmp-port-unreachable

此外,ufw 將連接埠顯示為開啟:

sudo ufw status
Status: active

To               Action      From
--               ------      ----
30080            ALLOW       Anywhere
30080/tcp        ALLOW       Anywhere

Netstat 也會顯示處於「偵聽」模式的連接埠:

netstat -talpn | grep 30080
tcp6    0    0 :::30080      :::*           LISTEN      -

所以我不確定為什麼 nmap 仍然顯示已過濾的連接埠:

nmap -Pn localhost -p 30080 
PORT      STATE    SERVICE
30080/tcp filtered unknown

如果我從遠端電腦嘗試,nmap 顯示為已關閉:

PORT      STATE  SERVICE
30080/tcp closed unknown

不知道從這裡去哪裡。

答案1

經過一番研究,我認為這是一個 kubernetes 問題。似乎 kube-proxy 正在添加這一行:

/* robots-shop/web:8080 沒有端點 */ ADDRTYPE 匹配 dst-type LOCAL tcp dpt:30080reject-with icmp-port-unreachable

所以我想我會關閉這個主題並在 kubernetes 部分中打開另一個主題。謝謝。

相關內容