当我执行以下操作时netstat
:
$ netstat -nap udp -f inet
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
udp 0 0 192.168.1.23.37177 212.83.160.142.123
udp 0 0 192.168.1.23.44025 195.154.189.15.123
udp 0 0 192.168.1.23.48639 163.172.228.190.123
udp 0 0 192.168.1.23.26792 5.135.3.88.123
udp 0 0 *.514 *.*
udp 0 0 *.* *.*
我看到前四行 udp 行用于 NTP:好的
下一行(端口 514)用于 syslogd:确定
但是下一行是什么意思呢?
udp 0 0 *.* *.*
任何人都可以从任何地方连接到任何端口?或者监听我机器上的任何端口的过程是什么?我怎样才能找到那个进程?
编辑
$ fstat | grep udp
_ntp ntpd 35059 6* internet dgram udp 192.168.1.23:5862 <-> 212.83.158.83:123
_ntp ntpd 35059 7* internet dgram udp 192.168.1.23:45616 <-> 51.255.141.154:123
_ntp ntpd 35059 8* internet dgram udp 192.168.1.23:23331 <-> 5.135.3.88:123
_ntp ntpd 35059 9* internet dgram udp 192.168.1.23:18127 <-> 129.250.35.251:123
_syslogd syslogd 58451 4* internet dgram udp *:514
_syslogd syslogd 58451 5* internet6 dgram udp *:514
_dhcp dhclient 57064 3* internet dgram udp *:0
root dhclient 42561 3* internet dgram udp *:0
是 dhclient 在 netstat 中创建该行吗?进程(不是守护进程)如何绑定到 *:0 ?
更多信息 :
$ ps aux | grep -i dhclient
root 42561 0.0 0.0 616 484 ?? Is 10:39PM 0:00.01 dhclient: em0 [priv] (dhclient)
_dhcp 57064 0.0 0.0 744 516 ?? Isp 10:39PM 0:00.00 dhclient: em0 (dhclient)
编辑2: 在 dhclient(8) 中,我读到:
dhclient 监视系统默认路由的更改,并在检测到可能的更改时重新检查是否应写入其 resolv.conf。
难道是这样吗?
答案1
它是未指定或通配符端口(或地址);从netstat(1)
未指定或“通配符”地址和端口显示为单个“*”
*.514
每次监听来自任何地方的连接的 syslog也是如此/etc/services
(请参阅listen(2)
有关详细信息),并且*.*
是侦听系统可能拥有的任何地址上的任何端口的东西。外部地址*.*
用于这些,因为没有任何连接,这与端口 123 上的 NTP 相关连接不同。
根据fstat | grep udp
@Kusalananda 的命令,听众的目的是dhclient
;在某些系统上实际上可以监听端口 0(IRIX 我记得有一个 TCP/0 监听器),尽管在这种情况下代码dhclient
进行了一个稍微不寻常的套接字调用,因此ioctl
可以执行与接口相关的操作,请参阅源代码树下的get_ifname
子例程该代码的一部分。dhclient.c
src/sbin