国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux 查看端口占用情況

這篇具有很好參考價(jià)值的文章主要介紹了Linux 查看端口占用情況。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Linux 查看端口占用情況可以使用 lsof 、ss和 netstat 命令。

一、lsof

lsof命令詳解

lsof(list open files)是一個(gè)列出當(dāng)前系統(tǒng)打開文件的工具。lsof 查看端口占用語(yǔ)法格式:
lsof -i:端口號(hào)

如查看服務(wù)器 2379端口的占用情況:

#注意,lsof默認(rèn)是沒有安裝的,需要自行安裝
yum install lsof -y
[root@k8s-m1 ~]#  lsof -i:2379
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
etcd       5680 root    7u  IPv4    42209      0t0  TCP k8s-m1:2379 (LISTEN)

可以看到 2379 端口已經(jīng)被輕 etcd 服務(wù)占用。

lsof -i 需要 root 用戶的權(quán)限來執(zhí)行,如下圖:

[root@k8s-m1 ~]# lsof -i|more
COMMAND     PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
rpcbind    5403    rpc    6u  IPv4    41399      0t0  UDP *:sunrpc 
rpcbind    5403    rpc    7u  IPv4    42127      0t0  UDP *:909 
rpcbind    5403    rpc    8u  IPv4    42128      0t0  TCP *:sunrpc (LISTEN)
rpcbind    5403    rpc    9u  IPv6    42129      0t0  UDP *:sunrpc 
rpcbind    5403    rpc   10u  IPv6    42130      0t0  UDP *:909 
rpcbind    5403    rpc   11u  IPv6    42131      0t0  TCP *:sunrpc (LISTEN)
chronyd    5426 chrony    5u  IPv4    41466      0t0  UDP localhost:323 
chronyd    5426 chrony    6u  IPv6    41467      0t0  UDP localhost:323 
sshd       5670   root    3u  IPv4    48132      0t0  TCP *:ssh (LISTEN)
sshd       5670   root    4u  IPv6    48134      0t0  TCP *:ssh (LISTEN)
etcd       5680   root    5u  IPv4    42205      0t0  TCP k8s-m1:2380 (LISTEN)
etcd       5680   root    6u  IPv4    42208      0t0  TCP localhost:2379 (LISTEN)
etcd       5680   root    7u  IPv4    42209      0t0  TCP k8s-m1:2379 (LISTEN)
etcd       5680   root    8u  IPv4    42210      0t0  TCP k8s-m1:2380->k8s-m2:48008 (ESTABLISHED)
etcd       5680   root    9u  IPv4    45366      0t0  TCP k8s-m1:2380->k8s-m3:41006 (ESTABLISHED)
etcd       5680   root   10u  IPv4    45367      0t0  TCP k8s-m1:2380->k8s-m3:41016 (ESTABLISHED)
etcd       5680   root   11u  IPv4    42211      0t0  TCP k8s-m1:2380->k8s-m2:48010 (ESTABLISHED)
etcd       5680   root   12u  IPv4    43860      0t0  TCP k8s-m1:2379->k8s-m3:57352 (ESTABLISHED)
etcd       5680   root   14u  IPv4    61002      0t0  TCP k8s-m1:2379->k8s-m2:48626 (ESTABLISHED)
etcd       5680   root   15u  IPv4  7534239      0t0  TCP k8s-m1:2379->k8s-m2:41368 (ESTABLISHED)
etcd       5680   root   16u  IPv4 13158470      0t0  TCP k8s-m1:2379->k8s-m1:38664 (ESTABLISHED)
etcd       5680   root   18u  IPv4 13137657      0t0  TCP k8s-m1:2379->k8s-m1:38670 (ESTABLISHED)

參數(shù)說明:
COMMAND:進(jìn)程的名稱
PID: 進(jìn)程標(biāo)識(shí)符
USER:進(jìn)程所有者
FD:文件描述符,應(yīng)用程序通過文件描述符識(shí)別該文件。如cwd、txt等
TYPE:文件類型,如IPv4、IPv6、DIR、REG等
DEVICE:指定磁盤的名稱
SIZE:文件的大小
NODE:索引節(jié)點(diǎn)(文件在磁盤上的標(biāo)識(shí))
NAME:打開文件的確切名稱

