我有一台带有两个 IP 地址的接口的机器:
inet 192.168.1.15/32 scope global eth0
inet 10.10.118.45/24 brd 10.10.118.255 scope global eth0:hosts4
Run Code Online (Sandbox Code Playgroud)
例如ip -s route get 8.8.8.8
,如果我执行,则根据此,出口数据包将具有源 IP 地址10.10.118.45
:
8.8.8.8 via 10.10.118.254 dev eth0 src 10.10.118.45
cache users 1 used 1
Run Code Online (Sandbox Code Playgroud)
但是,当我例如ping
或SSH
to 时8.8.8.8
,则源 IP 为192.168.1.15
:
15:19:38.092508 IP 192.168.1.15 > 8.8.8.8: ICMP echo request, id 9135, seq 2, length 64
15:19:38.097962 IP 8.8.8.8 > 192.168.1.15: ICMP echo reply, id 9135, seq 2, length 64
Run Code Online (Sandbox Code Playgroud)
在这种情况下ip …
当我执行以下操作时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 *.* *.*
Run Code Online (Sandbox Code Playgroud)
我看到前四行 udp 是用于 NTP 的:好的
下一行(端口 514)用于 syslogd:OK
但是下一行是什么意思?
udp 0 0 *.* *.*
Run Code Online (Sandbox Code Playgroud)
任何人都可以从任何地方连接到任何端口?或者侦听我机器上任何端口的过程是什么?我怎样才能找到那个过程?
编辑
$ fstat | grep udp
_ntp ntpd 35059 6* internet dgram udp …
Run Code Online (Sandbox Code Playgroud)