본문 바로가기

Linux/CentOS

[CentOS 7]netstate 명령어

2023.09.24

 

업무를 하면서 netstat 명령어를 사용하는 경우가 있다. 사용하지만 명령어 출력값에 대해서 제대로 알지 못해서알아보고자 찾아보면서 정리했다.

Netsta 정의

netstat 는 네트워크 곤련 정보를 조회하고 표시하는 리눅스 및 unix 기반 운영 체제의 명령줄 도구이다.

netstat를 사용하면 현재 네트워크 연결, 라우팅 테이블, 인터페이스 통계 및 다양한 네트워크 관련 정보를 검색할 수 있다.

 

 

-bash: netstate: command not found
[user@localhost ~]$ netstat
-bash: netstat: command not found
[user@localhost ~]$ netstate
-bash: netstate: command not found
[user@localhost ~]$ netstate -a
-bash: netstate: command not found
[user@localhost ~]$ netstat -a
-bash: netstat: command not found
[user@localhost ~]$

알고보니 net-tools 패키지를 설치해야하는 것이었다.

 

일단 사용자 user는 yum 으로 패키지 설치시 root의 권한을 가지고 있기 않기 때문에 su - root 를 통해서 root로 전환한 후

[root@localhost ~]# yum install -y net-tools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.elice.io
 * extras: mirror.elice.io
 * updates: mirror.elice.io
base                                                                                             | 3.6 kB  00:00:00
extras                                                                                           | 2.9 kB  00:00:00
updates                                                                                          | 2.9 kB  00:00:00
(1/4): base/7/x86_64/group_gz                                                                    | 153 kB  00:00:00
(2/4): extras/7/x86_64/primary_db                                                                | 250 kB  00:00:00
(3/4): base/7/x86_64/primary_db                                                                  | 6.1 MB  00:00:00
(4/4): updates/7/x86_64/primary_db                                                               |  23 MB  00:00:01
Resolving Dependencies
--> Running transaction check
---> Package net-tools.x86_64 0:2.0-0.25.20131004git.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                   Arch                   Version                                    Repository            Size
========================================================================================================================
Installing:
 net-tools                 x86_64                 2.0-0.25.20131004git.el7                   base                 306 k

Transaction Summary
========================================================================================================================
Install  1 Package

Total download size: 306 k
Installed size: 917 k
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for net-tools-2.0-0.25.20131004git.el7.x86_64.rpm is not installed
net-tools-2.0-0.25.20131004git.el7.x86_64.rpm                                                    | 306 kB  00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-9.2009.1.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : net-tools-2.0-0.25.20131004git.el7.x86_64                                                            1/1
  Verifying  : net-tools-2.0-0.25.20131004git.el7.x86_64                                                            1/1

Installed:
  net-tools.x86_64 0:2.0-0.25.20131004git.el7

Complete!

으로 설치하였다.

 

그리고 나서 다시 실행했다

