如果我运行并发现正在运行的进程与每个开放端口相关联,我将使用 netstat 以及以下标志:
netstat -tulpn
该程序列出以下输出:
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 1199/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1004/cupsd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1157/postgres
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1121/mysqld
tcp6 0 0 ::1:631 :::* LISTEN 1004/cupsd
udp 0 0 127.0.0.1:53 0.0.0.0:* 1199/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 1070/dhclient
udp 0 0 0.0.0.0:39617 0.0.0.0:* 990/avahi-daemon: r
udp 0 0 0.0.0.0:5353 0.0.0.0:* 990/avahi-daemon: r
udp6 0 0 :::57021 :::* 990/avahi-daemon: r
udp6 0 0 :::5353 :::* 990/avahi-daemon: r
因此,我可以看到 mysqld 服务器进程正在监听端口 3306,postgresql 服务器进程正在监听端口 5432,而我的 dns 服务器正在监听端口 53,等等。换句话说,当我使用我的 IP 和指定的端口创建网络连接时,我可以访问这些服务器进程。但是,有一个字段显示“外部地址”。这应该代表外部 IP 地址(另一台计算机或网络设备)。但这没有意义,因为没有其他计算机或网络设备与这些进程相关联。那么这个 0.0.0:* 是什么意思呢?
答案1
其含义正如您所说:没有其他计算机与该进程相关联。如果您连接到服务上的另一台计算机,则该计算机的 IP 地址和用于连接的端口将显示在外部地址列下。