其中:FD不容易理解,特別說明一下:
 ?。?)cwd:表示 current work dirctory,即:應(yīng)用程序的當(dāng)前工作目錄,這是該應(yīng)用程序啟動(dòng)的目錄,除非它本身對(duì)這個(gè)目錄進(jìn)行更改
 ?。?)txt:該類型的文件是程序代碼,如應(yīng)用程序二進(jìn)制文件本身或共享庫(kù),如 /sbin/init 程序
  (3)lnn: library references (AIX)
 ?。?)er: FD information error (see NAME column)
  (5)jld: jail directory(FreeBSD)
 ?。?)ltx: shared library text(code and data)
 ?。?)mxx: hex memory-mapped type number xx.
 ?。?)m86:DOS Merge mapped file
  (9) mem: memory-mapped file
 ?。?0)mmap: memory-mapped device
 ?。?1)pd: parent directory
  (12)rtd: root directory
 ?。?3)tr: kernel trace file (OpenBSD)
  (14)v86 VP/ix mapped file
 ?。?5)0:表示標(biāo)準(zhǔn)輸出
 ?。?6)1:表示標(biāo)準(zhǔn)輸入
  (17)2:表示標(biāo)準(zhǔn)錯(cuò)誤
  一般在標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤、標(biāo)準(zhǔn)輸入后還跟著文件狀態(tài)模式:r w u 等
(1)u:表示該文件被打開并處于讀取/寫入模式
 ?。?)r:表示該文件被打開并處于只讀模式
 ?。?)w:表示該文件被打開并處于只寫入模式
 ?。?)空格:表示該文件的狀態(tài)模式為 unknown ,且沒有鎖定
  (5)- : 表示該文件的狀態(tài)模式為 unknown ,且被鎖定
  同時(shí)在文件狀態(tài)模式后面,還跟著相關(guān)的鎖
 ?。?)N:for a Solaris NFS lock of unknown type
  (2)r: for a read lock on part of the file
 ?。?)R:for a read lock on the entire file
  (4)w: for a write lock on part of the file (文件的部分寫鎖)
 ?。?)W: for a write lock on the entire file(整個(gè)文件的寫鎖)
 ?。?)u: for a read and write lock of any length
 ?。?)U: for a lock of unknown type
 ?。?)x: for an SCO OpenServer Xenix lock on part of the file
 ?。?)X:for an SCO OpentServer Xenix lock on the entire file
 ?。?0)space : if there is no lock

更多 lsof 的命令如下:
lsof : 簡(jiǎn)單地執(zhí)行l(wèi)sof會(huì)列出當(dāng)前系統(tǒng)中所有被打開的文件
lsof -u margu : 列出用戶margu打開的文件, 可指定多個(gè)用戶, 默認(rèn)是OR的關(guān)系
lsof -i : 列出打開的套接字
lsof -i tcp : 列出打開的tcp套接字
lsof -i:80:查看80端口占用
lsof -i :ssh : 列出打開22端口的進(jìn)程
lsof -i tcp:2379 : 列出打開2379號(hào)tcp端口的進(jìn)程
lsof -n 不將IP轉(zhuǎn)換為hostname,缺省是不加上-n參數(shù)
lsof test.txt:顯示開啟文件abc.txt的進(jìn)程
lsof -c test:顯示abc進(jìn)程現(xiàn)在打開的文件
lsof -c -p 12345:列出進(jìn)程號(hào)為12345的進(jìn)程所打開的文件
lsof -g gid:顯示歸屬gid的進(jìn)程情況
lsof +d /usr/local/:顯示目錄下被進(jìn)程開啟的文件
lsof +D /usr/local/:同上,但是會(huì)搜索目錄下的目錄,時(shí)間較長(zhǎng)
lsof -d 4:顯示使用fd為4的進(jìn)程
lsof -i -U:顯示所有打開的端口和UNIX domain文件
lsof -p 12345:看進(jìn)程號(hào)為12345的進(jìn)程打開了哪些文件
lsof -s :列出打開文件的大小,如果沒有大小,則留下空白
lsof -d mem : 列出打開映射文件的進(jìn)程
lsof -d txt : 列出打開的可執(zhí)行文件
lsof server.log : 列出打開server.log文件的進(jìn)程, 可指明多個(gè)文件

二、lsof應(yīng)用實(shí)例:

1、du和df顯示磁盤使用量不一樣

用戶刪除了大量的文件后,du命令就不會(huì)在文件系統(tǒng)目錄中統(tǒng)計(jì)這些文件。如果此時(shí)還在運(yùn)行中的進(jìn)程持有這個(gè)已經(jīng)被刪除的文件句柄,那么這個(gè)文件就不會(huì)真正在磁盤中被刪除,分區(qū)超級(jí)塊中的信息也就不會(huì)更改,df命令仍會(huì)統(tǒng)計(jì)這個(gè)被刪除的文件。 通過lsof命令查詢處于deleted狀態(tài)的文件,被刪除的文件在系統(tǒng)中被標(biāo)記為deleted。如果系統(tǒng)有大量deleted狀態(tài)的文件,會(huì)導(dǎo)致du和df命令統(tǒng)計(jì)結(jié)果不一致。
可執(zhí)行如下命令查看lsof |grep deleted

