php教程 PHP开发 Linux netstat 명령에 대한 자세한 설명

Linux netstat 명령에 대한 자세한 설명

Dec 15, 2016 am 09:11 AM

소개

Netstat 명령은 네트워크 연결, 라우팅 테이블, 인터페이스 상태(인터페이스 통계), 가장 연결, 멀티캐스트 멤버십(Multicast Memberships) 등과 같은 다양한 네트워크 관련 정보를 표시하는 데 사용됩니다.

출력 정보 의미

netstat 실행 후 출력 결과는

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED
tcp 296 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED
tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED
tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED
tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE

Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 1 [ ] STREAM CONNECTED 16178 @000000dd
unix 1 [ ] STREAM CONNECTED 16176 @000000dc
unix 9 [ ] DGRAM 5292 /dev/log
unix 1 [ ] STREAM CONNECTED 16182 @000000df
로그인 후 복사

전체적으로 netstat의 출력 결과는 두 부분으로 나눌 수 있습니다.

하나는 활성 TCP 연결이라고 하는 활성 인터넷 연결입니다. 여기서 "Recv-Q" 및 "Send-Q"는 %0A의 수신 대기열과 송신 대기열을 나타냅니다. 이 숫자는 일반적으로 0이어야 합니다. 그렇지 않으면 패키지가 대기열에 쌓이고 있다는 의미입니다. 이 상황은 매우 드문 경우에만 볼 수 있습니다.

다른 하나는 액티브 유닉스 도메인 소켓이라고 불리는 액티브 유닉스 도메인 소켓입니다(네트워크 소켓과 동일하지만 로컬 통신에만 사용할 수 있으며 성능을 두 배로 높일 수 있습니다).
Proto는 연결에 사용되는 프로토콜을 표시하고, RefCnt는 이 소켓에 연결된 프로세스 번호를 나타내며, Types는 소켓 유형을 표시하고, State는 소켓의 현재 상태를 표시하며, Path는 연결된 다른 프로세스에서 사용되는 경로 이름을 나타냅니다. 소켓에.

공통 매개변수

-a(all)는 모든 옵션을 표시하고, LISTEN 관련 옵션은 기본적으로 표시하지 않습니다.
-t(tcp) tcp 관련 옵션만 표시합니다.
- u(udp) udp 관련 옵션만 표시
-n 별칭 표시를 거부하고 표시할 수 있는 모든 숫자를 숫자로 변환합니다.
-l Listen(listening)에 서비스 상태만 나열

-p 해당 링크를 구축한 프로그램 이름 표시
-r 라우팅 정보, 라우팅 테이블 표시
- e는 uid 등의 확장 정보를 표시합니다.
-s 각 프로토콜에 따른 통계
-c netstat 명령을 정기적으로 실행합니다.

팁: LISTEN 및 LISTENING 상태는 -a 또는 -l로만 볼 수 있습니다.

실용 명령 예

1. 모든 포트 나열(수신 및 비수신 포트 포함)

모든 포트 나열 netstat -a

# netstat -a | more
 Active Internet connections (servers and established)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 tcp        0      0 localhost:30037         *:*                     LISTEN
 udp        0      0 *:bootpc                *:*
 
Active UNIX domain sockets (servers and established)
 Proto RefCnt Flags       Type       State         I-Node   Path
 unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0
 unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket
로그인 후 복사

모든 tcp 포트 나열 netstat -at

# netstat -at
 Active Internet connections (servers and established)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 tcp        0      0 localhost:30037         *:*                     LISTEN
 tcp        0      0 localhost:ipp           *:*                     LISTEN
 tcp        0      0 *:smtp                  *:*                     LISTEN
 tcp6       0      0 localhost:ipp           [::]:*                  LISTEN
로그인 후 복사

모든 UDP 포트 나열 netstat -au

# netstat -au
 Active Internet connections (servers and established)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 udp        0      0 *:bootpc                *:*
 udp        0      0 *:49119                 *:*
 udp        0      0 *:mdns                  *:*
로그인 후 복사

2. 청취 상태의 모든 소켓 나열

청취 포트만 표시 netstat -l

# netstat -l
 Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 tcp        0      0 localhost:ipp           *:*                     LISTEN
 tcp6       0      0 localhost:ipp           [::]:*                  LISTEN
 udp        0      0 *:49119                 *:*
로그인 후 복사

모든 수신 TCP 포트 나열 netstat -lt

# netstat -lt
 Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 tcp        0      0 localhost:30037         *:*                     LISTEN
 tcp        0      0 *:smtp                  *:*                     LISTEN
 tcp6       0      0 localhost:ipp           [::]:*                  LISTEN
로그인 후 복사

모든 수신 UDP 포트만 나열 netstat -lu

# netstat -lu
 Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 udp        0      0 *:49119                 *:*
 udp        0      0 *:mdns                  *:*
로그인 후 복사

모든 수신 UNIX 포트만 나열 netstat -lx

# netstat -lx
 Active UNIX domain sockets (only servers)
 Proto RefCnt Flags       Type       State         I-Node   Path
 unix  2      [ ACC ]     STREAM     LISTENING     6294     private/maildrop
 unix  2      [ ACC ]     STREAM     LISTENING     6203     public/cleanup
 unix  2      [ ACC ]     STREAM     LISTENING     6302     private/ifmail
 unix  2      [ ACC ]     STREAM     LISTENING     6306     private/bsmtp
