리눅스 netstat 명령어 사용 예제
netstat은 시스템의 네트워크 연결 목록(tcp, udp, 소켓 연결)을 보여주는 유틸리티입니다.
1. 모든 연결을 출력하기
가장 기본적이고 간단한 명령으로 현재 연결을 모두 보여줍니다. 옵션으로 'a'를 사용합니다.
root@ubuntu:~# netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 ubuntu:domain *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:8000 *:* LISTEN tcp 0 0 localhost:mysql *:* LISTEN tcp 0 0 172.16.8.123:ssh 172.16.8.1:34656 ESTABLISHED Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 50163 /tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 195357 /run/user/1000/keyring-33Lh47/control unix 2 [ ACC ] STREAM LISTENING 40309 /var/run/mysqld/mysqld.sock unix 2 [ ACC ] STREAM LISTENING 195972 /run/user/1000/keyring-33Lh47/pkcs11 unix 2 [ ACC ] STREAM LISTENING 195978 /run/user/1000/keyring-33Lh47/ssh unix 2 [ ACC ] STREAM LISTENING 195980 /run/user/1000/keyring-33Lh47/gpg unix 2 [ ] DGRAM 379338 unix 3 [ ] STREAM CONNECTED 197047 /var/run/dbus/system_bus_socket
2. tcp 또는 udp 연결만 표시하기
tcp 연결만 출력하려면 't'를 사용합니다.
root@ubuntu:~# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 ubuntu:domain *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:8000 *:* LISTEN tcp 0 0 localhost:mysql *:* LISTEN tcp 0 0 172.16.8.123:ssh 172.16.8.1:34656 ESTABLISHED
간단하게 udp 연결 목록만 표시하려면 'u'옵션을 사용합니다.
root@ubuntu:~# netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 172.16.8.123:50038 172.16.0.1:5351 ESTABLISHED udp 0 0 ubuntu:domain *:* udp 0 0 *:51301 *:* udp 0 0 239.192.152.143:6771 *:* udp 0 0 *:ipp *:* udp 0 0 *:51413 *:* udp 0 0 *:51413 *:*
3. 목록을 빨리 출력하기위해 역 dns 질의를 끄기
기본적으로 netstat 명령어는 역 dns 질의를 통해 각 ip의 호스트 이름을 얻으려 하기 때문에 출력에 지연이 생깁니다. 만약 호스트 이름까지는 필요가 없고 그냥 ip 주소만으로 충분할 경우 'n' 옵션을 추가해 역 dns 질의 기능을 끕니다.
root@ubuntu:~# netstat -atn Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN tcp 0 0 172.16.8.123:22 172.16.8.1:34656 ESTABLISHED tcp6 0 0 :::51413 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN
이 명령은 모든 tcp 연결을 출력하는데 dns 확인 없이 빠르게 결과를 보입니다.
4. listen 상태인 연결만 표시하기
네트워크 데몬이나 서비스의 상태가 listen인 연결만 표시하려면 'l' 옵션을 추가합니다.
root@ubuntu:~# netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN tcp6 0 0 :::51413 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN
위 명령은 listen 상태인 tcp 연결만 출력함니다. tcp 이외의 모든 포트도 출력하고 싶다면 't'옵션을 지우고, udp 목록만 보고싶다면 'u'옵션을 사용하면 됩니다.
5. 프로세스 이름과 pid도 표시하기
apache나 nginx가 포트를 점유하고 있는지, 동작중인지 아닌지 확인하고 싶을 때 프로세스 이름과 pid 까지 보여준다면 더 유용할 것입니다. 프로세스 상세 정보 표시 옵션은 'p'입니다. 이 옵션은 root 권한을 가진 상태에서 실행해야 합니다. root 권한이 없을 경우 pid를 알아낼 수 없습니다.
root@ubuntu:~# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1163/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 19089/sshd tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 47073/python tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 16514/mysqld tcp6 0 0 :::22 :::* LISTEN 19089/sshd
6. 커널 라우팅 정보 출력하기
커널 라우팅 정보는 'r'로 볼 수 있고 route 명령과 동일한 결과를 출력합니다. 빠른 출력을 위해 'n' 옵션을 추가하여 호스트명 찾기를 안하게 할 수도 있습니다.
root@ubuntu:~# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 eth0 172.16.0.0 0.0.0.0 255.240.0.0 U 0 0 0 eth0
'dev > unix-like' 카테고리의 다른 글
[linux] 리눅스 wget 명령어 사용 예제 (0) | 2016.04.06 |
---|---|
[linux] /var/log 디렉토리에 있는 리눅스 로그 파일 (0) | 2016.04.05 |
[linux] 리눅스 nmap 명령어 사용 예제 (0) | 2016.04.01 |
[linux] 리눅스 ps 명령어 사용 예제 (0) | 2016.03.22 |
[linux] chmod: absolute mode와 특수권한 (0) | 2016.03.16 |
댓글