婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 6種查看Linux進(jìn)程占用端口號的方法詳解

6種查看Linux進(jìn)程占用端口號的方法詳解

熱門標(biāo)簽:地圖標(biāo)注需要提交啥資料入駐 臨汾電銷機(jī)器人費(fèi)用 七大洲地圖標(biāo)注 福州呼叫中心外呼系統(tǒng)哪家好 400電話申請找哪家公司 河南省鄭州市地圖標(biāo)注 地圖標(biāo)注w是什么方向 新鄉(xiāng)人工智能電話機(jī)器人加盟 昆明外呼系統(tǒng)

對于 Linux 系統(tǒng)管理員來說,清楚某個(gè)服務(wù)是否正確地綁定或監(jiān)聽某個(gè)端口,是至關(guān)重要的。如果你需要處理端口相關(guān)的問題,這篇文章可能會對你有用。

端口是 Linux 系統(tǒng)上特定進(jìn)程之間邏輯連接的標(biāo)識,包括物理端口和軟件端口。由于 Linux 操作系統(tǒng)是一個(gè)軟件,因此本文只討論軟件端口。軟件端口始終與主機(jī)的 IP 地址和相關(guān)的通信協(xié)議相關(guān)聯(lián),因此端口常用于區(qū)分應(yīng)用程序。大部分涉及到網(wǎng)絡(luò)的服務(wù)都必須打開一個(gè)套接字來監(jiān)聽傳入的網(wǎng)絡(luò)請求,而每個(gè)服務(wù)都使用一個(gè)獨(dú)立的套接字。

套接字是和 IP 地址、軟件端口和協(xié)議結(jié)合起來使用的,而端口號對傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)協(xié)議都適用,TCP 和 UDP 都可以使用 0 到 65535 之間的端口號進(jìn)行通信。

以下是端口分配類別:
0 - 1023: 常用端口和系統(tǒng)端口
1024 - 49151: 軟件的注冊端口
49152 - 65535: 動態(tài)端口或私有端口

在 Linux 上的 /etc/services 文件可以查看到更多關(guān)于保留端口的信息。

# less /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
# http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name port/protocol [aliases ...] [# comment]
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp # message send protocol (historic)
msp 18/udp # message send protocol (historic)
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
telnet 23/udp
# 24 - private mail system
lmtp 24/tcp # LMTP Mail Delivery
lmtp 24/udp # LMTP Mail Delivery

可以使用以下六種方法查看端口信息。

ss:可以用于轉(zhuǎn)儲套接字統(tǒng)計(jì)信息。

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)計(jì)信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態(tài)信息。

它還可以顯示所有類型的套接字統(tǒng)計(jì)信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

也可以使用端口號來檢查。

# ss -tnlp | grep ":22"
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

方法 2:使用 netstat 命令

netstat 能夠顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)信息、偽裝連接以及多播成員。

默認(rèn)情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經(jīng)過時(shí)了,一般會使用 ss 來替代。

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* LISTEN 997/sshd

也可以使用端口號來檢查。

# netstat -tnlp | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd
tcp6 0 0 :::22 :::* LISTEN 1208/sshd

方法 3:使用 lsof 命令

lsof 能夠列出打開的文件,并列出系統(tǒng)上被進(jìn)程打開的文件的相關(guān)信息。