[root@localhost ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost.localdoma:ssh 192.168.56.101:53590    ESTABLISHED
tcp        0     36 localhost.localdoma:ssh 192.168.56.101:56171    ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    14873    /var/run/chrony/chronyd.sock
unix  3      [ ]         DGRAM                    7497     /run/systemd/notify
unix  2      [ ]         DGRAM                    7499     /run/systemd/cgroups-agent
unix  5      [ ]         DGRAM                    7513     /run/systemd/journal/socket
unix  20     [ ]         DGRAM                    7515     /dev/log
unix  2      [ ]         DGRAM                    12457    /run/systemd/shutdownd
unix  3      [ ]         STREAM     CONNECTED     14813
unix  3      [ ]         STREAM     CONNECTED     14293
unix  3      [ ]         STREAM     CONNECTED     18422
unix  2      [ ]         DGRAM                    18561
unix  3      [ ]         STREAM     CONNECTED     18404
unix  3      [ ]         STREAM     CONNECTED     18325    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     18451
unix  3      [ ]         STREAM     CONNECTED     14292
unix  3      [ ]         DGRAM                    13147
unix  2      [ ]         DGRAM                    17613
unix  3      [ ]         STREAM     CONNECTED     18455
unix  3      [ ]         STREAM     CONNECTED     17498
unix  3      [ ]         STREAM     CONNECTED     18439
unix  3      [ ]         STREAM     CONNECTED     14884    /run/dbus/system_bus_socket
unix  2      [ ]         DGRAM                    14848
unix  3      [ ]         STREAM     CONNECTED     18443
unix  3      [ ]         STREAM     CONNECTED     18427
unix  3      [ ]         STREAM     CONNECTED     14882
unix  3      [ ]         STREAM     CONNECTED     15472
unix  3      [ ]         DGRAM                    13146
unix  3      [ ]         STREAM     CONNECTED     12968    /run/systemd/journal/stdout
unix  2      [ ]         DGRAM                    19001
unix  3      [ ]         STREAM     CONNECTED     18418
unix  3      [ ]         STREAM     CONNECTED     18431
unix  2      [ ]         DGRAM                    29010
unix  3      [ ]         STREAM     CONNECTED     18403
unix  3      [ ]         STREAM     CONNECTED     18324
unix  3      [ ]         STREAM     CONNECTED     15527    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     12640    /run/systemd/journal/stdout
unix  2      [ ]         DGRAM                    15054
unix  3      [ ]         STREAM     CONNECTED     18436
unix  2      [ ]         DGRAM                    29570
unix  3      [ ]         STREAM     CONNECTED     18400
unix  2      [ ]         DGRAM                    15591
unix  3      [ ]         STREAM     CONNECTED     18440
unix  3      [ ]         STREAM     CONNECTED     18454
unix  3      [ ]         STREAM     CONNECTED     18460
unix  3      [ ]         STREAM     CONNECTED     18415
unix  3      [ ]         STREAM     CONNECTED     15526
unix  3      [ ]         STREAM     CONNECTED     14814    /run/systemd/journal/stdout
unix  3      [ ]         STREAM     CONNECTED     18428
unix  3      [ ]         STREAM     CONNECTED     14885    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     18442
unix  3      [ ]         STREAM     CONNECTED     18407
unix  3      [ ]         STREAM     CONNECTED     18390
unix  3      [ ]         STREAM     CONNECTED     17499    /run/systemd/journal/stdout
unix  3      [ ]         STREAM     CONNECTED     19197
unix  3      [ ]         STREAM     CONNECTED     18419
unix  3      [ ]         STREAM     CONNECTED     15473    /run/systemd/journal/stdout
unix  3      [ ]         STREAM     CONNECTED     15189    /run/systemd/journal/stdout
unix  3      [ ]         STREAM     CONNECTED     16232
unix  3      [ ]         STREAM     CONNECTED     14959
unix  3      [ ]         STREAM     CONNECTED     18446
unix  2      [ ]         DGRAM                    15055
unix  3      [ ]         STREAM     CONNECTED     16233    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     18437
unix  2      [ ]         DGRAM                    15495
unix  3      [ ]         STREAM     CONNECTED     14769
unix  2      [ ]         DGRAM                    19194
unix  3      [ ]         STREAM     CONNECTED     30541
unix  3      [ ]         STREAM     CONNECTED     18389
unix  3      [ ]         STREAM     CONNECTED     18396
unix  3      [ ]         STREAM     CONNECTED     17388    /run/systemd/journal/stdout
unix  3      [ ]         STREAM     CONNECTED     15411    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     12639
unix  3      [ ]         STREAM     CONNECTED     18424
unix  3      [ ]         STREAM     CONNECTED     18399
unix  3      [ ]         STREAM     CONNECTED     19198
unix  3      [ ]         STREAM     CONNECTED     18445
unix  2      [ ]         DGRAM                    19874
unix  2      [ ]         DGRAM                    15381
unix  3      [ ]         STREAM     CONNECTED     18457
unix  3      [ ]         STREAM     CONNECTED     18410
unix  3      [ ]         STREAM     CONNECTED     12967
unix  3      [ ]         STREAM     CONNECTED     18412
unix  3      [ ]         STREAM     CONNECTED     18449
unix  3      [ ]         STREAM     CONNECTED     18433
unix  2      [ ]         DGRAM                    16217
unix  3      [ ]         STREAM     CONNECTED     14960    /run/systemd/journal/stdout
unix  2      [ ]         DGRAM                    13041
unix  2      [ ]         DGRAM                    30538
unix  3      [ ]         STREAM     CONNECTED     18406
unix  3      [ ]         STREAM     CONNECTED     18393
unix  3      [ ]         STREAM     CONNECTED     18461
unix  3      [ ]         STREAM     CONNECTED     18416
unix  2      [ ]         DGRAM                    29559
unix  3      [ ]         STREAM     CONNECTED     18452
unix  3      [ ]         STREAM     CONNECTED     18421
unix  2      [ ]         DGRAM                    31029
unix  2      [ ]         DGRAM                    18353
unix  3      [ ]         STREAM     CONNECTED     30542
unix  3      [ ]         STREAM     CONNECTED     15410
unix  3      [ ]         STREAM     CONNECTED     18397
unix  3      [ ]         STREAM     CONNECTED     17387
unix  3      [ ]         STREAM     CONNECTED     18425
unix  3      [ ]         STREAM     CONNECTED     15188
unix  3      [ ]         STREAM     CONNECTED     18430
unix  3      [ ]         STREAM     CONNECTED     14872
unix  3      [ ]         STREAM     CONNECTED     18458
unix  3      [ ]         STREAM     CONNECTED     18409
unix  3      [ ]         STREAM     CONNECTED     18413
unix  3      [ ]         STREAM     CONNECTED     15139
unix  2      [ ]         DGRAM                    14283
unix  3      [ ]         STREAM     CONNECTED     18434
unix  2      [ ]         DGRAM                    30814
unix  3      [ ]         STREAM     CONNECTED     14883
unix  3      [ ]         STREAM     CONNECTED     18448
unix  3      [ ]         STREAM     CONNECTED     18392
unix  2      [ ]         DGRAM                    28791
unix  3      [ ]         STREAM     CONNECTED     15192    /run/dbus/system_bus_socket

 

너무 길어서 나눠서 출력값에서 각 열에 대한 설명을 하면 다음과 같다.

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost.localdoma:ssh 192.168.56.101:53590    ESTABLISHED
tcp        0     36 localhost.localdoma:ssh 192.168.56.101:56171    ESTABLISHED

1. 'Active Internet connections (w/o servers)': 현재 활성화된 인터넷 연결 정보를 보여준다. "w/o servers"는 서버에서 오는 연결은 표시하지 않는다는 의미한다. 이 부분은 현재 시스템에서 발생한 클라이언트 측 연결을 나타낸다.

2. ' Proto' : 프로토콜의 유형을 나타낸다. 여기서 'tcp'는 TCP 프로토콜을, 'udp'는 UDP 프로토콜을 나타낸다.

3. 'Recv-Q' 및 'Send-Q' : 데이터를 받거나 보내는 큐(queue)에 현재 대기 중인 데이터 양을 나타낸다. 일반적으로 0으로 표시되며, 데이터가 대기 중인 경우 해당 에 대기 중인 데이터의 양이 나타난다.(두번째 줄에서 송신큐가 36인 것을 알 수 있음)

3. 'Local Address' : 로컬 주소 및 포트 번호를 표시한다. 로컬주소는 현재 시스템의 IP 주소이며, 포트번호는 프로세스 바인딩(bind)한 포트를 나타낸다. 여기서 "localhost.localdoma:ssh"는 현재 시스템에서 SSH 서버에 로컬로 연결 중임을 나타낸다.

4. "Foreign Address": 원격 주소와 포트 번호를 나타낸다. 여기서 "192.168.56.101:53590" 및 "192.168.56.101:56171"은 SSH 클라이언트가 192.168.56.101 서버의 SSH 서비스에 연결한 원격 주소 및 포트 번호를 나타냅니다.

5. "State" : TCP 연결의 상태를 나타낸다. 여기서 "ESTABLISHED"는 연결이 확립되어 있음을 나타낸다. 이것은 SSH 클라이언트와 서버 간의 활성화된 연결을 의미한다.

 

 

여기서 이상한 것은 4. Foreign Address 이다. 현재 Virtualbox vm의 ip는 192.168.56.102/24 인데 어째서 netstat하면 192.168.56.101서버의 ssh 서비스 연결한 것으로 확인이 되는지 이해할 수 없었다. 

그렇다면 내 로컬PC가 192.168.56.101이라는 것인가 싶어서 로컬PC CMD 창에 ipconfig로 확인해본 결과

C:\Users\user>ipconfig

Windows IP 구성


이더넷 어댑터 이더넷:

   연결별 DNS 접미사. . . . :
   링크-로컬 IPv6 주소 . . . . :
   IPv4 주소 . . . . . . . . . : 192.168.56.101
   서브넷 마스크 . . . . . . . : 255.255.255.0
   기본 게이트웨이 . . . . . . :

 임을 알 수 있었다. 

 

 

 

뒤쪽 출력값을 마저 설명하자면

Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    14873    /var/run/chrony/chronyd.sock
unix  3      [ ]         DGRAM                    7497     /run/systemd/notify
unix  2      [ ]         DGRAM                    7499     /run/systemd/cgroups-agent

 

1. "Active UNIX domain sockets (w/o servers)": 현재 활성화된 UNIX 도메인 소켓 정보를 표시한다.

2. "Proto": UNIX 도메인 소켓의 프로토콜 유형을 나타낸다. "unix"는 UNIX 도메인 소켓을 나타낸다.

3. "Type": 소켓의 유형을 나타낸다.

4. "State": UNIX 도메인 소켓의 상태를 나타낸다.

 

 

더보기

netstat 명령어 옵션

 

[root@localhost ~]# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1028/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1359/master
tcp        0     36 192.168.56.102:22       192.168.56.101:56171    ESTABLISHED 4846/sshd: user [pr
tcp6       0      0 :::22                   :::*                    LISTEN      1028/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1359/master