$ sudo netstat -ap | grep postg
tcp 0 0 localhost:postgresql 0.0.0.0:* LISTEN 1567/postgres
udp 0 0 localhost:57504 localhost:57504 ESTABLISHED 1567/postgres
unix 2 [ ACC ] STREAM LISTENING 27116 1567/postgres /var/run/postgresql/.s.PGSQL.5432
$ sudo netstat -ap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 23683/mysqld
tcp6 0 0 [::]:33060 [::]:* LISTEN 23683/mysqld
unix 2 [ ACC ] STREAM LISTENING 1169294 23683/mysqld /var/run/mysqld/mysqld.sock
unix 2 [ ACC ] STREAM LISTENING 1169513 23683/mysqld /var/run/mysqld/mysqlx.sock
unix 2 [ ] DGRAM 1169211 23683/mysqld
0.0.0.0:*
, [::]:mysql
, とはどういう[::]:*
意味ですか?
*
すべてのポートを意味しますか?
0.0.0.0
Tanenbaumのコンピュータネットワークによると、「このネットワーク」または「このホスト」を意味します。このネットワークにはいつ使用され、このホストにはいつ使用されますか?
ありがとうございます。
ベストアンサー1
0.0.0.0:*
一般的に表示されます離れてソケット側で受信し、リモートアドレスとポートフィールドが満たされていないことを示します。これは着信接続を受信するソケットに対して論理的です。しかし、ここには意味があります。ソケットが許可するものだけを示します。IPv4つながる。
[::]:mysql
現れる地元の接続が終了し、ソケットがこのシステムが持つことができるすべてのアドレスから着信IPv6接続(IPv4かもしれません)を受け入れ、ポート番号が名前mysql
に割り当てられていることを示します。つまり、ポート番号は3306です。/etc/services
一番左の列は、プログラムがIPv6サポートソケットを使用していることを示すだけではtcp6
ありません。tcp
[::]:*
IPv6サポートと同じです0.0.0.0:*
。つまり、一般的に離れてソケット側で受信し、ソケットはIPv6接続を処理していますが、リモートエンドポイントアドレスとポート情報がまだ入力されていないことを示します。しかし、可能IPv4も含まれます。
完全なIPv4アドレス空間は、IPv6アドレス空間のサブセットにマッピングできます。たとえば、アプリケーションがIPv6ソケットAPIを使用している場合、1.2.3.4
カーネルはIPv4アドレスをIPv6アドレスにマッピングできます。::ffff:102:304
これが、IPv6認識プログラムがTCP / UDPレベルのすべてのものに対してIPv6スタイルのアドレス構造のみを使用するように選択でき、特に要求されない限り、IPv4を別々のグループとして扱う必要がない理由です。 (私の考えでは、プログラムはソケットオプションや他のメカニズムを使用してこのマッピングを選択/解除することができると思います。一部のプログラムはIPv4とIPv6に対して別々のリスニングソケットを開きます)
ただし、多くのIPv6対応ユーティリティは、これらのIPv6マッピングIPv4アドレスをより使いやすい形式で表示し、組み込み::ffff:1.2.3.4
IPv4アドレスを読みやすくします。