私が次を行うとき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