$ 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 주소를 더 쉽게 읽을 수 있습니다.