# lsof -i -P | grep ssh
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 11584 root 3u IPv4 27625 0t0 TCP *:22 (LISTEN)
sshd 11584 root 4u IPv6 27627 0t0 TCP *:22 (LISTEN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (ESTABLISHED)

也可以使用端口號來檢查。

# 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
 USER PID ACCESS COMMAND
22/tcp: root 1208 F.... sshd
 root 12388 F.... sshd
 root 49339 F.... sshd

方法 5:使用 nmap 命令

nmap(“Network Mapper”)是一款用于網(wǎng)絡(luò)檢測和安全審計(jì)的開源工具。它最初用于對大型網(wǎng)絡(luò)進(jìn)行快速掃描,但它對于單個(gè)主機(jī)的掃描也有很好的表現(xiàn)。

nmap 使用原始 IP 數(shù)據(jù)包來確定網(wǎng)絡(luò)上可用的主機(jī),這些主機(jī)的服務(wù)(包括應(yīng)用程序名稱和版本)、主機(jī)運(yùn)行的操作系統(tǒng)(包括操作系統(tǒng)版本等信息)、正在使用的數(shù)據(jù)包過濾器或防火墻的類型,以及很多其它信息。

# nmap -sV -p 22 localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2018-09-23 12:36 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.44 seconds

方法 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 ssh2

以上輸出的內(nèi)容顯示了最近一次啟動 sshd 服務(wù)時(shí) 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 ssh2
Sep 23 12:50:39 vps.2daygeek.com sshd[23909]: Failed password for invalid user pi from 95.210.113.142 port 51666 ssh2
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)程的實(shí)際端口號。這時(shí)更建議使用以下這個(gè) journalctl 命令檢查日志文件中的詳細(xì)信息。

# journalctl | grep -i "openssh\|sshd"
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[997]: Received signal 15; terminating.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Stopping OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Starting OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on 0.0.0.0 port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on :: port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Started OpenSSH server daemon.

查看服務(wù)器占用端口是我們系統(tǒng)管理員必須掌握的技能,以上查看Linux進(jìn)程占用端口號的6種方法至少要會其中的一種

對于 Linux 系統(tǒng)管理員來說,清楚某個(gè)服務(wù)是否正確地綁定或監(jiān)聽某個(gè)端口,是至關(guān)重要的。如果你需要處理端口相關(guān)的問題,這篇文章可能會對你有用。

端口是 Linux 系統(tǒng)上特定進(jìn)程之間邏輯連接的標(biāo)識,包括物理端口和軟件端口。由于 Linux 操作系統(tǒng)是一個(gè)軟件,因此本文只討論軟件端口。軟件端口始終與主機(jī)的 IP 地址和相關(guān)的通信協(xié)議相關(guān)聯(lián),因此端口常用于區(qū)分應(yīng)用程序。大部分涉及到網(wǎng)絡(luò)的服務(wù)都必須打開一個(gè)套接字來監(jiān)聽傳入的網(wǎng)絡(luò)請求,而每個(gè)服務(wù)都使用一個(gè)獨(dú)立的套接字。

套接字是和 IP 地址、軟件端口和協(xié)議結(jié)合起來使用的,而端口號對傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)協(xié)議都適用,TCP 和 UDP 都可以使用 0 到 65535 之間的端口號進(jìn)行通信。

以下是端口分配類別:

0 - 1023: 常用端口和系統(tǒng)端口

1024 - 49151: 軟件的注冊端口

49152 - 65535: 動態(tài)端口或私有端口

在 Linux 上的 /etc/services 文件可以查看到更多關(guān)于保留端口的信息。

# less /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
# http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name port/protocol [aliases ...] [# comment]
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp # message send protocol (historic)
msp 18/udp # message send protocol (historic)
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
telnet 23/udp
# 24 - private mail system
lmtp 24/tcp # LMTP Mail Delivery
lmtp 24/udp # LMTP Mail Delivery

可以使用以下六種方法查看端口信息。

ss:可以用于轉(zhuǎn)儲套接字統(tǒng)計(jì)信息。

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)計(jì)信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態(tài)信息。

它還可以顯示所有類型的套接字統(tǒng)計(jì)信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

也可以使用端口號來檢查。

# ss -tnlp | grep ":22"
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

方法 2:使用 netstat 命令

netstat 能夠顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)信息、偽裝連接以及多播成員。

默認(rèn)情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經(jīng)過時(shí)了,一般會使用 ss 來替代。

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* LISTEN 997/sshd

也可以使用端口號來檢查。

# netstat -tnlp | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd
tcp6 0 0 :::22 :::* LISTEN 1208/sshd

方法 3:使用 lsof 命令

