내가 다음을 수행할 때 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 *.* *.*
처음 4개의 udp 라인은 NTP용입니다. 알겠습니다.
다음 줄(포트 514)은 syslogd용입니다: OK
그런데 다음줄은 무슨 뜻인가요?
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
netstat에 이 줄을 생성하는 것이 dhclient입니까? 프로세스(데몬 아님)가 어떻게 *: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 관련 연결과 달리 연결이 없기 때문에 외부 주소가 사용됩니다.
@Kusalananda 에 따르면 fstat | grep udp
리스너의 목적은 다음과 같습니다 dhclient
. 일부 시스템에서는 실제로 포트 0에서 수신하는 것이 가능합니다(IRIX는 TCP/0 리스너가 있었던 것으로 기억합니다). 이 경우 코드는 dhclient
인터페이스 호출을 약간 특이한 방식으로 수행합니다. ioctl
인터페이스 관련 작업을 수행할 수 있도록 get_ifname
코드의 해당 부분에 대한 소스 코드 트리 아래의 서브루틴을 참조하세요.dhclient.c
src/sbin