當前位置:首頁 » 操作系統 » linux佔用埠進程

linux佔用埠進程

發布時間: 2023-01-12 09:18:24

A. linux查看埠佔用情況

一、常用命令:

1,lsof -i埠號

2,netstat -tunlp|grep 埠號

這兩個命令都可以查看埠被什麼進程佔用。

二、lsof -i 需要 root 用戶的許可權來執行,如下圖:


三、netstat命令

netstat -tunlp用於顯示 tcp,udp 的埠和進程等相關情況。

netstat 查看埠佔用語法格式:

netstat -tunlp | grep 埠號

(1)linux佔用埠進程擴展閱讀

一、更多 lsof 的命令擴展

1、lsof -i:8080:查看8080埠佔用

2、lsof abc.txt:顯示開啟文件abc.txt的進程

3、lsof -c abc:顯示abc進程現在打開的文件

4、lsof -c -p 1234:列出進程號為1234的進程所打開的文件

5、lsof -g gid:顯示歸屬gid的進程情況

6、lsof +d /usr/local/:顯示目錄下被進程開啟的文件

7、lsof +D /usr/local/:同上,但是會搜索目錄下的目錄,時間較長

8、lsof -d 4:顯示使用fd為4的進程

9、lsof -i -U:顯示所有打開的埠和UNIX domain文件

二、更多netstat命令

1、netstat -ntlp //查看當前所有tcp埠

2、netstat -ntulp | grep 80 //查看所有80埠使用情況

3、netstat -ntulp | grep 3306 //查看所有3306埠使用情況

三、關閉埠

1、在查到埠佔用的進程後,如果你要殺掉對應的進程可以使用 kill 命令:

kill -9 PID

2、如上實例,我們看到 8000 埠對應的 PID 為 26993,使用以下命令殺死進程:

kill -9 26993

B. 怎樣查看linux系統佔用埠的進程

linux怎麼查看埠的進程?我們一起來了解一下吧。
1、打開linux系統,在linux的桌面的空白處右擊。
2、在彈出的下拉選項里,點擊打開終端。
3、輸入su命令,回車輸入密碼進入root用戶。

4、使用lsof-i命令查看埠的進程情況。
以上就是小編的分享,希望能幫助到大家。

C. linux怎麼查看進程佔用埠

1. ss命令簡介

ss 是 Socket Statistics 的縮寫。ss 命令可以用來獲取 socket 統計信息,它顯示的內容和 netstat 類似。但 ss 的優勢在於它能夠顯示更多更詳細的有關 TCP 和連接狀態的信息,而且比 netstat 更快。當伺服器的 socket 連接數量變得非常大時,無論是使用 netstat 命令還是直接 cat /proc/net/tcp,執行速度都會很慢。ss 命令利用到了 TCP 協議棧中 tcp_diag。tcp_diag 是一個用於分析統計的模塊,可以獲得 Linux 內核中第一手的信息,因此 ss 命令的性能會好很多。

ss命令簡介

2. 常用選項

-h, --help 幫助

-V, --version 顯示版本號

-t, --tcp 顯示 TCP 協議的 sockets

-u, --udp 顯示 UDP 協議的 sockets

-x, --unix 顯示 unix domain sockets,與 -f 選項相同

-n, --numeric 不解析服務的名稱,如 "22" 埠不會顯示成 "ssh"

-l, --listening 只顯示處於監聽狀態的埠

-p, --processes 顯示監聽埠的進程(Ubuntu 上需要 sudo)

-a, --all 對 TCP 協議來說,既包含監聽的埠,也包含建立的連接

-r, --resolve 把 IP 解釋為域名,把埠號解釋為協議名稱

3. 常見用法

如果不添加選項 ss 命令默認輸出所有建立的連接(不包含監聽的埠),包括 tcp, udp, and unix socket 三種類型的連接:

3.1 查看前5名的連接:

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

u_str ESTAB 0 0 * 20040 * 20041

u_str ESTAB 0 0 * 20030 * 20031

u_str ESTAB 0 0 * 20044 * 20043

u_str ESTAB 0 0 /run/dbus/system_bus_socket 18592 * 18591

3.2 查看主機的監聽埠