lsof 能夠列出打開的文件,并列出系統(tǒng)上被進(jìn)程打開的文件的相關(guān)信息。

# lsof -i -P | grep ssh
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 11584 root 3u IPv4 27625 0t0 TCP *:22 (LISTEN)
sshd 11584 root 4u IPv6 27627 0t0 TCP *:22 (LISTEN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (ESTABLISHED)

也可以使用端口號來檢查。

# 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
 USER PID ACCESS COMMAND
22/tcp: root 1208 F.... sshd
 root 12388 F.... sshd
 root 49339 F.... sshd

方法 5:使用 nmap 命令

nmap(“Network Mapper”)是一款用于網(wǎng)絡(luò)檢測和安全審計(jì)的開源工具。它最初用于對大型網(wǎng)絡(luò)進(jìn)行快速掃描,但它對于單個(gè)主機(jī)的掃描也有很好的表現(xiàn)。

nmap 使用原始 IP 數(shù)據(jù)包來確定網(wǎng)絡(luò)上可用的主機(jī),這些主機(jī)的服務(wù)(包括應(yīng)用程序名稱和版本)、主機(jī)運(yùn)行的操作系統(tǒng)(包括操作系統(tǒng)版本等信息)、正在使用的數(shù)據(jù)包過濾器或防火墻的類型,以及很多其它信息。

# nmap -sV -p 22 localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2018-09-23 12:36 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.44 seconds

方法 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 ssh2

以上輸出的內(nèi)容顯示了最近一次啟動 sshd 服務(wù)時(shí) 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 ssh2
Sep 23 12:50:39 vps.2daygeek.com sshd[23909]: Failed password for invalid user pi from 95.210.113.142 port 51666 ssh2
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)程的實(shí)際端口號。這時(shí)更建議使用以下這個(gè) journalctl 命令檢查日志文件中的詳細(xì)信息。

# journalctl | grep -i "openssh\|sshd"
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[997]: Received signal 15; terminating.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Stopping OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Starting OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on 0.0.0.0 port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on :: port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Started OpenSSH server daemon.

查看Linux進(jìn)程占用端口號是我們系統(tǒng)管理員必會技能,以上6種查看LINUX系統(tǒng)進(jìn)程已占用端口的命令大家至少要會其它一種

對于 Linux 系統(tǒng)管理員來說,清楚某個(gè)服務(wù)是否正確地綁定或監(jiān)聽某個(gè)端口,是至關(guān)重要的。如果你需要處理端口相關(guān)的問題,這篇文章可能會對你有用。

端口是 Linux 系統(tǒng)上特定進(jìn)程之間邏輯連接的標(biāo)識,包括物理端口和軟件端口。由于 Linux 操作系統(tǒng)是一個(gè)軟件,因此本文只討論軟件端口。軟件端口始終與主機(jī)的 IP 地址和相關(guān)的通信協(xié)議相關(guān)聯(lián),因此端口常用于區(qū)分應(yīng)用程序。大部分涉及到網(wǎng)絡(luò)的服務(wù)都必須打開一個(gè)套接字來監(jiān)聽傳入的網(wǎng)絡(luò)請求,而每個(gè)服務(wù)都使用一個(gè)獨(dú)立的套接字。

套接字是和 IP 地址、軟件端口和協(xié)議結(jié)合起來使用的,而端口號對傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)協(xié)議都適用,TCP 和 UDP 都可以使用 0 到 65535 之間的端口號進(jìn)行通信。

以下是端口分配類別:

0 - 1023: 常用端口和系統(tǒng)端口

1024 - 49151: 軟件的注冊端口

49152 - 65535: 動態(tài)端口或私有端口

在 Linux 上的 /etc/services 文件可以查看到更多關(guān)于保留端口的信息。

# less /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
# http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name port/protocol [aliases ...] [# comment]
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp # message send protocol (historic)
msp 18/udp # message send protocol (historic)
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
telnet 23/udp
# 24 - private mail system
lmtp 24/tcp # LMTP Mail Delivery
lmtp 24/udp # LMTP Mail Delivery

