我是 Linux 和 Ubuntu 的新手。我用谷歌搜尋並閱讀了一些文章,指出所有連接埠都是關閉的,直到用戶手動打開它們。這是對的嗎?
簡單來說,「偵聽連接埠」和「連接埠已建立」是什麼意思?
答案1
我用谷歌搜尋並閱讀了一些文章,指出所有連接埠都是關閉的,直到用戶手動打開它們。這是對的嗎?
取決於您所看到的“用戶”。使用者通常不會說“嘿,請打開連接埠 X”。系統服務(例如用於列印的 CUPS、UDP/TCP 連接埠 631)開啟一個連接埠進行偵聽。其他範例包括 HTTP 伺服器(TCP 連接埠 80)、DNS 伺服器(UDP 連接埠 53)和 SMTP(郵件)伺服器(TCP 連接埠 25)。
到目前為止,我只提到了端口,但程式還必須指定一個位址來開始偵聽。重要的是要理解程式可以監聽本地(IPv4 位址127.0.0.1
、IPv6 位址::1
)或位於可透過以下方式存取服務的位址:您網路上的其他設備(使用您的網路位址,例如10.0.1.4
)。還有一個「通配符位址」(0.0.0.0
針對 IPv4、::
IPv6)也可以遠端存取。
連接埠確實是「關閉」的,直到程式開始偵聽它。
此sudo netstat -tulpn
指令可用於顯示正在監聽的 TCP/UDP 程式。在預設的 Ubuntu 桌面安裝上,這顯示:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2254/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1346/cupsd
tcp6 0 0 ::1:631 :::* LISTEN 1346/cupsd
udp 0 0 0.0.0.0:59296 0.0.0.0:* 1152/avahi-daemon:
udp 0 0 127.0.0.1:53 0.0.0.0:* 2254/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 1684/dhclient
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1152/avahi-daemon:
udp6 0 0 :::5353 :::* 1152/avahi-daemon:
udp6 0 0 :::53537 :::* 1152/avahi-daemon:
在這裡,您可以看到avahi-daemon 可以透過UDP 端口59296、5353 和53537 進行網路存取。 。此守護程序用於“網路發現”並允許您執行“檔案共用”等操作。還有一個 DHCP 用戶端在連接埠 UDP 68 上進行全域監聽。
有些服務僅在本地偵聽,無法透過網路存取。它們是 DNS 快取服務 dnsmasq(UDP 連接埠 53)和印表機服務 CUPS(TCP 631)。
簡單來說,「偵聽連接埠」和「連接埠已建立」是什麼意思?
沒有「已建立的連接埠」的概念,只有「已建立的連線」的概念。開放偵聽的連接埠由對該連接埠中的資料流感興趣的程式進行備份。這些連接埠通常是靜態的,HTTP 在 TCP 連接埠 80 上運行,DNS 在 UDP 連接埠 53 上運行。
當兩個網路設備都同意要相互通訊時,就會建立 TCP 連線。
答案2
該聲明是不是正確的。確實,預設情況下安裝的服務很少。如果沒有服務等待聯絡/詢問(這就是「監聽」的意思),則無需關閉該連接埠。
但預設情況下每個已安裝服務正在運行,並且沒有設定防火牆規則來阻止任何人聯繫該服務。
至於附加問題:「連接埠」就像電話分機號碼,它們指定一個透過該號碼進行通訊的程序,就像電話分機號碼指定企業內的一個人或一個部門一樣。