netstat查看埠linux
⑴ linux系統怎麼查看埠
Linux系統一般可以使用netstat、lsof等命令來查看埠,用法示例:
netstat -tualp
netstat -tunlp|grep 8080(換成具體埠號)
lsof -i:8080(換成具體埠號)
⑵ 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命令頁面
⑶ linux查看埠是否開啟
Linux怎麼查看埠是否開啟?我們一起來了解一下吧。首先我們先打開要查看埠的Linux的命令操作界面,
本文章基於ThinkpadE15品牌、centos7系統撰寫的。
⑷ linux如何查看埠號
1、列出所有埠 #netstat -a
2、列出所有 tcp 埠 #netstat -at
3、列出所有 udp 埠 #netstat -au
4、只顯示監聽埠 #netstat -l
5、只列出所有監聽 tcp 埠 #netstat -lt
6、只列出所有監聽 udp 埠 #netstat -lu
7、列出所有監聽 UNIX 埠 #netstat -lx
8、顯示所有埠的統計信息 #netstat -s
9、顯示 TCP 或 UDP 埠的統計信息 #netstat -st 或 -su
10、 輸出中顯示 PID 和進程名稱 #netstat -p
11、netstat 輸出中不顯示主機,埠和用戶名 (host, port or user)
⑸ linux查看運行的埠命令
一、使用 netstat 檢查埠
netstat 是一個命令行工具,可以提供有關網路連接的信息。
要列出正在偵聽的所有 TCP 或 UDP 埠,包括使用埠和套接字狀態的服務,請使用以下命令:
netstat -tunlp
此命令中使用的選項具有以下含義:
-t - 顯示 TCP 埠。
-u - 顯示 UDP 埠。
-n - 顯示數字地址而不是主機名。
-l - 僅顯示偵聽埠。
-p - 顯示進程的 PID 和名稱。僅當您以 root 或 sudo 用戶身份運行命令時,才會顯示此信息。
查詢指定埠通過grep過濾:
netstat -tnlp | grep :80
二、使用 ss 檢查埠
ss 是新的 netstat,命令選項大致相同。它缺少一些 netstat 功能,但暴露了更多的 TCP 狀態,而且速度稍快。《Linux就該這么學》 一起學習linux
使用示例:ss -tunlp
三、使用 lsof 檢查埠
lsof 是一個功能強大的命令行實用程序,它提供有關進程打開的文件的信息。
在 Linux 中,一切都是文件,可以將套接字視為寫入網路的文件。
要使用 lsof 獲取所有偵聽 TCP 埠的列表:
lsof -nP -iTCP -sTCP:LISTEN
使用的選項如下:
-n - 不要將埠號轉換為埠名稱。
-p - 不要解析主機名,顯示數字地址。
-iTCP -sTCP:LISTEN - 僅顯示 TCP 協議狀態為 LISTEN 的網路文件。
要查找正在偵聽特定埠(例如 3306)的進程,請使用以下命令:
sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
⑹ Linux查看埠是否被佔用的命令是什麼
Linux中如何查看8080埠是否被佔用?在Linux系統中,想要查看哪些埠被佔用可通過命令進行查詢,比如:lsof、netstat命令。其中netstat命令是最為常見的,本文將為大家重點介紹一下,不了解的小夥伴一定要認真看完!
輸入命令:netstat -tln | grep 8080,來查看8080埠情況,按回車執行。
Linux netstat命令用於顯示網路狀態。
利用netstat指令可讓你得知整個Linux系統的網路情況。
語法
netstat [-acCeFghilMnNoprstuvVwx][-A<網路類型>][--ip]
參數
-a或--all:顯示所有連線中的Socker。
-A<網路類型>或--<網路類型>:列出該網路類型連線中的相關地址。
-c或--continuous:持續列出網路狀態。
-C或--cache:顯示路由器配置的快取信息。
-e或--extend:顯示網路其他相關信息。
-F或--fib:顯示路由緩存。
-g或--groups:顯示多重廣播功能群組組員名單。
-h或--help:在線幫助。
-i或--interfaces:顯示網路界面信息表單。
-l或--listening:顯示監控中的伺服器的Socket。
-M或--masquerade:顯示偽裝的網路連線。
-n或--numeric:直接使用IP地址,而不通過域名伺服器。
-N或--netlink或--symbolic:顯示網路硬體外圍設備的符號連接名稱。
…………
參數較多,就不一一列舉了!
⑺ linux如何查看埠
x使用過程中,需要了解當前系統開放了哪些埠,並且要查看開放這些埠的具體進程和用戶,可以通過netstat命令進行簡單查詢
netstat命令各個參數說明如下:
-t : 指明顯示TCP埠
-u : 指明顯示UDP埠
-l : 僅顯示監聽套接字(所謂套接字就是使應用程序能夠讀寫與收發通訊協議(protocol)與資料的程序)
-p : 顯示進程標識符和程序名稱,每一個套接字/埠都屬於一個程序。
-n : 不進行DNS輪詢,顯示IP(可以加速操作)
即可顯示當前伺服器上所有埠及進程服務,於grep結合可查看某個具體埠及服務情況··
netstat -ntlp //查看當前所有tcp埠·
netstat -ntulp |grep 80 //查看所有80埠使用情況·
netstat -ntulp | grep 3306 //查看所有3306埠使用情況·
Linux查看程序埠佔用情況
使用命令:
ps -aux | grep tomcat
發現並沒有8080埠的Tomcat進程。
使用命令:netstat –apn
查看所有的進程和埠使用情況。發現下面的進程列表,其中最後一欄是PID/Program name
發現8080埠被PID為9658的java進程佔用。
進一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看
就可以明確知道8080埠是被哪個程序佔用了!然後判斷是否使用KILL命令幹掉!
方法二:直接使用 netstat -anp | grep portno
即:netstat -anp|grep 8080
netstat -anp|grep 8080 --> tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 28500/java
ps -aux | grep 28500 --> r/local/tomcat9-jforum/tomcat
安裝lsof list open files//---也可以 netstat -tunlp|grep 埠號 netstat -anp|grep 埠號
yum install lsof
lsof -i:8080 查看8080埠佔用
lsof abc.txt 顯示開啟文件abc.txt的進程
lsof -c abc 顯示abc進程現在打開的文件
lsof -c -p 1234 列出進程號為1234的進程所打開的文件
lsof -g gid 顯示歸屬gid的進程情況
lsof +d /usr/local/ 顯示目錄下被進程開啟的文件
lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用fd為4的進程
lsof -i 用以顯示符合條件的進程情況
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4地址
service --> /etc/service中的 service name (可以不止一個)
port --> 埠號 (可以不止一個)
lsof -i //顯示所有打開的埠
lsof -i:80 //顯示所有打開80埠的進程
lsof -i -U //顯示所有打開的埠和UNIX domain文件
其實我一般這樣用:
[root@VM_39_230_centos bin]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 16422 mysql 19u IPv6 148794 0t0 TCP *:mysql (LISTEN)
mysqld 16422 mysql 39u IPv6 643698 0t0 TCP localhost:mysql->localhost:36582 (ESTABLISHED)
mysqld 16422 mysql 45u IPv6 643699 0t0 TCP localhost:mysql->localhost:36584 (ESTABLISHED)
mysql
⑻ linux查看埠佔用情況
一、常用命令:
1,lsof -i埠號
2,netstat -tunlp|grep 埠號
這兩個命令都可以查看埠被什麼進程佔用。
二、lsof -i 需要 root 用戶的許可權來執行,如下圖:
三、netstat命令
netstat -tunlp用於顯示 tcp,udp 的埠和進程等相關情況。
netstat 查看埠佔用語法格式:
netstat -tunlp | grep 埠號
(8)netstat查看埠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
⑼ Linux netstat命令詳解
Netstat 命令用於顯示各種網路相關信息,如網路連接,路由表,介面狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
執行netstat後,其輸出結果為
從整體上看,netstat的輸出結果可以分為兩個部分:
一個是Active Internet connections,稱為有源TCP連接,其中"Recv-Q"和"Send-Q"指%0A的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟體包正在隊列中堆積。這種情況只能在非常少的情況見到。
另一個是Active UNIX domain sockets,稱為有源Unix域套介面(和網路套接字一樣,但是只能用於本機通信,性能可以提高一倍)。
Proto顯示連接使用的協議,RefCnt表示連接到本套介面上的進程號,Types顯示套介面的類型,State顯示套介面當前的狀態,Path表示連接到套介面的其它進程使用的路徑名。
-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
列出所有埠 netstat -a
列出所有 tcp 埠 netstat -at
列出所有 udp 埠 netstat -au
只顯示監聽埠 netstat -l
只列出所有監聽 tcp 埠 netstat -lt
只列出所有監聽 udp 埠 netstat -lu
只列出所有監聽 UNIX 埠 netstat -lx
顯示所有埠的統計信息 netstat -s
顯示 TCP 或 UDP 埠的統計信息 netstat -st 或 -su
netstat -p 可以與其它開關一起使用,就可以添加 「PID/進程名稱」 到 netstat 輸出中,這樣 debugging 的時候可以很方便的發現特定埠運行的程序。
當你不想讓主機,埠和用戶名顯示,使用 netstat -n。將會使用數字代替那些名稱。
同樣可以加速輸出,因為不用進行比對查詢。
如果只是不想讓這三個名稱中的一個被顯示,使用以下命令
netstat 將每隔一秒輸出網路信息。
在輸出的末尾,會有如下的信息
注意: 使用 netstat -rn 顯示數字格式,不查詢主機名稱。
並不是所有的進程都能找到,沒有許可權的會不顯示,使用 root 許可權查看所有的信息。
找出運行在指定埠的進程
顯示詳細信息,像是 ifconfig 使用 netstat -ie:
查看連接某服務埠最多的的IP地址
TCP各種狀態列表
⑽ linux系統下查看埠的佔用情況
在Linux系統中有時候會發生埠沖突,這就需要我們熟練的查看各個埠的佔用情況。那麼該如何操作呢?下面我給大家分享一下。
工具/材料
Linux Terminal
- 01
首先打開Linux系統,右鍵單擊桌面,選擇Open In Terminal選項,如下圖所示
- 02
接下來在終端輸入netstat -tunlp命令就可以列出所有的埠的使用情況,如下圖所示
- 03
如果想查某個埠的佔用情況則需要輸入命令netstat -tunlp|grep 埠號,如下圖所示
- 04
最後如果想關掉某個埠的佔用可以使用kill命令直接清除佔用埠的pid,如下圖所示