可以使用以下六種方法查看端口信息。

ss:可以用于轉(zhuǎn)儲套接字統(tǒng)計(jì)信息。

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)計(jì)信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態(tài)信息。

它還可以顯示所有類型的套接字統(tǒng)計(jì)信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

也可以使用端口號來檢查。

# ss -tnlp | grep ":22"
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

方法 2:使用 netstat 命令

netstat 能夠顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)信息、偽裝連接以及多播成員。

默認(rèn)情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經(jīng)過時(shí)了,一般會使用 ss 來替代。

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* LISTEN 997/sshd

也可以使用端口號來檢查。

# netstat -tnlp | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd
tcp6 0 0 :::22 :::* LISTEN 1208/sshd

方法 3:使用 lsof 命令

lsof 能夠列出打開的文件,并列出系統(tǒng)上被進(jìn)程打開的文件的相關(guān)信息。

# lsof -i -P | grep ssh
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 11584 root 3u IPv4 27625 0t0 TCP *:22 (LISTEN)
sshd 11584 root 4u IPv6 27627 0t0 TCP *:22 (LISTEN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (ESTABLISHED)

也可以使用端口號來檢查。

# 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
 USER PID ACCESS COMMAND
22/tcp: root 1208 F.... sshd
 root 12388 F.... sshd
 root 49339 F.... sshd

方法 5:使用 nmap 命令

nmap(“Network Mapper”)是一款用于網(wǎng)絡(luò)檢測和安全審計(jì)的開源工具。它最初用于對大型網(wǎng)絡(luò)進(jìn)行快速掃描,但它對于單個(gè)主機(jī)的掃描也有很好的表現(xiàn)。

nmap 使用原始 IP 數(shù)據(jù)包來確定網(wǎng)絡(luò)上可用的主機(jī),這些主機(jī)的服務(wù)(包括應(yīng)用程序名稱和版本)、主機(jī)運(yùn)行的操作系統(tǒng)(包括操作系統(tǒng)版本等信息)、正在使用的數(shù)據(jù)包過濾器或防火墻的類型,以及很多其它信息。

# nmap -sV -p 22 localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2018-09-23 12:36 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.44 seconds

方法 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 ssh2

以上輸出的內(nèi)容顯示了最近一次啟動 sshd 服務(wù)時(shí) 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 ssh2
Sep 23 12:50:39 vps.2daygeek.com sshd[23909]: Failed password for invalid user pi from 95.210.113.142 port 51666 ssh2
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)程的實(shí)際端口號。這時(shí)更建議使用以下這個(gè) journalctl 命令檢查日志文件中的詳細(xì)信息。

# journalctl | grep -i "openssh\|sshd"
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[997]: Received signal 15; terminating.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Stopping OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Starting OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on 0.0.0.0 port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on :: port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Started OpenSSH server daemon.

對于 Linux 系統(tǒng)管理員來說,清楚某個(gè)服務(wù)是否正確地綁定或監(jiān)聽某個(gè)端口,是至關(guān)重要的。如果你需要處理端口相關(guān)的問題,這篇文章可能會對你有用。

端口是 Linux 系統(tǒng)上特定進(jìn)程之間邏輯連接的標(biāo)識,包括物理端口和軟件端口。由于 Linux 操作系統(tǒng)是一個(gè)軟件,因此本文只討論軟件端口。軟件端口始終與主機(jī)的 IP 地址和相關(guān)的通信協(xié)議相關(guān)聯(lián),因此端口常用于區(qū)分應(yīng)用程序。大部分涉及到網(wǎng)絡(luò)的服務(wù)都必須打開一個(gè)套接字來監(jiān)聽傳入的網(wǎng)絡(luò)請求,而每個(gè)服務(wù)都使用一個(gè)獨(dú)立的套接字。

套接字是和 IP 地址、軟件端口和協(xié)議結(jié)合起來使用的,而端口號對傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)協(xié)議都適用,TCP 和 UDP 都可以使用 0 到 65535 之間的端口號進(jìn)行通信。