State Recv-Q Send-Q Local Address:Port Peer Address:Port

LISTEN 0 128 127.0.0.1:9016 :

LISTEN 0 128 127.0.0.1:9017 :

LISTEN 0 100 127.0.0.1:25 :

LISTEN 0 128 127.0.0.1:9018 :

LISTEN 0 128 127.0.0.1:1723 :

LISTEN 0 128 127.0.0.1:9019 :

3.3 linux查看tcp連接

ESTAB 0 0 ::1:ssh ::1:53238

ESTAB 0 0 ::1:53278 ::1:ssh

ESTAB 0 0 ::1:ssh ::1:53280

ESTAB 0 0 ::1:53288 ::1:ssh

ESTAB 0 0 ::1:ssh ::1:53296

ESTAB 0 0 ::1:53294 ::1:ssh

ESTAB 0 0 ::1:48456 ::1:ssh

ESTAB 0 0 ::1:53286 ::1:ssh

ESTAB 0 0 ::1:53292 ::1:ssh

ESTAB 0 0 ::1:ssh ::1:53272

linux查看tcp連接

3.4 解析IP和埠號

使用-r選項

State Recv-Q Send-Q Local Address:Port Peer Address:Port

LISTEN 0 128 my_public_ip:9016 :

LISTEN 0 128 my_public_ip:9017 :

LISTEN 0 100 localhost:smtp :

LISTEN 0 128 my_public_ip:9018 :

LISTEN 0 128 my_public_ip:pptp :

LISTEN 0 128 my_public_ip:9019 :

linux查看監聽埠

3.5 輸出時帶進程名稱

使用-p選項

Total: 2340 (kernel 2365)

TCP: 2126 (estab 72, closed 23, orphaned 1, synrecv 0, timewait 2/0), ports 0

Transport Total IP IPv6

3.6 根據條件過濾輸出結果

可以通過語法過濾輸出結果,根據源IP、源埠、目標IP、目標埠

src源

dst目標

ss dst 172.16.26.33

ss dst 172.16.26.43:http

ss dst 172.16.26.43:443

3.7 根據源埠號范圍輸出:

根據目標埠號范圍輸出:

ss dport OP PORT

OP 可以代表以下任意一個:

<=le小於或等於某個埠號 >=ge大於或等於某個埠號==eq等於某個埠號!=ne不等於某個埠號>gt大於某個埠號<lt小於某個埠號

比如:

輸出源埠號小於8080的連接狀態

或者

3.8 根據TCP 的狀態進行過濾

ss命令還可以根據TCP連接的狀態進行過濾,支持的 TCP 協議中的狀態有:

established

syn-sent

syn-recv

fin-wait-1

fin-wait-2

time-wait

closed

close-wait

last-ack

listening

closing

除了上面的 TCP 狀態,還可以使用下面這些狀態:

狀態輸出結果 all輸出所有TCP狀態。connected輸出已經建立連接的TCP狀態。synchronized輸出同步狀態的連接。bucket輸出maintained的狀態,如:time-wait 和 syn-recv。big輸出與bucket相反的狀態。

只輸出ipv4狀態:

只輸出ipv6狀態:

輸出ipv4監聽狀態:

3.9 根據TCP狀態和埠號進行過濾

輸入出ipv4協議下的ssh監聽狀態:

或者

要麼使用轉義小括弧,要麼使用單引號

查看所有已經建立TCP三次握手的HTTP連接:

查看所有正在進程的ssh連接:

4. 總結

ss 命令功能豐富並且性能出色,完全可以替代 netsate 命令。已經成為我們日常查看 socket 相關信息的利器。未來netstat已經慢慢被ss取代。

https://www.linuxrumen.com/cyml/821.html

D. linux查看埠佔用的方法 linux查看哪個埠佔用

使用lsof命令:lsof -i :port_number |grep (LISTEN);-i是用來查找和網路相關的文件,:號是必須的,它是標志你查找的是一個埠。port_number就是你要查找的埠號,譬如你要查找是否有程序佔用了oracle的監聽埠1521,就可以使用lsof -i :1521 |grep (LISTEN)。如果有程序已經佔用了,那麼下面列印的第二個欄位就是該程序的進程id,第一個欄位是進程的名字。