로그인 후 복사

3. 각 프로토콜에 대한 통계 표시

모든 포트에 대한 통계 표시 netstat -s

# netstat -s
 Ip:
total packets received
with invalid addresses
forwarded
incoming packets discarded
incoming packets delivered
requests sent out
 Icmp:
ICMP messages received
input ICMP message failed.
 Tcp:
active connections openings
failed connection attempts
connection resets received
 Udp:
packets received
packets to unknown port received.
 .....
로그인 후 복사

TCP 또는 UDP 포트에 대한 통계 표시 netstat -st 또는 -su

# netstat -st 
# netstat -su
로그인 후 복사

4. netstat 출력에 PID 및 프로세스 이름 표시 netstat -p

netstat -p는 다른 스위치와 함께 사용할 수 있으며 netstat 출력에 "PID /프로세스 이름"을 추가할 수 있습니다. 디버깅 중에 특정 포트에서 실행 중인 프로그램을 쉽게 찾을 수 있습니다.

# netstat -pt
 Active Internet connections (w/o servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
 tcp        1      0 ramesh-laptop.loc:47212 192.168.185.75:www        CLOSE_WAIT  2109/firefox
 tcp        0      0 ramesh-laptop.loc:52750 lax:www ESTABLISHED 2109/firefox
로그인 후 복사

5. netstat 출력에 호스트, 포트, 사용자 이름(호스트, 포트 또는 사용자)을 표시하지 않습니다.

호스트, 포트, 사용자 이름을 표시하지 않으려는 경우 , netstat -n을 사용하십시오. 해당 이름 대신 숫자가 사용됩니다.

도 비교 쿼리를 수행할 필요가 없기 때문에 출력 속도를 높일 수 있습니다.

# netstat -an
로그인 후 복사

이 세 가지 이름 중 하나만 표시하지 않으려면 다음 명령을 사용하세요

# netsat -a --numeric-ports
# netsat -a --numeric-hosts
# netsat -a --numeric-users
로그인 후 복사

6. 持续输出 netstat 信息

netstat 将每隔一秒输出网络信息。

# netstat -c
 Active Internet connections (w/o servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State
 tcp        0      0 ramesh-laptop.loc:36130 101-101-181-225.ama:www ESTABLISHED
 tcp        1      1 ramesh-laptop.loc:52564 101.11.169.230:www      CLOSING
 tcp        0      0 ramesh-laptop.loc:43758 server-101-101-43-2:www ESTABLISHED
 tcp        1      1 ramesh-laptop.loc:42367 101.101.34.101:www      CLOSING
 ^C
로그인 후 복사

7. 显示系统不支持的地址族 (Address Families)

netstat --verbose
로그인 후 복사

在输出的末尾,会有如下的信息

netstat: no support for `AF IPX' on this system.
netstat: no support for `AF AX25' on this system.
netstat: no support for `AF X25' on this system.
netstat: no support for `AF NETROM' on this system.
로그인 후 복사

8. 显示核心路由信息 netstat -r

# netstat -r
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
 192.168.1.0     *               255.255.255.0   U         0 0          0 eth2
 link-local      *               255.255.0.0     U         0 0          0 eth2
 default         192.168.1.1     0.0.0.0         UG        0 0          0 eth2
로그인 후 복사

注意: 使用 netstat -rn 显示数字格式,不查询主机名称。

9. 找出程序运行的端口

并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

# netstat -ap | grep ssh
 tcp        1      0 dev-db:ssh           101.174.100.22:39213        CLOSE_WAIT  -
 tcp        1      0 dev-db:ssh           101.174.100.22:57643        CLOSE_WAIT  -
로그인 후 복사

找出运行在指定端口的进程

# netstat -an | grep ':80'
로그인 후 복사

10. 显示网络接口列表

# netstat -i
 Kernel Interface table
 Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
 eth0       1500 0         0      0      0 0             0      0      0      0 BMU
 eth2       1500 0     26196      0      0 0         26883      6      0      0 BMRU
 lo        16436 0         4      0      0 0             4      0      0      0 LRU
로그인 후 복사

显示详细信息,像是 ifconfig 使用 netstat -ie:

# netstat -ie
 Kernel Interface table
 eth0      Link encap:Ethernet  HWaddr 00:10:40:11:11:11
 UP BROADCAST MULTICAST  MTU:1500  Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 Memory:f6ae0000-f6b00000
로그인 후 복사

11. IP和TCP分析

查看连接某服务端口最多的的IP地址

wss8848@ubuntu:~$ netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
221.136.168.36
154.74.45.242
78.173.31.236
62.183.207.98
192.168.1.14
182.48.111.215
124.193.219.34
119.145.41.2
114.255.41.30
75.102.11.99
로그인 후 복사

TCP各种状态列表

wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'
established)
Foreign
LISTEN
TIME_WAIT
ESTABLISHED
TIME_WAIT
SYN_SENT
로그인 후 복사

先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。

wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c
ESTABLISHED
FIN_WAIT1
Foreign
LAST_ACK
LISTEN
SYN_SENT
TIME_WAIT
established)
로그인 후 복사

最后的命令如下:

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
로그인 후 복사


分析access.log获得访问前10位的ip地址

awk '{print $1}' access.log |sort|uniq -c|sort -nr|head -10
로그인 후 복사


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)