以下是端口分配類別:

0 - 1023: 常用端口和系統(tǒng)端口

1024 - 49151: 軟件的注冊端口

49152 - 65535: 動態(tài)端口或私有端口

在 Linux 上的 /etc/services 文件可以查看到更多關(guān)于保留端口的信息。

# less /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
# http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name port/protocol [aliases ...] [# comment]
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp # message send protocol (historic)
msp 18/udp # message send protocol (historic)
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
telnet 23/udp
# 24 - private mail system
lmtp 24/tcp # LMTP Mail Delivery
lmtp 24/udp # LMTP Mail Delivery

可以使用以下六種方法查看端口信息。

ss:可以用于轉(zhuǎn)儲套接字統(tǒng)計(jì)信息。

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)計(jì)信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態(tài)信息。

它還可以顯示所有類型的套接字統(tǒng)計(jì)信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

也可以使用端口號來檢查。

# ss -tnlp | grep ":22"
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

方法 2:使用 netstat 命令

netstat 能夠顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)信息、偽裝連接以及多播成員。

默認(rèn)情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經(jīng)過時(shí)了,一般會使用 ss 來替代。

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* LISTEN 997/sshd

也可以使用端口號來檢查。

# netstat -tnlp | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd
tcp6 0 0 :::22 :::* LISTEN 1208/sshd

方法 3:使用 lsof 命令

lsof 能夠列出打開的文件,并列出系統(tǒng)上被進(jìn)程打開的文件的相關(guān)信息。

# lsof -i -P | grep ssh
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 11584 root 3u IPv4 27625 0t0 TCP *:22 (LISTEN)
sshd 11584 root 4u IPv6 27627 0t0 TCP *:22 (LISTEN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (ESTABLISHED)

也可以使用端口號來檢查。

# 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
 USER PID ACCESS COMMAND
22/tcp: root 1208 F.... sshd
 root 12388 F.... sshd
 root 49339 F.... sshd

方法 5:使用 nmap 命令

nmap(“Network Mapper”)是一款用于網(wǎng)絡(luò)檢測和安全審計(jì)的開源工具。它最初用于對大型網(wǎng)絡(luò)進(jìn)行快速掃描,但它對于單個(gè)主機(jī)的掃描也有很好的表現(xiàn)。

nmap 使用原始 IP 數(shù)據(jù)包來確定網(wǎng)絡(luò)上可用的主機(jī),這些主機(jī)的服務(wù)(包括應(yīng)用程序名稱和版本)、主機(jī)運(yùn)行的操作系統(tǒng)(包括操作系統(tǒng)版本等信息)、正在使用的數(shù)據(jù)包過濾器或防火墻的類型,以及很多其它信息。

# nmap -sV -p 22 localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2018-09-23 12:36 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.44 seconds

方法 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 ssh2

以上輸出的內(nèi)容顯示了最近一次啟動 sshd 服務(wù)時(shí) 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 ssh2
Sep 23 12:50:39 vps.2daygeek.com sshd[23909]: Failed password for invalid user pi from 95.210.113.142 port 51666 ssh2
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)程的實(shí)際端口號。這時(shí)更建議使用以下這個(gè) journalctl 命令檢查日志文件中的詳細(xì)信息。

# journalctl | grep -i "openssh\|sshd"
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[997]: Received signal 15; terminating.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Stopping OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Starting OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on 0.0.0.0 port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on :: port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Started OpenSSH server daemon.

afd

對于 Linux 系統(tǒng)管理員來說,清楚某個(gè)服務(wù)是否正確地綁定或監(jiān)聽某個(gè)端口,是至關(guān)重要的。如果你需要處理端口相關(guān)的問題,這篇文章可能會對你有用。