E. linux如何查看埠被哪個進程佔用

使用netstat 和lsof命令,並用grep來過濾你需要查看的埠。

例如查看tcp有哪些埠打開了:

netstat-a|greptcp

然後查看哪個進程佔用了這些埠:

lsof-i

如果要查看某個埠,比如80埠是哪個進程:

lsof-i|grep:80

F. Linux查看進程佔用埠號(linux查看進程佔用埠情況)

1、Linux查看進程佔用埠號。

2、linux查看進程佔用埠grep。

3、linux查看進程佔用的埠。

4、查看埠佔用的進程。

1."linux查看進程佔用埠,為您提供linux查看進程佔用埠圖文信息,打開linux系統,在linux的桌面的空白處右擊。

2.在彈出的下拉選項里,點擊打開終端。

3.在終端窗口中輸入lsof-i+埠號,回車後即可查看埠的佔用情況。

G. linux 埠被佔用,linux埠號被佔用解決方法

1."linux埠被佔用怎麼解決,為您提供linux埠被佔用怎麼解決圖文信息,打開linux系統,在linux的桌面的空白處右擊。

2.在彈出的下拉選項里,點擊打開終端。

3.在終端窗口中輸入netstat-tln|grep+被占埠命令。

4.輸入lsof-i:+被占埠命令,回車後可查看埠被哪個進程佔用。

5.輸入kill-9+進程id命令,回車後即可殺死佔用埠的進程。

H. linux如何查看埠被哪個進程佔用

在使用Linux系統的過程中,有時候會遇到埠被佔用而導致服務無法啟動的情況。比如HTTP使用80埠,但當啟動Apache時,卻發現此埠正在使用。
這種情況大多數是由於軟體沖突、或者默認埠設置不正確導致的,此時需要查看究竟哪個進程佔用了埠,來決定進一步的處理方法。

查看埠佔用情況的命令:lsof -i
1 [root@www ~]# lsof -i
2
3 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
4 nginx 2333 root 6u IPv4 6242 TCP *:http (LISTEN)
5 nginx 2334 www 6u IPv4 6242 TCP *:http (LISTEN)
6 sshd 2349 root 3u IPv6 6283 TCP *:ndmp (LISTEN)
7 sshd 2349 root 4u IPv6 6286 TCP *:ssh (LISTEN)
這里返回了Linux當前所有打開埠的佔用情況。第一段是進程,最後一列是偵聽的協議、偵聽的IP與埠號、狀態。如果埠號是已知的常用服務(如80、21等),則會直接顯示協議名稱,如http、ftp、ssh等。

查看某一埠的佔用情況: lsof -i:埠號
1 [root@www ~]# lsof -i:21
2
3 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
4 pure-ftpd 2651 root 4u IPv4 7047 TCP *:ftp (LISTEN)
5 pure-ftpd 2651 root 5u IPv6 7048 TCP *:ftp (LISTEN)
這里顯示出21號埠正在被pure-ftpd使用,狀態是listen。

結束佔用埠的進程:killall 進程名
雖然我們不建議用這種本末倒置的方法來解決沖突問題,但某些情況下還是可以直接結束掉佔用進程的(比如重啟Apache時進程沒有完全退出,導致重啟失敗)
1 [root@www ~]# killall pure-ftpd
這樣,所有的pure-ftpd進程都會被結束掉。
也可使用命令:

netstat -apn|grep <埠號>
例如:
Linux代碼
[root@SonarServer1 user0]# netstat -apn|grep 80
tcp 0 0 :::80 :::* LISTEN 19408/java
找到進程號以後,再使用以下命令查看詳細信息:
ps -aux|grep <進程號>

I. Linux如何查詢哪些埠被佔用

前言

如何確定埠是否在Linux或類unix系統下佔用?怎麼檢查哪些埠正在Linux伺服器上被佔用?Linux系統如何使用命令行檢查埠是否已經在佔用?

