서버 포트가 점용되면 어떡해, 이거 보면 돼.

3076 단어 백엔드
코드를 흥겹게 쓰고 서버에서 사이트의 모습을 한눈에 보려고 할 때 갑자기 컴퓨터가 서버가 이상하게 작동한다고 알려준다.응?그럼 부을까요?내 슬픈 과정을 보자.
1. 문제의 유래:
정적 웹 페이지를 보기 위해 http-server를 로컬에서 시작하려고 할 때 서비스가 시작되지 않는 것을 발견했습니다.원인을 확인한 결과
1
Error: listen EADDRINUSE 0.0.0.0:8080

 
2. 문제 분석:
오류를 보고 우리는 쉽게 판단할 수 있었다. 분명히 8080 포트가 점용되었다.
해결 방향은 두 가지가 있다. 첫째, http-server 서버 포트 번호를 수정한다.문서 보기 명령줄 직접 입력:
1
http-server -p 6666

 
네, http-server가 시작할 수 없는 문제가 해결되었습니다. 하지만 저는 그만두지 않겠습니까?
둘째, 8080 포트를 누가 점용했는지 보고 싶습니다.
그러면 질문이 왔습니다. 맥에서 포트가 점용되는 상황을 어떻게 보십니까?모두가 알다시피 맥os는 유닉스 코어의 데스크톱 버전 운영체제이고 리눅스는 유닉스 운영체제이다.
bingo!문제가 전가되었습니다. linux 포트 번호 상황을 어떻게 보십니까?
3. 포트 번호 보기
이것을 찾았습니다. 넷stat 명령을 사용할 수 있습니다.netstat 명령은 네트워크 연결, 루트 테이블, 인터페이스 상태, 위장 연결, 네트워크 체인 정보와 그룹 방송 구성원 그룹 등 정보를 표시할 수 있다.명령 형식: netstat [옵션] 일반 매개변수:
1
2
3
4
5
6
7
8
netstat [-AaLlnW] [-f address_family | -p protocol]
netstat [-gilns] [-f address_family]
netstat -i | -I interface [-w wait] [-abdgRt]
netstat -s [-s] [-f address_family | -p protocol] [-w wait]
netstat -i | -I interface -s [-f address_family | -p protocol]
netstat -m [-m]
netstat -r [-Aaln] [-f address_family]
netstat -rs [-s]

 
다 무슨 소리야, 안 하면 안 돼, 내가 하나씩 해볼게.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 
netstat 

#  tcp   
netstat -at

# 
netstat -i

# 
netstat -s

# 
netstat -m

# 
netstat -r

# 
netstat -rs
routing:
       	0 bad routing redirects
       	0 dynamically created routes
       	0 new gateways due to redirects
       	4294944612 destinations found unreachable
       	0 uses of a wildcard route
       	8 routes not in table but not freed

 
4. 포트 사용량 보기:
더 나아가 lsof 명령을 사용하여 이 포트를 차지하는 프로세스 상황을 표시할 수 있습니다.
1
2
# :lsof -i : 
lsof -i:8080

 
콘솔에서 다음 정보를 내보냅니다.
1
2
3
4
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
nginx     634 Jartto    6u  IPv4 0x8800c1295e443e43      0t0  TCP *:http-alt (LISTEN)
nginx     635 Jartto    6u  IPv4 0x8800c1295e443e43      0t0  TCP *:http-alt (LISTEN)
WeChat  93768 Jartto  119u  IPv6 0x8800c12977474f33      0t0  TCP 192.168.1.*

 
5. 어떻게 프로세스를 죽입니까?
프로세스 보기, 명령줄 입력:
1
ps -ef | more

 
죽여야 할 프로세스를 찾아서 실행:
1
kill -9 pid

 
프로세스 이름에 따라 다음과 같이 프로세스를 죽일 수도 있습니다.
1
kill -9 name

 
6. 데이터가 너무 많아요?
넷stat의 각종 명령을 시도하는 과정에서 컨트롤러는 화면이 꽉 찼다.더 좋은 표현 방식이나 필터 옵션이 있습니까?awk와grep를 시도해 보세요.
여기는 토론을 전개하지 않겠습니다. 후속적으로 저는 관련 문장을 보충할 것입니다. 여기는 먼저 구덩이를 차지하세요!
7. 참조 문서
1.netstat 상세 설명 2.netstat 명령
 
 
 
다음으로 전송:http://jartto.wang/2016/09/28/check-the-system-port-of-mac/

좋은 웹페이지 즐겨찾기