端口是 Linux 系統(tǒng)上特定進(jìn)程之間邏輯連接的標(biāo)識,包括物理端口和軟件端口。由于 Linux 操作系統(tǒng)是一個(gè)軟件,因此本文只討論軟件端口。軟件端口始終與主機(jī)的 IP 地址和相關(guān)的通信協(xié)議相關(guān)聯(lián),因此端口常用于區(qū)分應(yīng)用程序。大部分涉及到網(wǎng)絡(luò)的服務(wù)都必須打開一個(gè)套接字來監(jiān)聽傳入的網(wǎng)絡(luò)請求,而每個(gè)服務(wù)都使用一個(gè)獨(dú)立的套接字。

套接字是和 IP 地址、軟件端口和協(xié)議結(jié)合起來使用的,而端口號對傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)協(xié)議都適用,TCP 和 UDP 都可以使用 0 到 65535 之間的端口號進(jìn)行通信。

以下是端口分配類別:

0 - 1023: 常用端口和系統(tǒng)端口

1024 - 49151: 軟件的注冊端口

49152 - 65535: 動態(tài)端口或私有端口

在 Linux 上的 /etc/services 文件可以查看到更多關(guān)于保留端口的信息。

# less /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
# http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name port/protocol [aliases ...] [# comment]
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp # message send protocol (historic)
msp 18/udp # message send protocol (historic)
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
telnet 23/udp
# 24 - private mail system
lmtp 24/tcp # LMTP Mail Delivery
lmtp 24/udp # LMTP Mail Delivery

可以使用以下六種方法查看端口信息。

ss:可以用于轉(zhuǎn)儲套接字統(tǒng)計(jì)信息。

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)計(jì)信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態(tài)信息。

它還可以顯示所有類型的套接字統(tǒng)計(jì)信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。

# ss -tnlp | grep ssh
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

也可以使用端口號來檢查。

# ss -tnlp | grep ":22"
LISTEN 0 128 *:22 *:* users:(("sshd",pid=997,fd=3))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=997,fd=4))

方法 2:使用 netstat 命令

netstat 能夠顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)信息、偽裝連接以及多播成員。

默認(rèn)情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經(jīng)過時(shí)了,一般會使用 ss 來替代。

# netstat -tnlp | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd
tcp6 0 0 :::22 :::* LISTEN 997/sshd

也可以使用端口號來檢查。

# netstat -tnlp | grep ":22"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd
tcp6 0 0 :::22 :::* LISTEN 1208/sshd

方法 3:使用 lsof 命令

lsof 能夠列出打開的文件,并列出系統(tǒng)上被進(jìn)程打開的文件的相關(guān)信息。

# lsof -i -P | grep ssh
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 11584 root 3u IPv4 27625 0t0 TCP *:22 (LISTEN)
sshd 11584 root 4u IPv6 27627 0t0 TCP *:22 (LISTEN)
sshd 11592 root 3u IPv4 27744 0t0 TCP vps.2daygeek.com:ssh->103.5.134.167:49902 (ESTABLISHED)

也可以使用端口號來檢查。

# 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
 USER PID ACCESS COMMAND
22/tcp: root 1208 F.... sshd
 root 12388 F.... sshd
 root 49339 F.... sshd

方法 5:使用 nmap 命令

nmap(“Network Mapper”)是一款用于網(wǎng)絡(luò)檢測和安全審計(jì)的開源工具。它最初用于對大型網(wǎng)絡(luò)進(jìn)行快速掃描,但它對于單個(gè)主機(jī)的掃描也有很好的表現(xiàn)。

nmap 使用原始 IP 數(shù)據(jù)包來確定網(wǎng)絡(luò)上可用的主機(jī),這些主機(jī)的服務(wù)(包括應(yīng)用程序名稱和版本)、主機(jī)運(yùn)行的操作系統(tǒng)(包括操作系統(tǒng)版本等信息)、正在使用的數(shù)據(jù)包過濾器或防火墻的類型,以及很多其它信息。

# nmap -sV -p 22 localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2018-09-23 12:36 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.44 seconds

方法 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 ssh2