解決方法
根據(jù)lsof列出的進(jìn)程號(hào),終止相應(yīng)進(jìn)程或者重啟相應(yīng)的服務(wù)。也可以重啟實(shí)例,重啟實(shí)例系統(tǒng)會(huì)退出現(xiàn)有的進(jìn)程,重啟后重新加載過程中,會(huì)釋放調(diào)用的deleted文件的句柄。

重要:但某些時(shí)候,我們的服務(wù)器上沒有l(wèi)sof的命令,而且也不能連外網(wǎng)進(jìn)行安裝,可以通過以下的方法查找deleted狀態(tài)的文件。

[root@k8s-m1 ~]# ll /proc/*/fd/|grep deleted
lrwx------ 1 mysql mysql 64 Jun 21 14:53 12 -> /tmp/ibdhpN9t (deleted)
lrwx------ 1 mysql mysql 64 Jun 21 14:53 5 -> /tmp/ibJeq1IW (deleted)
lrwx------ 1 mysql mysql 64 Jun 21 14:53 6 -> /tmp/ibhiCbh3 (deleted)
lrwx------ 1 mysql mysql 64 Jun 21 14:53 7 -> /tmp/ib1JgnP9 (deleted)
lrwx------ 1 mysql mysql 64 Jun 21 14:53 8 -> /tmp/ib5ed98m (deleted)

2、查找誰(shuí)在使用文件系統(tǒng)

在卸載文件系統(tǒng)時(shí),如果該文件系統(tǒng)中有任何打開的文件,操作通常將會(huì)失敗。那么通過lsof可以找出那些進(jìn)程在使用當(dāng)前要卸載的文件系統(tǒng),如下:

在一個(gè)窗口中打開某個(gè)路徑下的文件,如
[root@k8s-m1 docker]# vim /home/docker/Dockerfile
#新開一個(gè)窗口
[root@k8s-m1 ~]# lsof  /home/docker
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
bash    25386 root  cwd    DIR  253,2     4096 16784069 /home/docker
vim     26008 root  cwd    DIR  253,2     4096 16784069 /home/docker

在這個(gè)示例中,用戶root正在其/home/docker目錄中進(jìn)行一些操作。一個(gè) bash是實(shí)例正在運(yùn)行,并且它當(dāng)前的目錄為/home/docker,另一個(gè)則顯示的是vim正在編輯/home/docker下的文件。要成功地卸載/home/docker,應(yīng)該在通知用戶以確保情況正常之后,中止這些進(jìn)程。 這個(gè)示例說明了應(yīng)用程序的當(dāng)前工作目錄非常重要,因?yàn)樗员3种募Y源,并且可以防止文件系統(tǒng)被卸載。這就是為什么大部分守護(hù)進(jìn)程(后臺(tái)進(jìn)程)將它們的目錄更改為根目錄、或服務(wù)特定的目錄(如 sendmail 示例中的 /var/spool/mqueue)的原因,以避免該守護(hù)進(jìn)程阻止卸載不相關(guān)的文件系統(tǒng)。

3、恢復(fù)刪除的文件當(dāng)(不是所有時(shí)候都有用,可以嘗試)

Linux計(jì)算機(jī)受到入侵時(shí),常見的情況是日志文件被刪除,以掩蓋攻擊者的蹤跡。管理錯(cuò)誤也可能導(dǎo)致意外刪除重要的文件,比如在清理舊日志時(shí),意外地刪除了數(shù)據(jù)庫(kù)的活動(dòng)事務(wù)日志。有時(shí)可以通過lsof來恢復(fù)這些文件。當(dāng)進(jìn)程打開了某個(gè)文件時(shí),只要該進(jìn)程保持打開該文件(進(jìn)程要一直存在,文件要一直被使用,沒有被一直使用的文件是不行的),即使將其刪除,它依然存在于磁盤中。這意味著,進(jìn)程并不知道文件已經(jīng)被刪除,它仍然可以向打開該文件時(shí)提供給它的文件描述符進(jìn)行讀取和寫入。除了該進(jìn)程之外,這個(gè)文件是不可見的,因?yàn)橐呀?jīng)刪除了其相應(yīng)的目錄索引節(jié)點(diǎn)。在/proc 目錄下,其中包含了反映內(nèi)核和進(jìn)程樹的各種文件。/proc目錄掛載的是在內(nèi)存中所映射的一塊區(qū)域,所以這些文件和目錄并不存在于磁盤中,因此當(dāng)我們對(duì)這些文件進(jìn)行讀取和寫入時(shí),實(shí)際上是在從內(nèi)存中獲取相關(guān)信息。如/var/log/messages對(duì)于許多應(yīng)用程序,尤其是日志文件和數(shù)據(jù)庫(kù),這種恢復(fù)刪除文件的方法非常有用,因?yàn)檫@些文件一般都是一直在使用的。

