共計 4482 個字符,預(yù)計需要花費 12 分鐘才能閱讀完成。
這篇文章主要介紹了 linux 中查看進(jìn)程端口命令是哪個的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 linux 中查看進(jìn)程端口命令是哪個文章都會有所收獲,下面我們一起來看看吧。
查看命令有:1、ss 命令,可查看進(jìn)程端口的占用情況,語法“ss -tnlp | grep 端口號”;2、netstat 命令,可顯示端口和進(jìn)程等相關(guān)情況,語法“netstat -tnlp | grep 端口號”;3、lsof 命令,可查看端口占用情況,語法“l(fā)sof -i tcp: 端口號”;4、fuser 命令,可查看端口占用情況,語法“fuser -v 端口號 /tcp”。
本教程操作環(huán)境:linux7.3 系統(tǒng)、Dell G3 電腦。
端口是 Linux 系統(tǒng)上特定進(jìn)程之間邏輯連接的標(biāo)識,包括物理端口和軟件端口。由于 Linux 操作系統(tǒng)是一個軟件,因此本文只討論軟件端口。軟件端口始終與主機的 IP 地址和相關(guān)的通信協(xié)議相關(guān)聯(lián),因此端口常用于區(qū)分應(yīng)用程序。大部分涉及到網(wǎng)絡(luò)的服務(wù)都必須打開一個套接字來監(jiān)聽傳入的網(wǎng)絡(luò)請求,而每個服務(wù)都使用一個獨立的套接字。
套接字是和 IP 地址、軟件端口和協(xié)議結(jié)合起來使用的,而端口號對傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP)協(xié)議都適用,TCP 和 UDP 都可以使用 0 到 65535 之間的端口號進(jìn)行通信。
以下是端口分配類別:
0 – 1023:常用端口和系統(tǒng)端口
1024 – 49151:軟件的注冊端口
49152 – 65535:動態(tài)端口或私有端口
可以使用以下六種方法查看進(jìn)程的端口信息
ss:可以用于轉(zhuǎn)儲套接字統(tǒng)計信息。
netstat:可以顯示打開的套接字列表。
lsof:可以列出打開的文件。
fuser:可以列出那些打開了文件的進(jìn)程的進(jìn)程 ID。
nmap:是網(wǎng)絡(luò)檢測工具和 端口掃描 程序。
systemctl:是 systemd 系統(tǒng)的控制管理器和服務(wù)管理器。
以下我們將找出 sshd 守護(hù)進(jìn)程所使用的端口號。
方法 1:使用 ss 命令
ss 一般用于轉(zhuǎn)儲套接字統(tǒng)計信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態(tài)信息。
它還可以顯示所有類型的套接字統(tǒng)計信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。
# ss -tnlp | grep ssh
也可以使用端口號來檢查。
# ss -tnlp | grep :22
方法 2:使用 netstat 命令
netstat 能夠顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計信息、偽裝連接以及多播成員。
默認(rèn)情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經(jīng)過時了,一般會使用 ss 來替代。
# netstat -tnlp | grep ssh
也可以使用端口號來檢查。
# netstat -tnlp | grep :22
方法 3:使用 lsof 命令
lsof 能夠列出打開的文件,并列出系統(tǒng)上被進(jìn)程打開的文件的相關(guān)信息。
# lsof -i -P | grep ssh
也可以使用端口號來檢查。
# lsof -i tcp:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1208 root 3u IPv4 20919 0t0 TCP *:ssh (LISTEN)
sshd 1208 root 4u IPv6 20921 0t0 TCP *:ssh (LISTEN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh- 103.5.134.167:49902 (ESTABLISHED)
方法 4:使用 fuser 命令
fuser 工具會將本地系統(tǒng)上打開了文件的進(jìn)程的進(jìn)程 ID 顯示在標(biāo)準(zhǔn)輸出中。
# fuser -v 22/tcp
方法 5:使用 nmap 命令
nmap(“Network Mapper”)是一款用于網(wǎng)絡(luò)檢測和安全審計的開源工具。它最初用于對大型網(wǎng)絡(luò)進(jìn)行快速掃描,但它對于單個主機的掃描也有很好的表現(xiàn)。
nmap 使用原始 IP 數(shù)據(jù)包來確定網(wǎng)絡(luò)上可用的主機,這些主機的服務(wù)(包括應(yīng)用程序名稱和版本)、主機運行的操作系統(tǒng)(包括操作系統(tǒng)版本等信息)、正在使用的數(shù)據(jù)包過濾器或防火墻的類型,以及很多其它信息。
# nmap -sV -p 22 localhost
方法 6:使用 systemctl 命令
systemctl 是 systemd 系統(tǒng)的控制管理器和服務(wù)管理器。它取代了舊的 SysV 初始化系統(tǒng)管理,目前大多數(shù)現(xiàn)代 Linux 操作系統(tǒng)都采用了 systemd。
# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2018-09-23 02:08:56 EDT; 6h 11min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 11584 (sshd)
CGroup: /system.slice/sshd.service
└─11584 /usr/sbin/sshd -D
Sep 23 02:08:56 vps.2daygeek.com systemd[1]: Starting OpenSSH server daemon...
Sep 23 02:08:56 vps.2daygeek.com sshd[11584]: Server listening on 0.0.0.0 port 22.
Sep 23 02:08:56 vps.2daygeek.com sshd[11584]: Server listening on :: port 22.
Sep 23 02:08:56 vps.2daygeek.com systemd[1]: Started OpenSSH server daemon.
Sep 23 02:09:15 vps.2daygeek.com sshd[11589]: Connection closed by 103.5.134.167 port 49899 [preauth]
Sep 23 02:09:41 vps.2daygeek.com sshd[11592]: Accepted password for root from 103.5.134.167 port 49902 ssh3
以上輸出的內(nèi)容顯示了最近一次啟動 sshd 服務(wù)時 ssh 服務(wù)的監(jiān)聽端口。但它不會將最新日志更新到輸出中。
# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-09-06 07:40:59 IST; 2 weeks 3 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1208 (sshd)
CGroup: /system.slice/sshd.service
├─ 1208 /usr/sbin/sshd -D
├─23951 sshd: [accepted]
└─23952 sshd: [net]
Sep 23 12:50:36 vps.2daygeek.com sshd[23909]: Invalid user pi from 95.210.113.142 port 51666
Sep 23 12:50:36 vps.2daygeek.com sshd[23909]: input_userauth_request: invalid user pi [preauth]
Sep 23 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): check pass; user unknown
Sep 23 12:50:37 vps.2daygeek.com sshd[23911]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
Sep 23 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): check pass; user unknown
Sep 23 12:50:37 vps.2daygeek.com sshd[23909]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=95.210.113.142
Sep 23 12:50:39 vps.2daygeek.com sshd[23911]: Failed password for invalid user pi from 95.210.113.142 port 51670 ssh3
Sep 23 12:50:39 vps.2daygeek.com sshd[23909]: Failed password for invalid user pi from 95.210.113.142 port 51666 ssh3
Sep 23 12:50:40 vps.2daygeek.com sshd[23911]: Connection closed by 95.210.113.142 port 51670 [preauth]
Sep 23 12:50:40 vps.2daygeek.com sshd[23909]: Connection closed by 95.210.113.142 port 51666 [preauth]
大部分情況下,以上的輸出不會顯示進(jìn)程的實際端口號。這時更建議使用以下這個 journalctl 命令檢查日志文件中的詳細(xì)信息。
# journalctl | grep -i openssh\|sshd
關(guān)于“l(fā)inux 中查看進(jìn)程端口命令是哪個”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“l(fā)inux 中查看進(jìn)程端口命令是哪個”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。