- 데이브 맥케이
@TheGurkha
- February17,2020,8:00EDT
Linuxnetstat
명령은 보물에 대한 정보를 귀하의 네트워크 연결 포트를 사용하며 프로세스가 그들을 사용하고 있습니다. 그것을 사용하는 방법을 배우십시오.
포트,프로세스 및 프로토콜
네트워크 소켓 수 있는 연결을 기다리는 연결합니다., 연결은 Tcp(Transport Control Protocol)또는 사용자 데이터그램 프로토콜 UDP 와 같은 네트워킹 프로토콜을 사용합니다. 그들은 인터넷 프로토콜 주소와 네트워크 포트를 사용하여 연결을 설정합니다.
단어 소켓 수 있습을 연상의 이미지를 실제에 대한 연결 지점을 이끌어 또는 케이블이지만,이러한 맥락에서 소켓이 소프트웨어를 구축을 처리하는 데 사용되는 하나의 네트워크 데이터를 연결합니다.,
소켓는 두 가지 주요국:그들은 하나에 연결하고 촉진하는 지속적인 네트워크 커뮤니케이션,또는 그들이 기다리고 있 들어오는 연결에 연결하는 그들. 다국과 같은 상태우 소켓을 통해 미드웨이 연결을 설정하는 원격 장치에서만 일시적인국,따로 생각할 수 있는 소켓의 하나로 연결되거나 기다리고 있(라 듣고).
청취 소켓은 서버라고하며 청취 소켓과의 연결을 요청하는 소켓을 클라이언트라고합니다., 이러한 이름은 하드웨어 또는 컴퓨터 역할과는 아무런 관련이 없습니다. 그들은 단순히 연결의 각 끝에서 각 소켓의 역할을 정의합니다.
netstat
명령을 발견 할 수있는 소켓이 연결되어 있는 소켓을 듣고 있다. 의미,어떤 포트가 사용 중이고 어떤 프로세스가 사용 중인지 알려줍니다. 네트워크 인터페이스 및 멀티 캐스트 연결에 대한 라우팅 테이블 및 통계를 표시 할 수 있습니다.
netstat
의 기능은 ip 및 ss 와 같은 다른 Linux 유틸리티에서 시간이 지남에 따라 복제되었습니다., 그것은 여전히 가치를 알고 이 할아버지의 모든 네트워크 분석 명령이기 때문에,그것은에서 사용 가능한 모든 리눅스와 유닉스는 운영 체제,그리고 심지어는 윈도우와 맥.다음은 예제 명령으로 완성 된 사용 방법입니다.
나열 모든 소켓
-a
(모든)옵션을netstat
쇼 모든 연결을 기다리는 소켓을 지원합니다. 이 명령은 긴 목록을 생성 할 책임이 있으므로less
로 파이프합니다.,
netstat -a | less
목록에는 TCP(IP),TCP6(IPv6)및 UDP 소켓이 포함됩니다.터미널 창에서 랩 어라운드를 사용하면 어떤 일이 벌어지고 있는지 알기가 조금 어려워집니다. 여기에 몇 가지 섹션에서는 목록이다.
“인터넷”섹션에 나와 연결된 외부 연결을 지역 소켓을 대기 원격 연결 요청합니다. 즉,외부 장치에 설정된(또는있을)네트워크 연결을 나열합니다.,
“UNIX domain”섹션에는 연결되고 청취되는 내부 연결이 나열됩니다. 즉,운영 체제의 다른 응용 프로그램,프로세스 및 요소간에 컴퓨터 내에 설정된 연결을 나열합니다.
“활성 인터넷”열은 다음과 같습니다.
- Proto:이 소켓에서 사용하는 프로토콜(예:TCP 또는 UDP).
- Recv-Q:수신 대기열입니다. 이들은 수신되고 버퍼링 된 수신 바이트이며,이 연결을 사용하는 로컬 프로세스가 읽고 소비하기를 기다리고 있습니다.,
- Send-Q:send 큐입니다. 그러면 보내기 대기열에서 보낼 준비가 된 바이트가 표시됩니다.
- 로컬 주소:연결의 로컬 끝의 주소 세부 정보입니다. 기본값은
netstat
을 보여 로컬 호스트 이름,주소 및 서비스의 이름에 대한 포트입니다. - 외국 주소:연결의 원격 끝의 주소와 포트 번호입니다.
- 상태:로컬 소켓의 상태입니다. UDP 소켓의 경우 일반적으로 비어 있습니다. 아래의 상태 표를 참조하십시오.,
TCP 연결의 경우 상태 값은 다음 중 하나 일 수 있습니다.
- LISTEN:Server-side 전용. 소켓이 연결 요청을 기다리고 있습니다.
- SYN-SENTED:클라이언트 측에만 해당됩니다. 이 소켓은 연결 요청을했으며 허용되는지 기다리고 있습니다.
- SYN-RECEIVED:서버 측에만 해당됩니다. 이 소켓은 연결 요청을 수락 한 후 연결 확인을 기다리고 있습니다.
- 설립:서버 및 클라이언트. 서버와 클라이언트간에 작업 연결이 설정되어이 둘 사이에서 데이터를 전송할 수 있습니다.,
- FIN-WAIT-1:서버 및 클라이언트. 이 소켓 연결에 대한 종료 요청을 원격에서 소켓 또는 승인의 연결을 종료 요청 이전에 보내에서 이 소켓에.
- FIN-WAIT-2:서버 및 클라이언트. 이 소켓은 원격 소켓에서 연결 종료 요청을 기다리고 있습니다.
- 닫기 대기:서버 및 클라이언트. 이 소켓은 로컬 사용자의 연결 종료 요청을 기다리고 있습니다.
- 닫기:서버 및 클라이언트., 이 소켓은 원격 소켓에서 연결 종료 요청 확인을 기다리고 있습니다.
- LAST-ACK:서버 및 클라이언트. 이 소켓은 원격 소켓으로 보낸 연결 종료 요청에 대한 확인을 기다리고 있습니다.
- 시간 대기:서버 및 클라이언트. 이 소켓은 원격 소켓에 확인을 보내 원격 소켓의 종료 요청을 받았음을 알립니다. 이제는 인정이 접수되었는지 확인하기 위해 기다리고 있습니다.
- 폐쇄:연결이 없으므로 소켓이 종료되었습니다.,
“Unix 도메인”열은 다음과 같습니다.
- Proto:이 소켓에서 사용되는 프로토콜입니다. 그것은”유닉스.”
- RefCnt:참조 수입니다. 이 소켓에 연결된 연결된 프로세스의 수입니다.
- 플랙:이것은 일반적으로 설정하는
ACC
를 나타내는SO_ACCEPTON
의미하는 소켓을 기다리고 있는 연결에 대한 요청을 합니다.SO_WAITDATA
는W
로 표시되며 읽기 대기중인 데이터가 있음을 의미합니다.,SO_NOSPACE
,다음과 같으로N
,없다는 것을 의미한 공간에 데이터를 쓰는 소켓(즉,송신 버퍼가 가득). - 유형:소켓 유형. 아래의 유형 표를 참조하십시오.
- 상태:소켓의 상태입니다. 아래 상태 표를 참조하십시오.
- I-Node:이 소켓과 관련된 파일 시스템 inode 입니다.
- 경로:소켓에 대한 파일 시스템 경로입니다.
유닉스 도메인 소켓 유형 중 하나가 될 수 있습니 다음과 같다:
- DGRAM:소켓에서 사용되는 데이터그램 모드를 사용하여 메시지의 고정 길이입니다., 데이터 그램은 신뢰할 수 있고 시퀀싱되거나 중복되지 않도록 보장되지 않습니다.
- 스트림:이 소켓은 스트림 소켓입니다. 이것은 일반적인”정상적인”유형의 소켓 연결입니다. 이러한 소켓은 패킷의 안정적인 순서(순서)전달을 제공하도록 설계되었습니다.
- RAW:이 소켓은 원시 소켓으로 사용되고 있습니다. 원시 소켓은 OSI 모델의 네트워크 수준에서 작동하며 전송 수준에서 TCP 및 UDP 헤더를 참조하지 않습니다.
- RDM:이 소켓은 안정적으로 전달 된 메시지 연결의 한쪽 끝에 있습니다.,
- SEQPACKET:이 소켓이 운영으로 순차적으로 패킷 소켓는 또 다른 방법을 제공하는 믿을 수 있고,서열,그리고 비중복 패킷을 배달합니다.
- 패킷:원시 인터페이스 액세스 소켓. 패킷 소켓을 사용하여 수신 또는 보고서를 생성한 패킷에서 장치 드라이버(즉,데이터 링크 계층)수준의 OSI model.
Unix 도메인 소켓 상태는 다음 중 하나 일 수 있습니다.
- FREE:이 소켓은 할당되지 않았습니다.
- 청취:이 소켓은 들어오는 연결 요청을 수신하고 있습니다.,
- 연결:이 소켓은 연결하는 과정에 있습니다.
- 연결됨:연결이 설정되었으며 소켓은 데이터를 수신하고 전송할 수 있습니다.
- 연결 끊기:연결이 종료되는 과정에 있습니다.
와우,그건 많은 정보 야! 의 많은netstat
옵션 결과를 구체화 또는 다른 하나의 방법으로,하지만 그들은 변화하지 않은 콘텐츠에 너무 많다. 한번 보자.,
목 소켓 유형
netstat -a
명령할 수 있는보다 더 많은 정보를 제공해야 합니다. 당신이 원하는 또는 필요시 TCP 소켓을 사용할 수 있습니다-t
(TCP)옵션을 제한 표시를 표시 TCP 소켓이 있습니다.
netstat -at | less
디스플레이 아웃이 크게 감소합니다. 나열된 몇 개의 소켓은 모두 TCP 소켓입니다.,
-u
(UDP)와-x
(UNIX)옵션이 동작하에 유사한 방법으로 제한하는 결과를 유형의 소켓을 지정합니다. 사용중인-u(UDP)옵션은 다음과 같습니다.
netstat -au | less
UDP 소켓 만 나열됩니다.
목 소켓으로 상태
를 참조 소켓에 있는 듣기 또는 기다리고 있는 상태,사용하는-l
(listening)옵션을 선택합니다.
netstat -l | less
소켓 나와 있는 그들은 듣는 상태입니다.,
이것은-t(tcp,-u(UDP)및-x(UNIX)옵션과 결합하여 관심있는 소켓에 추가로 집에 들어갈 수 있습니다. 청취 TCP 소켓을 살펴 보겠습니다.
netstat -lt | less
이제 TCP 수신 소켓 만 표시됩니다.
네트워크를 통해 프로토콜
netstat -st | less
컬렉션에 대한 통계의 TCP 연결은 표시에서less
.
프로세스 이름 및 Pid 표시
해당 프로세스의 이름과 함께 소켓을 사용하여 프로세스의 프로세스 ID(PID)를 보는 것이 유용 할 수 있습니다., -p
(프로그램)옵션은 바로 그 작업을 수행합니다. 청취 상태에있는 TCP 소켓을 사용하여 프로세스에 대한 Pid 및 프로세스 이름이 무엇인지 살펴 보겠습니다. 우리가 사용하는sudo
를 확인 우리가 받은 모든 의 사용할 수 있는 정보를 포함하여 모든 정보는 일반적으로 필요한 루트 권한이 있습니다.
sudo netstat -p -at
여기에는에서 출력 형식의 테이블:
우리는 추가 열에”라는 PID/프로그램으로 이름입니다.”이 열에는 각 소켓을 사용하는 프로세스의 PID 와 이름이 나열됩니다.,
나열 숫자의 주소
또 다른 단계이 우리가 할 수 있는 일부를 제거하는 모호함을 표시하는 로컬 및 원격 주소에 IP 주소 대신에 자신의 해결 도메인 및 호스트. 우리가 사용하는 경우에는-n
(숫자)옵션을 IPv4 주소는 다음과 같 점수 형식:
sudo netstat -an | less
IP 주소는 다음과 같으로 숫자 값이 있습니다. IP 주소에서”:
“콜론으로 구분 된 포트 번호도 표시됩니다.
127.0.0 의 IP 주소입니다.,1 은 소켓이 로컬 컴퓨터의 루프백 주소에 바인딩되어 있음을 보여줍니다. 0.0.0.0 의 IP 주소는 로컬 주소의”기본 경로”를 의미하고 외국 주소의”모든 IP 주소”를 의미한다고 생각할 수 있습니다. “::
“로 표시된 IPv6 주소도 모두 0 주소입니다.
나열된 포트는 일반적인 목적이 무엇인지 쉽게 확인할 수 있습니다.
- 22:이것은 Ssh(Secure Shell)청취 포트입니다.
- 25:이 간단한 메일 전송 프로토콜(SMTP)수신 포트.
- 53:DNS(Domain Name System)청취 포트입니다.,
- 68:DHCP(Dynamic Host Configuration Protocol)청취 포트입니다.
- 631:이것은 일반적인 UNIX 인쇄 시스템(CUPS)청취 포트입니다.
관련:127.0.0.1 과 0.0.0.0 의 차이점은 무엇입니까?
라우팅 테이블 표시
-r
(route)옵션은 커널 라우팅 테이블을 표시합니다.,
sudo netstat -r
여기에는 출력에서 테이블:
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default Vigor.router 0.0.0.0 UG 0 0 0 enp0s3 link-local 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3 192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
고,여기에 무슨 열을 의미한다:
- 목적지:대상 네트워크 또는 대상 장치를 호스트(는 경우에는 대상은 네트워크)에 있습니다.
- 게이트웨이:게이트웨이 주소입니다. 게이트웨이 주소가 설정되지 않은 경우 별표”
*
“가 여기에 나타납니다. - Genmask:경로의 서브넷 마스크입니다.
- 플래그:아래의 플래그 테이블을 참조하십시오.,
- MSS:기본 최대 세그먼트를 위한 크기 TCP 연결이있다—이것은 최대한 양의 데이터를 받을 수 있는 하나의 TCP 세그먼트입니다.
- 창:기본 창 크기를 위한 TCP 통한 연결 이 경로의 개수를 나타내는 패킷을 전송할 수 있는 최고 받기 전에 수신 버퍼가 가득 찼습니다. 실제로,패킷은 수신 애플리케이션에 의해 소비된다.
- irtt:초기 왕복 시간. 이 값은 커널에서 참조하여 응답 속도가 느린 원격 연결에 대해 tcp 매개 변수를 동적으로 조정합니다.,
- Iface:이 경로를 통해 전송 된 패킷이 전송되는 네트워크 인터페이스입니다.
플래그 값은 다음 중 하나 일 수 있습니다.
- U:경로가 최대입니다.
- H:Target 은 호스트이며이 경로에서 가능한 유일한 목적지입니다.
- G:게이트웨이를 사용합니다.
- R:동적 라우팅을 위해 경로를 다시 설치하십시오.
- D:라우팅 데몬에 의해 동적으로 설치됩니다.
- M:icmp(Internet Control Message Protocol)패킷을 수신했을 때 라우팅 데몬에 의해 수정되었습니다.,
- A:
addrconf
,자동 DNS 및 DHCP 설정 파일 생성기에 의해 설치됩니다. - C:캐시 항목.리>!:경로를 거부합니다.
을 찾아 사용되는 포트는 프로세스에 의해
경우 우리는 파이프의 출력을netstat
통해grep
,우리가 할 수 있습 검색에 대한 프로세스에 의해 이를 식별하는 포트에서 사용하고 있습니다. 우리가 사용하는-a
(모든),-n
(숫자)와-p
(프로그램)옵션을 사용 이전에,그리고”에 대한 검색 sshd.,”
sudo netstat -anp | grep "sshd"
grep
발견 대상에는 문자열,그리고 우리는sshd
데몬을 사용하여 포트 22.
물론,우리는 또한 이것을 역으로 할 수있다. “:22″를 검색하면 해당 포트를 사용하는 프로세스(있는 경우)를 찾을 수 있습니다.
sudo netstat -anp | grep ":22"
이번grep
를 찾”:22″대상에는 문자열,그리고 우리는 프로세스를 사용하여 이 포트는sshd
데몬 프로세스 ID751.,
목 네트워크 인터페이스
-i
(인터페이스)옵션이 표시됩니다 테이블 네트워크 인터페이스는netstat
을 발견할 수 있습니다.
sudo netstat -i
여기에 출력에 더 읽 패션
Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg enp0s3 1500 4520671 0 0 0 4779773 0 0 0 BMRU lo 65536 30175 0 0 0 30175 0 0 0 LRU
이것은 어떤 열을 의미한다:
- Iface:이름이의 인터페이스입니다.
enp0s3
인터페이스는 네트워크 인터페이스 외부 세계로,그리고lo
인터페이스는 루프백 인터페이스입니다., 루프백 인터페이스 프로세스를 서로 교통을 이내에 사용하는 컴퓨터 네트워킹 프로토콜,는 경우에도 컴퓨터가 네트워크에 연결되어 있지 않습니다. - MTU:최대 전송 단위(MTU). 이것은 보낼 수있는 가장 큰”패킷”입니다. 라우팅 및 프로토콜 플래그 및 기타 메타 데이터와 실제로 전송되는 데이터가 포함 된 헤더로 구성됩니다.
- RX-OK:오류 없이 수신된 패킷 수입니다.
- RX-ERR:오류가 있는 수신된 패킷 수입니다. 우리는 이것이 가능한 한 낮아지기를 원합니다.,
- RX-DRP:삭제 된 패킷 수(즉,손실). 우리는 또한 이것이 가능한 한 낮아지기를 원합니다.
- RX-OVR:수신시 오버플로로 인해 손실 된 패킷 수입니다. 즉 일반적으로 수신 버퍼가 가득할 수 있었을 받아들이지 않는 어떤 데이터를 더 많이 있지만,더 많은 데이터를 수신했을 삭제하도록 합니다. 이 수치가 낮을수록 좋으며 0 은 완벽합니다.
- TX-OK:전송 된 패킷 수,오류 없음.
- RX-ERR:전송된 패킷 수(오류 포함)입니다. 우리는 이것이 0 이되기를 원합니다.,
- RX-DRP:전송할 때 삭제된 패킷 수입니다. 이상적으로 이것은 0 이어야합니다.
- RX-OVR:전송할 때 오버플로로 인해 손실 된 패킷 수입니다. 이것은 일반적으로 의미를 보낼 버퍼가 가득할 수 있었을 받아들이지 않는 어떤 데이터를 더 많이 있지만,더 많은 데이터가 준비되어 있었을 전송되고 파기됩니다.
- Flg:플래그. 아래의 플래그 표를 참조하십시오.
플래그를 나타내는 다음과 같다:
목 멀티캐스트 그룹 구성원
단순히 넣어,멀티캐스트 전송할 수 있는 패킷을 전송,한 번만의 수에 관계없이 받는 사람입니다., 예를 들어 비디오 스트리밍과 같은 서비스의 경우 발신자의 관점에서 효율성을 엄청난 양으로 증가시킵니다.
-g
(그룹)옵션을netstat
목 멀티캐스트 그룹 구성원의 소켓에 각각의 인터페이스입니다.
sudo netstat -g
열이 매우 간단하다:
- 인터페이스:이름이의 인터페이스는 소켓을 전달.
- RefCnt:소켓에 연결된 프로세스 수 인 참조 수입니다.,
- 그룹:멀티캐스트 그룹의 이름 또는 식별자입니다.
의 블록에 새로운 아이
경로,ip,ifconfig 및 ss 명령을 제공할 수 있는 많은 무엇netstat
보여줄 수 있다. 그것들은 모두 훌륭한 명령이며 체크 아웃 할 가치가 있습니다.
우리에 초점을 맞추netstat
기 때문에 그것은 보편적으로 사용할 수 있에 관계없이,어떤 유닉스는 운영 체제 당신이 작업에도 애매한 것들입니다.,
데이브 맥케이 첫 번째 사용되는 컴퓨터 구멍을 뚫은 종이 테이프로 유행이었다,그리고 그는 프로그래밍습니다. IT 업계에서 30 년이 넘은 후 그는 현재 전임 기술 기자입니다. 자신의 경력을하는 동안,그는 프리랜서로 일했 프로그래머,관리자의 국제적 소프트웨어 개발 팀,그것은 서비스 프로젝트 관리자를 가장 최근에,데이터 보호 책임자입니다. 데이브는 리눅스 전도자이자 오픈 소스 옹호자이다.전체 바이오 읽기”