Get Port Status on Windows and Linux
阿新 • • 發佈:2018-12-23
偶爾會碰到myeclipse突然崩潰的情況,但tomcat服務還為關閉,再次啟動myeclipse和tomcat時,會提示Address Already Bind。稍總結了下Windows和Linux下檢視系統埠使用的一般方法。
程序與埠
- 程序與埠一一對應;除了使用IP標識一臺PC外,還需要使用埠標誌與哪一個程序進行通訊;
- 埠僅針對TCP、UDP應用。
Window查詢指定埠
主要步驟
1)檢視被佔用的埠號
netstat -aon | findstr port_number netstat -aon | findstr 5000 TCP 127.0.0.1:5000 0.0.0.0:0 LISTENING 3988 TCP 127.0.0.1:50000 0.0.0.0:0 LISTENING 316
最後一列是該埠對應的程序PID;
2)檢視該埠對應的程序
tasklist | findstr pid
tasklist | findstr 3988
python.exe 3988 Console 0 2,968 K
3)關閉程序
開啟工作管理員,選單->檢視->選擇列,勾選”PID(程序識別符號)”即可顯示PID,找到後結束該程序即可。
命令學習
netstat
在命令列下輸入: netstat -help,輸出如下:
顯示協議統計資訊和當前 TCP/IP 網路連線。 NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval] -a 顯示所有連線和監聽埠。 -b 顯示包含於建立每個連線或監聽埠的 可執行元件。在某些情況下已知可執行元件 擁有多個獨立元件,並且在這些情況下 包含於建立連線或監聽埠的元件序列 被顯示。這種情況下,可執行元件名 在底部的 [] 中,頂部是其呼叫的元件, 等等,直到 TCP/IP 部分。注意此選項 可能需要很長時間,如果沒有足夠許可權 可能失敗。 -e 顯示乙太網統計資訊。此選項可以與 -s 選項組合使用。 -n 以數字形式顯示地址和埠號。 -o 顯示與每個連線相關的所屬程序 ID。 -p proto 顯示 proto 指定的協議的連線;proto 可以是 下列協議之一: TCP、UDP、TCPv6 或 UDPv6。 如果與 -s 選項一起使用以顯示按協議統計資訊,proto 可以是下列協議之一: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。 -r 顯示路由表。 -s 顯示按協議統計資訊。預設地,顯示 IP、 IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的統計資訊; -p 選項用於指定預設情況的子集。 -v 與 -b 選項一起使用時將顯示包含於 為所有可執行元件建立連線或監聽埠的 元件。 interval 重新顯示選定統計資訊,每次顯示之間 暫停時間間隔(以秒計)。按 CTRL+C 停止重新 顯示統計資訊。如果省略,netstat 顯示當前 配置資訊(只顯示一次)
常用命令
-
netstat -a 顯示所有連線和埠號
-
netstat -o 顯示埠相關聯的程序ID
-
netstat -n 以數字形式顯示地址和埠號
-
netstat -r 顯示路由表
Linux下查詢指定埠
主要步驟
1)檢視埠
netstat -anp | grep "port_number" #netstat -anp | grep 8100 tcp 0 0 127.0.0.1:8100 0.0.0.0:* LISTEN 2388/soffice.bin
2)檢視埠對應的服務
lsof -i:"port_number"
# lsof -i:8100
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
soffice.b 2388 oa 15u IPv4 12894 0t0 TCP dev.egolife.com:xprint-server (LISTEN)
埠服務對應列表可以通過/etc/services查詢。
有些埠通過netstat查不出來,更可靠的辦法是:
nmap -sT -O localhost
# nmap -sT -O localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2013-11-01 08:49 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000036s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
rDNS record for 127.0.0.1: dev.egolife.com
Not shown: 984 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
81/tcp open hosts2-ns
111/tcp open rpcbind
631/tcp open ipp
873/tcp open rsync
2048/tcp open dls-monitor
5222/tcp open unknown
5269/tcp open unknown
7070/tcp open realserver
7443/tcp open unknown
7777/tcp open unknown
8009/tcp open ajp13
8100/tcp open unknown
8300/tcp open unknown
9090/tcp open zeus-admin
No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=5.21%D=11/1%OT=22%CT=1%CU=40338%PV=N%DS=0%DC=L%G=Y%TM=5272FA92%P=
OS:x86_64-unknown-linux-gnu)SEQ(SP=105%GCD=1%ISR=10C%TI=Z%CI=Z%II=I%TS=A)OP
OS:S(O1=M400CST11NW7%O2=M400CST11NW7%O3=M400CNNT11NW7%O4=M400CST11NW7%O5=M4
OS:00CST11NW7%O6=M400CST11)WIN(W1=8000%W2=8000%W3=8000%W4=8000%W5=8000%W6=8
OS:000)ECN(R=Y%DF=Y%T=40%W=8018%O=M400CNNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%
OS:A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=Y%DF=Y%T=40%W=8000%S=O%A=S+%F=AS%O=M400CST
OS:11NW7%RD=0%Q=)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=
OS:40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0
OS:%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=40%IPL=1
OS:64%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)
Network Distance: 0 hops
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.87 seconds
3)關閉埠
iptables禁用埠
iptables -A INPUT -p tcp --dport "port_number" -j DROP
iptables -A OUTPUT -p tcp --dport "port_number" -j DROP
關閉埠對應的程序
kill -9 pid #9為訊號量,表示立即強行刪除一個程序
pkill "service_name" #pkill會關閉所有同名服務,慎用
命令學習
使用man/info等查詢命令幫助即可
blog comments powered by Disqus