[root@k8s-m1 ~]# rm  /var/log/messages
rm: remove regular file ‘/var/log/messages’? y
[root@k8s-m1 ~]# lsof |grep /var/log/messages
rsyslogd  21072          root    9w      REG              253,0    333093  101406984 /var/log/messages (deleted)
in:imjour 21072 21074    root    9w      REG              253,0    333093  101406984 /var/log/messages (deleted)
in:imudp  21072 21075    root    9w      REG              253,0    333093  101406984 /var/log/messages (deleted)
in:imtcp  21072 21076    root    9w      REG              253,0    333093  101406984 /var/log/messages (deleted)
in:imtcp  21072 21077    root    9w      REG              253,0    333093  101406984 /var/log/messages (deleted)
in:imtcp  21072 21078    root    9w      REG              253,0    333093  101406984 /var/log/messages (deleted)
in:imtcp  21072 21079    root    9w      REG              253,0    333093  101406984 /var/log/messages (deleted)
in:imtcp  21072 21080    root    9w      REG              253,0    333093  101406984 /var/log/messages (deleted)
rs:main   21072 21081    root    9w      REG              253,0    333093  101406984 /var/log/messages (deleted)

從上面的信息可以看到 PID 21072 (rsyslogd)打開文件的文件描述符為 9(9w)。同時(shí)還可以看到/var/log/messages已經(jīng)標(biāo)記被刪除了。因此我們可以在 /proc/21072/fd/9 (fd下的每個(gè)以數(shù)字命名的文件表示進(jìn)程對(duì)應(yīng)的文件描述符)中查看相應(yīng)的信息,如下:

[root@k8s-m1 ~]# head -n 5 /proc/21072/fd/9
Jun 25 03:40:01 k8s-m1 rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-34.el7" x-pid="21072" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Jun 25 03:40:01 k8s-m1 systemd: Started Session 15901 of user root.
Jun 25 03:40:01 k8s-m1 systemd: Started Session 15902 of user root.
Jun 25 03:40:24 k8s-m1 etcd: read-only range request "key:\"/registry/health\" " with result "range_response_count:0 size:7" took too long (171.182021ms) to execute
Jun 25 03:40:27 k8s-m1 etcd: read-only range request "key:\"/registry/services/specs/default/kubernetes\" " with result "range_response_count:1 size:612" took too long (157.340425ms) to execute

恢復(fù):

[root@k8s-m1 ~]# cat /proc/21072/fd/9 > /var/log/messages

二、ss

ss命令詳解

ss 是 Socket Statistics 的首字母縮寫。顧名思義,ss命令可以用來獲取socket統(tǒng)計(jì)信息,它可以顯示和netstat類似的內(nèi)容。ss的優(yōu)勢(shì)在于它能夠顯示更多更詳細(xì)的有關(guān)TCP和連接狀態(tài)的信息,而且比netstat更快速更高效。ss 命令由 iproute2 軟件包提供(yum install iproute),默認(rèn)已經(jīng)安裝,iproute 2 包中的命令可以完全替代 net-tools 包中的 ifconfig、netstat、route 等命令。
下面是一些常用選項(xiàng)和用法:

ss -t:顯示所有TCP連接。
ss -u:顯示所有UDP連接。
ss -a:顯示所有連接,包括監(jiān)聽狀態(tài)和已建立的連接。
ss -l:顯示所有監(jiān)聽狀態(tài)的連接。
ss -p:顯示與連接關(guān)聯(lián)的進(jìn)程信息。
ss -n:顯示IP地址和端口號(hào),而不是主機(jī)名和服務(wù)名。
ss -o:顯示時(shí)間戳和超時(shí)信息。
ss -e:顯示詳細(xì)的套接字信息。
除了以上的選項(xiàng)外,ss命令還可以與其他命令一起配合使用,例如grep、awk等,以進(jìn)一步過濾和處理輸出結(jié)果。
還可以使用ss命令來檢查網(wǎng)絡(luò)連接問題,例如檢查某個(gè)端口是否被占用、查看連接狀態(tài)等。