查詢哪些埠正在伺服器的網路介面上被佔用是非常重要的工作。您需要查詢打開埠以檢測入侵。除了入侵之外,出於故障排除的目的,可能有必要檢查伺服器上的其他應用程序是否已經使用了某個埠。例如,您可以在同一系統上安裝Apache和Nginx伺服器。因此,有必要了解Apache或Nginx是否使用TCP埠80或443。本教程提供了使用netstat、nmap和lsof命令查詢正在使用的埠並查看正在使用該埠的應用程序的步驟。

如何查詢埠是否在使用中:
檢查Linux上被佔用的埠和應用程序:

Step1: 打開終端

Step2: 執行以下任意一條命令查看被佔用的埠

查看埠22是否被佔用:

較新版本的Linux使用以下查詢命令:

方法1: 使用lsof命令查詢佔用埠
先安裝lsof命令
RHEL/CentOS系統:

Debian/Ubuntu系統安裝lsof命令

使用語法如下

OpenBSD

看到類似這樣的輸出結果:

sshd是進程名字
TCP 22表示sshd進程佔用了TCP 22埠,正在監聽中(LISTEN)
1243表示sshd進程號

方法二:使用netstat查詢被佔用的埠號

較新的Linux發行版已經不再默認集成netstat命令,而是使用新命令ss取代了。
如果要使用netstat命令,需要手動安裝net-tools套件:
RHEL/CentOS系統安裝net-tools套件,執行以下命令:

Debian/Ubuntu系統執行以下命令:

您可以使用netstat查詢被佔用的埠和應用程序,如下所示。
執行以下命令查詢:

在Linux上,netstat命令已經廢棄了一段時間。因此,你需要使用ss命令如下:

或者:

其中ss命令選項如下:
-t : 只顯示Linux上的TCP套接字
-u : 在Linux上只顯示UDP套接字
-l : 監聽套接字。例如,TCP埠22由SSHD伺服器打開。
-p : 列出打開套接字的進程名
-n : 不要解析服務名稱,即不要使用DNS

FreeBSD/MacOS X netstat 語法
FreeBSD/MacOS X查詢被佔用的埠

或者

OpenBSD netstat 語法
OpenBSD查詢被佔用的埠

或者

方法三:使用`nmap`命令查詢Linux被佔用的埠

默認情況下,Linux發行版並沒有默認安裝nmap命令,
CentOS系統安裝nmap

Ubuntu系統安裝nmap

使用nmap查詢本機被佔用的埠

查詢Linux系統被佔用的UDP埠

查詢Linux系統被佔用的TCP埠

你可以同時查詢被佔用的TCP和UDP埠

結論:

本教程解釋了如何在Linux系統上使用命令行查詢TCP或者UDP埠是否被佔用。有關更多信息,請參見nmap命令和lsof命令頁面

J. Linux篇:Linux 埠被佔用如何解決

最近在linux伺服器上部署應用,總是出現埠被佔用的情況,有時關閉軟體,kill進程也會出現埠佔用。

下面以80埠為例,列出詳細解決過程

1.查找被佔用的埠

 COMMAND   PID   USER   FD   TYPE   DEVICE    SIZE/OFF    NODE      NAME

   Java             14576  root     36u   IPv6    35452317    0t0         TCP *:pcsync-https (LISTEN)

  # netstat -anp 查看埠使用情況

  # netstat -anp | grep 80 只查看埠80的使用情況

2.查看埠屬於哪個程序?埠被哪個進程佔用

3. 殺掉佔用埠的進程

熱點內容
美嘉演算法口訣 發布:2025-05-16 06:03:15 瀏覽:952
c程序編譯連接 發布:2025-05-16 06:02:36 瀏覽:964
腳本魔獸 發布:2025-05-16 06:01:52 瀏覽:330
文件夾python 發布:2025-05-16 06:01:43 瀏覽:627
電腦我的世界伺服器游戲幣 發布:2025-05-16 05:27:25 瀏覽:488
索尼手機為什麼不能用安卓10 發布:2025-05-16 05:18:46 瀏覽:784
蔚來es6選擇哪些配置實用 發布:2025-05-16 05:18:05 瀏覽:130
小米如何掃碼wifi密碼 發布:2025-05-16 05:13:38 瀏覽:807
樓層密碼是什麼意思 發布:2025-05-16 05:13:37 瀏覽:13
創建文件夾失敗 發布:2025-05-16 05:12:59 瀏覽:396