所有端口都关闭,直到用户手动打开它们?这是真的吗?

n00*_*00b 2 firewall documentation networking

我是 Linux 和 Ubuntu 的新手。我用谷歌搜索并阅读了一些文章,指出所有端口都已关闭,直到用户手动打开它们。这是正确的吗?

简单地说,“侦听端口”和“建立端口”是什么意思?

Lek*_*eyn 5

我用谷歌搜索并阅读了一些文章,指出所有端口都已关闭,直到用户手动打开它们。这是正确的吗?

取决于您所看到的“用户”。用户通常不会说“嘿,请打开端口 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: 
Run Code Online (Sandbox Code Playgroud)

在这里,您可以看到 avahi-daemon 在 UDP 端口 59296、5353 和 53537 上可以通过网络访问。后两个是 avahi-daemon 的标准,第一个是随机地址,可能使用其他两个端口进行通信。该守护进程用于“网络发现”,并允许您执行诸如“文件共享”之类的操作。还有一个 DHCP 客户端在端口 UDP 68 上进行全局侦听。

某些服务仅在本地侦听,无法通过网络访问。它们是 DNS 缓存服务 dnsmasq(UDP 端口 53)和打印机服务 CUPS(TCP 631)。

简单地说,“侦听端口”和“建立端口”是什么意思?

没有“已建立的端口”的概念,只有“已建立的连接”。为侦听而打开的端口由对该端口中的数据流感兴趣的程序备份。这些端口通常是静态的,HTTP 在 TCP 端口 80 上运行,DNS 在 UDP 端口 53 上运行。这些标准允许其他网络设备快速找到您的服务。

当两个网络设备都同意它们想要互相交谈时,就建立了 TCP 连接。