ss示例

列出已建立的連接

默認(rèn)情況下,如果我們運(yùn)行ss命令而沒有指定其他選項(xiàng),它將顯示所有已建立連接的打開的非偵聽套接字的列表,例如TCP,UDP或UNIX套接字。

[root@k8s-m1 ~]# ss |more
Netid  State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port                
u_str  ESTAB      0      0      /run/systemd/journal/stdout 33171                 * 44494                
u_str  ESTAB      0      0       * 32720                 * 39019                
u_str  ESTAB      0      0       * 44138                 * 33121                
u_str  ESTAB      0      0      /run/gssproxy.sock 35473560              * 35473554             
u_str  ESTAB      0      0       * 44494                 * 33171                
u_str  ESTAB      0      0      /run/dbus/system_bus_socket 35673                 * 41457                
u_str  ESTAB      0      0       * 35472701              * 0                    

顯示監(jiān)聽套接字(listening)

我們可以使用-l選項(xiàng)專門列出當(dāng)前正在偵聽連接的套接字,而不是列出所有的套接字。

[root@k8s-m1 ~]# ss -lt
State       Recv-Q Send-Q                       Local Address:Port                                        Peer Address:Port                
LISTEN      0      128                                      *:30983                                                  *:*                    
LISTEN      0      128                                      *:30119                                                  *:*                    
LISTEN      0      128                                      *:24007                                                  *:*                    
LISTEN      0      128                              127.0.0.1:10248                                                  *:*                    
LISTEN      0      128                              127.0.0.1:10249                                                  *:*                    
LISTEN      0      128                              127.0.0.1:9099                                                   *:*                    
LISTEN      0      128                          192.168.2.140:2379                                                   *:*                    
LISTEN      0      128                              127.0.0.1:2379                                                   *:*                    
LISTEN      0      128                          192.168.2.140:2380                                                   *:*            

顯示進(jìn)程

我們可以用-p選項(xiàng)打印出擁有套接字的進(jìn)程或PID號(hào)。

[root@k8s-m1 ~]# ss -ltp
State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port                
LISTEN     0      128        *:30983                    *:*                     users:(("kube-proxy",pid=30105,fd=20))
LISTEN     0      128        *:30119                    *:*                     users:(("kube-proxy",pid=30105,fd=15))
LISTEN     0      128        *:24007                    *:*                     users:(("glusterd",pid=5712,fd=10))
LISTEN     0      128    127.0.0.1:10248                    *:*                     users:(("kubelet",pid=5778,fd=26))
LISTEN     0      128    127.0.0.1:10249                    *:*                     users:(("kube-proxy",pid=30105,fd=14))
LISTEN     0      128    127.0.0.1:9099                     *:*                     users:(("calico-node",pid=30764,fd=3))
LISTEN     0      128    192.168.2.140:2379                     *:*                     users:(("etcd",pid=5680,fd=7))
LISTEN     0      128    127.0.0.1:2379                     *:*                     users:(("etcd",pid=5680,fd=6))
LISTEN     0      128    192.168.2.140:2380                     *:*                     users:(("etcd",pid=5680,fd=5))
......

顯示所有tcp sockets

ss -at

顯示所有utp sockets

ss -au

只顯示 unix 連接

ss -x

列出所有http連接中的連接

顯示摘要信息
ss -s

僅顯示 IPv4套接字

ss -l4

僅顯示 IPv6套接字

ss -l6

不將 IP 地址解析為主機(jī)名

如果不想將ip地址解析為主機(jī)名稱,可以使用-n選項(xiàng),以防止命令將 IP 地址解析為主機(jī)名。但這也會(huì)阻止端口號(hào)的解析,如下,22端口為ssh服務(wù)的端口,不加-n將會(huì)顯示成ssh

[root@k8s-m1 ~]# ss -l4 -n
Netid State      Recv-Q Send-Q                       Local Address:Port                                      Peer Address:Port              
tcp   LISTEN     0      128                          192.168.2.140:2379                                                 *:*                  
tcp   LISTEN     0      128                              127.0.0.1:2379                                                 *:*                  
tcp   LISTEN     0      128                          192.168.2.140:2380                                                 *:*                  
tcp   LISTEN     0      128                                      *:22                                    

dst/src dport/sport相關(guān)語(yǔ)法