以上輸出的內(nèi)容顯示了最近一次啟動 sshd 服務(wù)時(shí) 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 ssh2
Sep 23 12:50:39 vps.2daygeek.com sshd[23909]: Failed password for invalid user pi from 95.210.113.142 port 51666 ssh2
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)程的實(shí)際端口號。這時(shí)更建議使用以下這個(gè) journalctl 命令檢查日志文件中的詳細(xì)信息。

# journalctl | grep -i "openssh\|sshd"
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[997]: Received signal 15; terminating.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Stopping OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Starting OpenSSH server daemon...
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on 0.0.0.0 port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca sshd[11584]: Server listening on :: port 22.
Sep 23 02:08:56 vps138235.vps.ovh.ca systemd[1]: Started OpenSSH server daemon.

查看Linux系統(tǒng)中進(jìn)程占用端口號是我們系統(tǒng)管理員必須掌握的一項(xiàng)技能,以上查看進(jìn)程端口的6種方法我們至少要會一種,希望大家熟練掌握這些內(nèi)容

標(biāo)簽:紅河 臨沂 股票 四川 鎮(zhèn)江 岳陽 烏海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《6種查看Linux進(jìn)程占用端口號的方法詳解》,本文關(guān)鍵詞  6種,查看,Linux,進(jìn)程,占用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《6種查看Linux進(jìn)程占用端口號的方法詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于6種查看Linux進(jìn)程占用端口號的方法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美体内she精视频| 激情欧美一区二区三区在线观看| 激情综合五月婷婷| 国产欧美日韩在线看| 不卡欧美aaaaa| 九九视频精品免费| 久久99精品视频| 亚洲一区二区高清| 欧美一级理论性理论a| 91精品国产91综合久久蜜臀| 91在线视频在线| 高清shemale亚洲人妖| 经典三级在线一区| 首页国产丝袜综合| 亚洲午夜免费福利视频| 色综合久久88色综合天天免费| 日韩国产精品久久久| 亚洲二区在线观看| 伊人色综合久久天天| 最近日韩中文字幕| **性色生活片久久毛片| 成人av资源下载| 日本怡春院一区二区| 成人一道本在线| 国产91色综合久久免费分享| 欧美美女一区二区在线观看| 国产精品麻豆一区二区| 极品美女销魂一区二区三区| 3d成人h动漫网站入口| 中文字幕一区三区| 国产乱码精品一区二区三区av| 欧美三级电影一区| 成人免费一区二区三区视频| 国产美女视频一区| 欧美一级爆毛片| 亚洲午夜免费电影| 欧美性xxxxxxxx| 亚洲情趣在线观看| thepron国产精品| 国产亚洲精品bt天堂精选| 久久99国产精品麻豆| 日韩一区二区三区电影| 丝袜美腿亚洲一区| 欧美另类久久久品| 午夜激情久久久| 在线播放亚洲一区| 亚洲gay无套男同| 欧美图区在线视频| 夜夜精品浪潮av一区二区三区| gogogo免费视频观看亚洲一| 久久久久久9999| 麻豆极品一区二区三区| 欧美一区二区三区视频免费| 香蕉加勒比综合久久| 色综合久久88色综合天天免费| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产一区二区三区在线观看免费| 欧美日韩免费一区二区三区视频| 一区二区三区在线观看欧美| 一本大道综合伊人精品热热| 亚洲女人的天堂| 日本高清成人免费播放| 一区二区三区高清| 欧美酷刑日本凌虐凌虐| 蜜臀精品一区二区三区在线观看| 91精品国产综合久久精品| 麻豆传媒一区二区三区| 久久午夜老司机| 国产98色在线|日韩| 最新国产成人在线观看| 欧美伊人精品成人久久综合97| 天天色图综合网| 精品国产乱码91久久久久久网站| 久久精品国内一区二区三区| 欧美国产日本视频| 97se亚洲国产综合自在线观| 亚洲四区在线观看| 99精品一区二区三区| 亚洲精品久久久蜜桃| 91丨porny丨中文| 亚洲精品乱码久久久久久黑人 | 91精品蜜臀在线一区尤物| 一级女性全黄久久生活片免费| 欧美丰满美乳xxx高潮www| 精品一区二区av| 日韩一区欧美小说| 欧美一区二区三区的| 狠狠网亚洲精品| 中文字幕亚洲综合久久菠萝蜜| 精品视频全国免费看| 国产精品一区二区久久不卡 | 欧美美女bb生活片| 国产高清不卡一区| 亚洲欧美激情视频在线观看一区二区三区| 欧美日韩免费电影| 高清在线不卡av| 日韩国产欧美在线观看| 国产精品沙发午睡系列990531| 欧美日韩一级黄| 成人中文字幕合集| 久久精品久久精品| 亚洲一二三四区| 国产精品午夜在线| 日韩精品在线看片z| 91亚洲精品乱码久久久久久蜜桃| 美女高潮久久久| 亚洲免费色视频| 久久久久久97三级| 91精品国产综合久久久蜜臀图片| 波多野结衣中文字幕一区 | 亚洲国产一区在线观看| 国产色产综合产在线视频| 欧美日韩精品一区二区| 91丨porny丨首页| 国产成a人无v码亚洲福利| 日韩1区2区3区| 亚洲成人综合网站| 亚洲视频一区二区免费在线观看| 欧美成人精品福利| 欧美日韩中字一区| 91福利国产精品| www.日韩av| 成人av资源在线观看| 国产在线乱码一区二区三区| 日本不卡的三区四区五区| 亚洲一卡二卡三卡四卡| 亚洲精品第1页| 国产精品对白交换视频| 中文字幕免费不卡| 国产精品久久久99| **欧美大码日韩| 亚洲国产高清aⅴ视频| 欧美国产精品一区二区| 欧美成人aa大片| 日韩精品在线看片z| 91麻豆精品国产91久久久久久 | 免费成人美女在线观看.| 日日夜夜免费精品| 婷婷综合在线观看| 亚洲1区2区3区4区| 一区二区三区四区国产精品| 国产精品视频一二| 中文字幕制服丝袜成人av| 欧美韩国日本综合| 亚洲国产激情av| 亚洲欧美日韩电影| 亚洲欧美成人一区二区三区| av不卡一区二区三区| 成人动漫一区二区在线| 韩国v欧美v亚洲v日本v| 亚洲免费三区一区二区| 麻豆精品一二三| 一区二区三区免费网站| 亚洲欧美综合在线精品| 精品久久人人做人人爽| 成人午夜电影小说| 国产精品影音先锋| 豆国产96在线|亚洲| 国内外成人在线视频| 在线电影一区二区三区| 国产成人亚洲精品狼色在线| 亚洲国产综合91精品麻豆| 亚洲国产高清在线| 精品日韩在线一区| 欧美丝袜自拍制服另类| 亚洲免费观看高清完整版在线观看熊| 国产夜色精品一区二区av| 国产精品乱码一区二区三区软件 | 成人美女视频在线观看18| 激情文学综合网| 日韩久久精品一区| 欧美男人的天堂一二区| 91久久免费观看| 日韩中文欧美在线| 欧美性猛交xxxx乱大交退制版| 久久久久亚洲蜜桃| 欧美视频你懂的| 精品国产伦一区二区三区观看体验| 欧美一激情一区二区三区| 亚洲精品五月天| 久久久亚洲精品一区二区三区| 国产一区二区三区免费播放| 视频一区视频二区在线观看| 日本亚洲视频在线| 国产**成人网毛片九色| 97久久精品人人做人人爽50路| 欧美无砖专区一中文字| 日韩午夜精品电影| 国产女人水真多18毛片18精品视频| 亚洲精品va在线观看| 国模娜娜一区二区三区| 欧美午夜精品久久久久久孕妇 | 久久精品免视看| 日韩毛片视频在线看| 久久se这里有精品| 久久免费美女视频| 一区二区三区四区在线| 国产精品中文有码| 欧美日韩精品专区| 亚洲人123区|