[root@k8s-m1 ~]# ss dst 192.168.2.141:2379
Netid State      Recv-Q Send-Q                    Local Address:Port                                     Peer Address:Port                
tcp   ESTAB      0      0                         192.168.2.140:42178                                   192.168.2.141:2379                 
tcp   ESTAB      0      0                         192.168.2.140:42244                                   192.168.2.141:2379                 
tcp   ESTAB      0      0                         192.168.2.140:42082                                   192.168.2.141:2379                 
tcp   ESTAB      0      0                         192.168.2.140:42320                                   192.168.2.141:2379                 
tcp   ESTAB      0      0                         192.168.2.140:42802                                   192.168.2.141:2379   
[root@k8s-m1 ~]# ss src 192.168.2.140:22
Netid State      Recv-Q Send-Q                    Local Address:Port                                     Peer Address:Port                
tcp   ESTAB      0      0                         192.168.2.140:ssh                                        10.12.13.1:54920                
tcp   ESTAB      0      0                         192.168.2.140:ssh                                        10.12.13.1:52420                
tcp   ESTAB      0      96                        192.168.2.140:ssh                                        10.12.13.1:63285

ss dport OP PORT
ss sport OP PORT
OP 可以代表以下任意一個(gè):

寫法一 寫法二 用途含義
<= le 小于或等于某個(gè)端口號(hào)
>= ge 大于或等于某個(gè)端口號(hào)
== eq 等于某個(gè)端口號(hào)
!= ne 不等于某個(gè)端口號(hào)
> gt 大于某個(gè)端口號(hào)
< lt 小于某個(gè)端口號(hào)
[root@k8s-m1 ~]# ss -tunl sport \< 50
Netid State      Recv-Q Send-Q                      Local Address:Port                                     Peer Address:Port              
tcp   LISTEN     0      128                                     *:22                                                  *:*                  
tcp   LISTEN     0      128                                    :::22                                                 :::*                  
[root@k8s-m1 ~]# ss -tunl sport lt 50
Netid State      Recv-Q Send-Q                      Local Address:Port                                     Peer Address:Port              
tcp   LISTEN     0      128                                     *:22                                                  *:*                  
tcp   LISTEN     0      128                                    :::22                                                 :::*                  

通過 TCP 的狀態(tài)進(jìn)行過濾

ss 命令還可以通過 TCP 連接的狀態(tài)進(jìn)程過濾,支持的 TCP 協(xié)議中的狀態(tài)有: established syn-sent syn-recv fin-wait-1 fin-wait-2 time-wait closed close-wait last-ack listening closing,具體含義可以去了解TCP三次握手和四次揮手過程中的狀態(tài)。
而除了上面的 TCP 狀態(tài),還可以使用下面這些狀態(tài):

狀態(tài) 含義
all 列出所有的 TCP 狀態(tài)
connected 列出除了 listening 和 closing 之外的所有 TCP 狀態(tài)。
synchronized 列出除了 syn-sent 之外的所有 TCP 狀態(tài)。
bucket 列出 maintained 的狀態(tài),如:time-wait 和 syn-recv。
big 列出和 bucket 相反的狀態(tài)。

如:查看Ipv4處于listening狀態(tài)的進(jìn)程

[root@k8s-m1 ~]# ss -l4 state listening
Netid Recv-Q Send-Q                         Local Address:Port                                          Peer Address:Port                
tcp   0      128                                        *:30983                                                    *:*                    
tcp   0      128                                        *:30119                                                    *:*                    
tcp   0      128                                        *:24007                                                    *:*                    
tcp   0      128                                127.0.0.1:10248                                                    *:*                    
tcp   0      128                                127.0.0.1:10249                                                    *:*                    
tcp   0      128                                127.0.0.1:9099                                                     *:*                    
tcp   0      128                            192.168.2.140:2379                                                     *:*                    
tcp   0      128                                127.0.0.1:2379                                                     *:*                    
tcp   0      128                            192.168.2.140:2380                                                     *:*                    
tcp   0      128                                        *:32589                                                    *:*    

#注意以下用法的區(qū)別

[root@k8s-m1 ~]# ss -4n state listening '( sport = :22 )'
Netid Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
tcp   0      128                                          *:22                                                       *:*                  

[root@k8s-m1 ~]# ss -ln state listening '( sport = :ssh )'
Netid Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
tcp   0      128                                          *:22                                                       *:*                  
tcp   0      128                                         :::22                                                      :::*                  

[root@k8s-m1 ~]#  ss -ln state listening '( dport = :ssh or sport = :ssh )'
Netid Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
tcp   0      128                                          *:22                                                       *:*                  
tcp   0      128                                         :::22                                                      :::*    

對(duì)比netstat和ss查看端口的效果

[root@k8s-m1 ~]# netstat -anp|grep 2379|grep LISTEN
tcp        0      0 192.168.2.140:2379      0.0.0.0:*               LISTEN      5680/etcd           
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      5680/etcd           

[root@k8s-m1 ~]# ss -l4|grep 2379
tcp    LISTEN     0      128    192.168.2.140:2379                  *:*                    
tcp    LISTEN     0      128    127.0.0.1:2379                  *:*                    
[root@k8s-m1 ~]# 

更多ss的語(yǔ)法請(qǐng)自行摸索,可以通過ss -h查看幫助信息!??!

三、netstat
netstat -tunlp 用于顯示 tcp,udp 的端口和進(jìn)程等相關(guān)情況。
netstat 查看端口占用語(yǔ)法格式:

netstat -tunlp | grep 端口號(hào)
-t (tcp) 僅顯示tcp相關(guān)選項(xiàng)
-u (udp)僅顯示udp相關(guān)選項(xiàng)
-n 拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)化為數(shù)字
-l 僅列出在Listen(監(jiān)聽)的服務(wù)狀態(tài)
-p 顯示建立相關(guān)鏈接的程序名

例如查看 2379端口的情況,使用以下命令:
[root@k8s-m1 ~]# netstat -anp|grep 2379|more
tcp        0      0 192.168.2.140:2379      0.0.0.0:*               LISTEN      5680/etcd           
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      5680/etcd           
tcp        0      0 192.168.2.140:42178     192.168.2.141:2379      ESTABLISHED 30213/kube-apiserve 
tcp        0      0 192.168.2.140:42244     192.168.2.141:2379      ESTABLISHED 30213/kube-apiserve 
tcp        0      0 192.168.2.140:42082     192.168.2.141:2379      ESTABLISHED 30213/kube-apiserve 

更多命令:

netstat -ntlp //查看當(dāng)前所有tcp端口
netstat -ntulp | grep 80 //查看所有80端口使用情況
netstat -ntulp | grep 3306 //查看所有3306端口使用情況

在查到端口占用的進(jìn)程后,如果你要?dú)⒌魧?duì)應(yīng)的進(jìn)程可以使用 kill 命令:
kill -9 PID

如上實(shí)例,我們看到 2379端口對(duì)應(yīng)的 PID 為 5680,使用以下命令殺死進(jìn)程:
kill -9 5680

批量殺掉關(guān)于etcd的進(jìn)程
pkill etcd

更多關(guān)于運(yùn)維方面的相關(guān)知識(shí),請(qǐng)前往博客主頁(yè)查看。文章來源地址http://www.zghlxwxcb.cn/news/detail-501281.html

到了這里,關(guān)于Linux 查看端口占用情況的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Windows 查看端口占用情況 & 80端口被占用處理方法

    Windows 查看端口占用情況 & 80端口被占用處理方法

    一 . 用netstat指令查看是端口占用情況 查看所有端口的占用情況 命令格式:netstat [options] -a表示顯示所有活動(dòng)的TCP連接以及計(jì)算機(jī)監(jiān)聽的TCP和UDP端口。 -n表示只以數(shù)字形式顯示所有活動(dòng)的TCP連接的地址和端口號(hào)。 -o表示顯示活動(dòng)的TCP連接并包括每個(gè)連接的進(jìn)程ID(PID)。

    2024年02月06日
    瀏覽(33)
  • Windows下查看端口占用情況

    Windows下查看端口占用情況

    編程的時(shí)候經(jīng)常發(fā)現(xiàn)我們需要使用的端口被別的程序占用,這個(gè)時(shí)候需要清楚查看是哪個(gè)程序占用了端口,用且清除了這個(gè)進(jìn)程! 1、開始----運(yùn)行----cmd,或者是window+R組合鍵,調(diào)出命令窗口: 2、輸入命令: netstat -ano ,列出 所有端口的情況 。在列表中我們觀察被占用的端口

    2024年02月03日
    瀏覽(25)
  • windows下如何查看端口占用情況?

    開始--運(yùn)行--cmd 進(jìn)入命令提示符 輸入netstat -ano 即可看到所有連接的PID 之后在任務(wù)管理器中找到這個(gè)PID所對(duì)應(yīng)的程序如果任務(wù)管理器中沒有PID這一項(xiàng),可以在任務(wù)管理器中選\\\"查看\\\"-\\\"選擇列\(zhòng)\\" ??????? 經(jīng)常,我們?cè)趩?dòng)應(yīng)用的時(shí)候發(fā)現(xiàn)系統(tǒng)需要的端口被別的程序占用,如何知道

    2024年02月06日
    瀏覽(26)
  • Win10系統(tǒng)查看本地端口占用情況

    Win10系統(tǒng)查看本地端口占用情況

    前言 0. Netstat命令及其常見用法 1. 打開命令提示符窗口 2. 輸入命令?netstat -ano?查看本地端口占用情況 3. 通過PID查看占用端口的程序 ????????在Win10系統(tǒng)環(huán)境啟動(dòng)程序服務(wù)過程中,有時(shí)會(huì)遇到啟動(dòng)服務(wù)失敗,提示相關(guān)端口被占用的情況,本文將介紹Win10系統(tǒng)查看端口占用情

    2024年02月09日
    瀏覽(20)
  • Windows查看端口占用情況及殺掉進(jìn)程

    Windows查看端口占用情況及殺掉進(jìn)程

    目錄 ?1、打開命令窗口(以管理員身份運(yùn)行) ?2、查找所有運(yùn)行的端口 ?3、查看被占用端口對(duì)應(yīng)的 PID 4、查看指定 PID 的進(jìn)程 5、結(jié)束進(jìn)程 開發(fā)時(shí)經(jīng)常遇到端口被占用的情況,這個(gè)時(shí)候我們就需要找出被占用端口的程序,然后結(jié)束它。 ?開始—-運(yùn)行—-cmd ,或者是? window+R ?組

    2024年02月08日
    瀏覽(29)
  • Windows如何查看某個(gè)端口被占用的情況?

    Windows如何查看某個(gè)端口被占用的情況?

    在工作中,有時(shí)會(huì)發(fā)現(xiàn)端口被占用的情況,導(dǎo)致軟件報(bào)錯(cuò)或者服務(wù)無法啟動(dòng)等問題。在不知道具體哪個(gè)進(jìn)程占用該端口號(hào)的情況下,我們可以用下面方法來查找。 舉例:我現(xiàn)在發(fā)現(xiàn)8090端口被占用了,我現(xiàn)在需要找到并殺掉該進(jìn)程。 1、打開命令窗口(以管理員身份運(yùn)行) 開始

    2024年02月06日
    瀏覽(33)
  • CentOS7查看開放端口命令、查看端口占用情況和開啟端口命令、殺掉進(jìn)程等命令

    目錄 文章原鏈接:http://t.csdn.cn/x3yDi 一、CentOS7查看開放端口命令 查看已經(jīng)開放的端口 開啟端口 命令含義 重啟防火墻 停止firewall 禁止firewall開機(jī)啟動(dòng) 二、Centos查看端口占用情況和開啟端口命令 列出所有端口 1、開啟端口(以80端口為例) 2、關(guān)閉端口 3、查看端口狀態(tài) 查看應(yīng)

    2023年04月11日
    瀏覽(28)
  • cmd命令查看當(dāng)前計(jì)算機(jī)端口占用情況

    cmd命令查看當(dāng)前計(jì)算機(jī)端口占用情況

    ? ? 1.打開cmd命令提示符,輸入netstat -ano,可以看到當(dāng)前本機(jī)的所有端口情況 2.輸入netstat -aon|findstr,加端口號(hào),記住進(jìn)程pid 3.tasklist|findstr,加剛才記住的pid,可以查到該端口是哪個(gè)應(yīng)用占用的 (1)地址一欄相關(guān)說明: 0.0.0.0 是對(duì)外開放,通過服務(wù)域名、ip可以訪問的端口 1

    2024年02月06日
    瀏覽(18)
  • Mac 上查看端口占用情況并結(jié)束進(jìn)程的方法

    Mac 上查看端口占用情況并結(jié)束進(jìn)程的方法

    在 Mac 上,如果你想查看當(dāng)前系統(tǒng)中哪些進(jìn)程正在占用特定的端口,并且需要結(jié)束某個(gè)進(jìn)程以釋放端口,下面是一些方法可以幫助你完成這些任務(wù)。 步驟1:打開終端應(yīng)用 在 Launchpad 或者應(yīng)用程序文件夾中找到終端應(yīng)用,雙擊打開。 步驟2:查看端口占用情況 在終端中輸入以下

    2024年02月13日
    瀏覽(93)
  • Linux查看磁盤占用情況

    磁盤占用指的是已使用的磁盤空間大小,以及空閑的磁盤空間大小。 磁盤占用大小可以使用du、df命令查看,其中,du命令用于查看指定目錄的磁盤空間占用情況,而df命令則可查看整個(gè)磁盤的占用情況。 查看指定目錄的磁盤空間占用情況 du -h /path/test/directory 使用du命令查看指

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包