午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

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

6種查看Linux進程占用端口號的方法詳解

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

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

端口是 Linux 系統上特定進程之間邏輯連接的標識,包括物理端口和軟件端口。由于 Linux 操作系統是一個軟件,因此本文只討論軟件端口。軟件端口始終與主機的 IP 地址和相關的通信協議相關聯,因此端口常用于區分應用程序。大部分涉及到網絡的服務都必須打開一個套接字來監聽傳入的網絡請求,而每個服務都使用一個獨立的套接字。

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

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

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

# 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:可以用于轉儲套接字統計信息。

netstat:可以顯示打開的套接字列表。

lsof:可以列出打開的文件。

fuser:可以列出那些打開了文件的進程的進程 ID。

nmap:是網絡檢測工具和端口掃描程序。

systemctl:是 systemd 系統的控制管理器和服務管理器。

以下我們將找出 sshd 守護進程所使用的端口號。

方法 1:使用 ss 命令
ss 一般用于轉儲套接字統計信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態信息。

它還可以顯示所有類型的套接字統計信息,包括 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 能夠顯示網絡連接、路由表、接口統計信息、偽裝連接以及多播成員。

默認情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經過時了,一般會使用 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 能夠列出打開的文件,并列出系統上被進程打開的文件的相關信息。

# 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 工具會將本地系統上打開了文件的進程的進程 ID 顯示在標準輸出中。

# 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”)是一款用于網絡檢測和安全審計的開源工具。它最初用于對大型網絡進行快速掃描,但它對于單個主機的掃描也有很好的表現。

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

# 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 系統的控制管理器和服務管理器。它取代了舊的 SysV 初始化系統管理,目前大多數現代 Linux 操作系統都采用了 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

以上輸出的內容顯示了最近一次啟動 sshd 服務時 ssh 服務的監聽端口。但它不會將最新日志更新到輸出中。

# 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]

大部分情況下,以上的輸出不會顯示進程的實際端口號。這時更建議使用以下這個 journalctl 命令檢查日志文件中的詳細信息。

# 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進程占用端口號的6種方法至少要會其中的一種

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

端口是 Linux 系統上特定進程之間邏輯連接的標識,包括物理端口和軟件端口。由于 Linux 操作系統是一個軟件,因此本文只討論軟件端口。軟件端口始終與主機的 IP 地址和相關的通信協議相關聯,因此端口常用于區分應用程序。大部分涉及到網絡的服務都必須打開一個套接字來監聽傳入的網絡請求,而每個服務都使用一個獨立的套接字。

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

以下是端口分配類別:

0 - 1023: 常用端口和系統端口

1024 - 49151: 軟件的注冊端口

49152 - 65535: 動態端口或私有端口

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

# 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:可以用于轉儲套接字統計信息。

netstat:可以顯示打開的套接字列表。

lsof:可以列出打開的文件。

fuser:可以列出那些打開了文件的進程的進程 ID。

nmap:是網絡檢測工具和端口掃描程序。

systemctl:是 systemd 系統的控制管理器和服務管理器。

以下我們將找出 sshd 守護進程所使用的端口號。

方法 1:使用 ss 命令

ss 一般用于轉儲套接字統計信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態信息。

它還可以顯示所有類型的套接字統計信息,包括 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 能夠顯示網絡連接、路由表、接口統計信息、偽裝連接以及多播成員。

默認情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經過時了,一般會使用 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 能夠列出打開的文件,并列出系統上被進程打開的文件的相關信息。

# 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 工具會將本地系統上打開了文件的進程的進程 ID 顯示在標準輸出中。

# 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”)是一款用于網絡檢測和安全審計的開源工具。它最初用于對大型網絡進行快速掃描,但它對于單個主機的掃描也有很好的表現。

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

# 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 系統的控制管理器和服務管理器。它取代了舊的 SysV 初始化系統管理,目前大多數現代 Linux 操作系統都采用了 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

以上輸出的內容顯示了最近一次啟動 sshd 服務時 ssh 服務的監聽端口。但它不會將最新日志更新到輸出中。

# 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]

大部分情況下,以上的輸出不會顯示進程的實際端口號。這時更建議使用以下這個 journalctl 命令檢查日志文件中的詳細信息。

# 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進程占用端口號是我們系統管理員必會技能,以上6種查看LINUX系統進程已占用端口的命令大家至少要會其它一種

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

端口是 Linux 系統上特定進程之間邏輯連接的標識,包括物理端口和軟件端口。由于 Linux 操作系統是一個軟件,因此本文只討論軟件端口。軟件端口始終與主機的 IP 地址和相關的通信協議相關聯,因此端口常用于區分應用程序。大部分涉及到網絡的服務都必須打開一個套接字來監聽傳入的網絡請求,而每個服務都使用一個獨立的套接字。

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

以下是端口分配類別:

0 - 1023: 常用端口和系統端口

1024 - 49151: 軟件的注冊端口

49152 - 65535: 動態端口或私有端口

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

# 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:可以用于轉儲套接字統計信息。

netstat:可以顯示打開的套接字列表。

lsof:可以列出打開的文件。

fuser:可以列出那些打開了文件的進程的進程 ID。

nmap:是網絡檢測工具和端口掃描程序。

systemctl:是 systemd 系統的控制管理器和服務管理器。

以下我們將找出 sshd 守護進程所使用的端口號。

方法 1:使用 ss 命令

ss 一般用于轉儲套接字統計信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態信息。

它還可以顯示所有類型的套接字統計信息,包括 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 能夠顯示網絡連接、路由表、接口統計信息、偽裝連接以及多播成員。

默認情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經過時了,一般會使用 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 能夠列出打開的文件,并列出系統上被進程打開的文件的相關信息。

# 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 工具會將本地系統上打開了文件的進程的進程 ID 顯示在標準輸出中。

# 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”)是一款用于網絡檢測和安全審計的開源工具。它最初用于對大型網絡進行快速掃描,但它對于單個主機的掃描也有很好的表現。

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

# 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 系統的控制管理器和服務管理器。它取代了舊的 SysV 初始化系統管理,目前大多數現代 Linux 操作系統都采用了 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

以上輸出的內容顯示了最近一次啟動 sshd 服務時 ssh 服務的監聽端口。但它不會將最新日志更新到輸出中。

# 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]

大部分情況下,以上的輸出不會顯示進程的實際端口號。這時更建議使用以下這個 journalctl 命令檢查日志文件中的詳細信息。

# 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 系統管理員來說,清楚某個服務是否正確地綁定或監聽某個端口,是至關重要的。如果你需要處理端口相關的問題,這篇文章可能會對你有用。

端口是 Linux 系統上特定進程之間邏輯連接的標識,包括物理端口和軟件端口。由于 Linux 操作系統是一個軟件,因此本文只討論軟件端口。軟件端口始終與主機的 IP 地址和相關的通信協議相關聯,因此端口常用于區分應用程序。大部分涉及到網絡的服務都必須打開一個套接字來監聽傳入的網絡請求,而每個服務都使用一個獨立的套接字。

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

以下是端口分配類別:

0 - 1023: 常用端口和系統端口

1024 - 49151: 軟件的注冊端口

49152 - 65535: 動態端口或私有端口

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

# 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:可以用于轉儲套接字統計信息。

netstat:可以顯示打開的套接字列表。

lsof:可以列出打開的文件。

fuser:可以列出那些打開了文件的進程的進程 ID。

nmap:是網絡檢測工具和端口掃描程序。

systemctl:是 systemd 系統的控制管理器和服務管理器。

以下我們將找出 sshd 守護進程所使用的端口號。

方法 1:使用 ss 命令

ss 一般用于轉儲套接字統計信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態信息。

它還可以顯示所有類型的套接字統計信息,包括 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 能夠顯示網絡連接、路由表、接口統計信息、偽裝連接以及多播成員。

默認情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經過時了,一般會使用 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 能夠列出打開的文件,并列出系統上被進程打開的文件的相關信息。

# 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 工具會將本地系統上打開了文件的進程的進程 ID 顯示在標準輸出中。

# 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”)是一款用于網絡檢測和安全審計的開源工具。它最初用于對大型網絡進行快速掃描,但它對于單個主機的掃描也有很好的表現。

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

# 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 系統的控制管理器和服務管理器。它取代了舊的 SysV 初始化系統管理,目前大多數現代 Linux 操作系統都采用了 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

以上輸出的內容顯示了最近一次啟動 sshd 服務時 ssh 服務的監聽端口。但它不會將最新日志更新到輸出中。

# 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]

大部分情況下,以上的輸出不會顯示進程的實際端口號。這時更建議使用以下這個 journalctl 命令檢查日志文件中的詳細信息。

# 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 系統管理員來說,清楚某個服務是否正確地綁定或監聽某個端口,是至關重要的。如果你需要處理端口相關的問題,這篇文章可能會對你有用。

端口是 Linux 系統上特定進程之間邏輯連接的標識,包括物理端口和軟件端口。由于 Linux 操作系統是一個軟件,因此本文只討論軟件端口。軟件端口始終與主機的 IP 地址和相關的通信協議相關聯,因此端口常用于區分應用程序。大部分涉及到網絡的服務都必須打開一個套接字來監聽傳入的網絡請求,而每個服務都使用一個獨立的套接字。

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

以下是端口分配類別:

0 - 1023: 常用端口和系統端口

1024 - 49151: 軟件的注冊端口

49152 - 65535: 動態端口或私有端口

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

# 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:可以用于轉儲套接字統計信息。

netstat:可以顯示打開的套接字列表。

lsof:可以列出打開的文件。

fuser:可以列出那些打開了文件的進程的進程 ID。

nmap:是網絡檢測工具和端口掃描程序。

systemctl:是 systemd 系統的控制管理器和服務管理器。

以下我們將找出 sshd 守護進程所使用的端口號。

方法 1:使用 ss 命令

ss 一般用于轉儲套接字統計信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示更多的 TCP 信息和狀態信息。

它還可以顯示所有類型的套接字統計信息,包括 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 能夠顯示網絡連接、路由表、接口統計信息、偽裝連接以及多播成員。

默認情況下,netstat 會列出打開的套接字。如果不指定任何地址族,則會顯示所有已配置地址族的活動套接字。但 netstat 已經過時了,一般會使用 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 能夠列出打開的文件,并列出系統上被進程打開的文件的相關信息。

# 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 工具會將本地系統上打開了文件的進程的進程 ID 顯示在標準輸出中。

# 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”)是一款用于網絡檢測和安全審計的開源工具。它最初用于對大型網絡進行快速掃描,但它對于單個主機的掃描也有很好的表現。

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

# 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 系統的控制管理器和服務管理器。它取代了舊的 SysV 初始化系統管理,目前大多數現代 Linux 操作系統都采用了 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

以上輸出的內容顯示了最近一次啟動 sshd 服務時 ssh 服務的監聽端口。但它不會將最新日志更新到輸出中。

# 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]

大部分情況下,以上的輸出不會顯示進程的實際端口號。這時更建議使用以下這個 journalctl 命令檢查日志文件中的詳細信息。

# 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系統中進程占用端口號是我們系統管理員必須掌握的一項技能,以上查看進程端口的6種方法我們至少要會一種,希望大家熟練掌握這些內容

標簽:紅河 臨沂 股票 海口 四川 鎮江 岳陽 烏海

巨人網絡通訊聲明:本文標題《6種查看Linux進程占用端口號的方法詳解》,本文關鍵詞  6種,查看,Linux,進程,占用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《6種查看Linux進程占用端口號的方法詳解》相關的同類信息!
  • 本頁收集關于6種查看Linux進程占用端口號的方法詳解的相關信息資訊供網民參考!
  • 推薦文章
    成人免费黄色在线| 成年人网站免费视频| 可以免费看av的网址| 国产三级久久久| 久久久天堂国产精品女人| 97在线播放视频| 久久人人超碰| 精品无码久久久久久国产| 欧美亚洲黄色片| 日本免费在线观看视频| 精品福利在线看| 日韩在线播放视频| www.色就是色| 国产一区在线视频| 人妻少妇精品无码专区二区| 国产99久久久久| 国产精品久久久一区| 亚洲精品在线视频播放| 午夜在线视频免费| 国产亚洲欧美aaaa| 污视频网址在线观看| 国产成人免费高清| 午夜精品蜜臀一区二区三区免费| 亚洲视频 中文字幕| 99久久久国产精品免费蜜臀| 欧日韩在线观看| 性高潮久久久久久久| 中文字幕五月欧美| 欧美成人午夜视频| 插我舔内射18免费视频| 亚洲国产精品精华液ab| 成人情趣片在线观看免费| youjizz亚洲女人| 亚洲国产sm捆绑调教视频| 国产亚洲情侣一区二区无| 黄色污污网站在线观看| 欧美性淫爽ww久久久久无| 国产日本在线播放| 欧美videos大乳护士334| 亚洲免费黄色网| 一区二区高清在线| 17c丨国产丨精品视频| 91在线小视频| 中文字幕一区二区三区在线乱码| 91毛片在线观看| 欧美日韩福利在线| 亚洲精品日韩一| 9l视频白拍9色9l视频| 天堂av在线一区| 欧美乱妇40p| 天天躁夜夜躁狠狠是什么心态| 国产高清不卡一区| 亚洲综合在线中文字幕| 久草手机在线观看| 日韩黄色高清视频| 中文字幕一区久久| 国产免费成人在线视频| 精品久久久久久综合日本| 亚洲欧洲综合在线| 国外成人在线视频| 韩国av中文字幕| 亚洲欧美一区二区激情| mm131美女视频| 欧美日韩亚洲一区二区| av最新在线观看| 久久久国产一区| 你懂的国产在线| 欧美成人精品一区| 超碰97在线资源站| 欧美视频三区在线播放| 亚洲少妇中文字幕| 久久精品国产亚洲精品2020| 亚洲区 欧美区| 欧美日韩在线视频观看| 天天色综合天天色| 亚洲午夜精品在线| 国产91沈先生在线播放| 2017欧美狠狠色| 亚洲一二三区精品| 国产精品69久久久久水密桃| 日本在线免费观看一区| 蜜桃视频在线一区| 就去色蜜桃综合| 国产宾馆实践打屁股91| 亚洲国产精品毛片| 26uuu精品一区二区在线观看| 亚洲精品中文字幕乱码三区不卡| 91亚洲男人天堂| 五月天综合网| 91麻豆国产香蕉久久精品| 丁香婷婷综合激情| 亚洲欧美另类小说| av在线网址导航| 欧美性一二三区| 国产美女永久免费无遮挡| 亚洲精品白浆高清久久久久久| 99热在线观看精品| 日韩中文在线中文网在线观看| 九九热精彩视频| 欧美激情图片区| www.成人精品| 粉嫩精品一区二区三区在线观看 | 17婷婷久久www| 欧美视频一二区| 国产三区精品| 成人国产精品免费网站| 日韩国产美国| 亚洲欧洲日产国码二区| 亚洲欧美aaa| 欧美精品一区二| 国产一级片免费看| 日本亚洲欧洲色α| 久久国产麻豆精品| 黄色录像特级片| 欧美视频在线观看 亚洲欧| 中文字幕亚洲乱码| 欧美成人aa大片| 五月婷婷中文字幕| 国产主播精品在线| 久久se精品一区二区| 大西瓜av在线| 在线中文字幕一区二区| 一级黄色性视频| 欧美www在线| 久久综合狠狠| 加勒比成人在线| 精品久久久久久久久久久久久久| 亚洲天堂久久新| 中文字幕精品一区日韩| 精品国产人成亚洲区| 一区二区视频免费看| 欧美一级视频免费在线观看| 一区二区三区在线视频观看58| 欧美乱大交做爰xxxⅹ小说| 国产日韩欧美日韩| 精品午夜久久福利影院| 亚洲精品偷拍视频| 欧美亚洲综合一区| 亚洲色图欧美视频| 欧美日韩理论片| 欧美一区第一页| 亚洲另类在线视频| 亚洲精品1区2区3区| 国产精品日本精品| 男男视频亚洲欧美| 97国产在线播放| 91精品欧美一区二区三区综合在| 日韩欧美成人一区二区三区 | 免费黄色特级片| 欧美精品中文字幕一区| 国产精品伦一区二区三区| 欧美精彩一区二区三区| 亚洲欧美日韩国产一区二区三区| 亚洲高潮女人毛茸茸| 国产精品久久久亚洲| 成人激情校园春色| 黄色a一级视频| 国产精品久久久久久久久久久久| 久久久久国产精品人| 日本黄色网址大全| 国产精品久久久久久久午夜| 国产精品成人免费精品自在线观看| aaaaaav| 欧美激情三级免费| 国产一区二区三区四区在线观看| 91大神免费观看| 欧美黄色成人网| 成人福利电影精品一区二区在线观看| 在线免费看黄色片| 国产精品视频地址| 午夜不卡av在线| 三级av免费观看| 9.1国产丝袜在线观看| 不卡av在线网| 精品人伦一区二区| 国产呦系列欧美呦日韩呦| 色综合网站在线| 国产精品自拍电影| xxxx18hd亚洲hd捆绑| 中文字幕日韩精品在线| 91色乱码一区二区三区| 天天天天天天天天操| 色噜噜色狠狠狠狠狠综合色一| 精品国产一区二区亚洲人成毛片| 丰满人妻av一区二区三区| 午夜免费看毛片| 国产va免费精品高清在线| 亚洲午夜精品久久久久久久久| 91精品国产综合久久久蜜臀九色| 青草网在线观看| 亚洲视屏在线播放| 懂色av噜噜一区二区三区av| 中国极品少妇videossexhd| 亚洲综合日韩在线| 在线亚洲人成电影网站色www| 天天操天天干天天干| 午夜剧场免费看| 精品国产乱码久久久久久蜜柚| 亚洲成人久久久| 成人av电影免费在线播放| 欧美视频www| 国产小视频免费| 精品福利一二区| 成人免费视频视频在线观看免费 | 高清成人免费视频| 国产极品国产极品| 欧美爱爱视频网站| 久久中文字幕视频| 日本一区二区三区在线不卡| 久久97人妻无码一区二区三区| 日韩在线观看a| 91chinesevideo永久地址| 国产精品进线69影院| 国产乱码精品一区二区三区精东| 国产免费人做人爱午夜视频| 韩国美女主播一区| 91久久久免费一区二区| 五月婷婷激情在线| 男人的天堂官网| 青草全福视在线| 欧美一级大片视频| 91麻豆高清视频| 日本va欧美va国产激情| 亚洲精品永久视频| 亚洲精品欧美日韩专区| 亚洲国产婷婷香蕉久久久久久| 久久久综合九色合综国产精品| 懂色av蜜臀av粉嫩av喷吹| 中国特级黄色片| 日韩福利视频| 精品国产一区久久久| 婷婷丁香久久五月婷婷| 免费一级欧美片在线观看| 国产一级一片免费播放| 亚洲另类第一页| 免费成人在线观看av| 欧美国产日韩一区| 欧美日韩电影在线| 久久久欧美精品sm网站| 囯产精品久久久久久| 国产精品视频看看| 日本美女高潮视频| 777精品视频| 日韩国产精品一区| 亚洲夂夂婷婷色拍ww47| 久久久久久自在自线| 在线能看的av| 亚洲精品乱码久久久久久9色| 制服诱惑一区| 4hu四虎永久在线影院成人| 国产精品久久免费看| 日本伊人午夜精品| 波多野结衣绝顶大高潮| 午夜性福利视频| 国产高清不卡无码视频| 国产精品久久久91| 在线看日韩av| 91精品国产免费| xf在线a精品一区二区视频网站| 全部免费毛片在线播放一个| 久久机热这里只有精品| 国产综合内射日韩久| 日韩video| 国产伦理久久久| 欧美极品第一页| 91精品在线一区二区| 亚洲高清视频的网址| 国产亚洲精品bt天堂精选| 久久精品123| 国产区一区二区三| 一区二区三区影视| 日本一级大毛片a一| 男女午夜激情视频| www.亚洲成人网| 欧美男人的天堂| 国产精品伦子伦免费视频| 久久av.com| 亚洲三级av在线| 日韩欧美一级片| 欧美精品第1页| 日韩欧美中文在线| 欧美国产一区二区在线观看| 国产a精品视频| 激情欧美日韩一区二区| 午夜视频在线免费播放| 免费av中文字幕| 国产成人无码精品久在线观看| 国产免费久久久久| 女人十八毛片嫩草av| 久久久无码人妻精品一区| 风韵丰满熟妇啪啪区老熟熟女| 爆乳熟妇一区二区三区霸乳| 日韩成人三级视频| 精品国产一区二区三区无码| 亚洲乱码一区二区三区| 精品欧美一区二区在线观看视频| 国产精品久久久91| 国产欧美日韩91| 热99久久精品| 国产成人亚洲综合91精品| 性视频1819p久久| 国产91精品高潮白浆喷水| 午夜精品一区二区三区在线| 欧美精品久久一区二区| 久久大大胆人体| 久久亚洲精品国产亚洲老地址| 精品国模在线视频| 日韩中文字幕视频| 久久天天躁狠狠躁夜夜躁| 久久人体大胆视频| 欧美第一黄网免费网站| 久久久久一本一区二区青青蜜月| 91国内揄拍国内精品对白| 清纯唯美日韩制服另类| 国产精品夫妻激情| 91在线短视频| 精品亚洲欧美日韩| 日本精品一区二区| 精品一卡二卡三卡四卡日本乱码 | 久久精品一二三| 亚洲精品视频观看| 欧美日韩国产一区在线| 亚洲黄色尤物视频| 在线亚洲免费视频| 日韩免费看网站| 一本久久综合亚洲鲁鲁| 美女av一区二区| 欧美大成色www永久网站婷| 欧美美女18p| 国产成人精品视频在线| 亚洲97在线观看| 国产精品久久久久久久久久久久久久| 91免费国产视频| 成人动漫视频在线观看免费| 青青影院一区二区三区四区| 亚洲精品无人区| 999香蕉视频| 国产婷婷在线观看| 69xx绿帽三人行| 亚洲 小说区 图片区| 少妇荡乳情欲办公室456视频| 亚洲日本在线播放| 97se亚洲国产综合自在线不卡| 亚洲黄色av一区| 欧美精品第1页| 深夜福利一区二区| 国产精品wwwwww| 免费在线一区二区| 国产精品国产亚洲精品看不卡| 亚洲精品一二三四五区| 亚洲第九十七页| 黄色一级视频免费观看| 精品国精品国产自在久不卡| 国产精品中文欧美| **欧美大码日韩| 精品国产三级电影在线观看| 国产亚洲成av人片在线观看桃| 欧美肥婆姓交大片| 国产精品9999久久久久仙踪林| 日本一区二区三区四区高清视频| 草草久久久无码国产专区| 色网站在线视频| 久久亚洲AV成人无码国产野外 | 欧美激情高清视频| 韩国一区二区三区美女美女秀 | 欧美精品v国产精品v日韩精品| 日韩中文字幕在线视频播放| 91精品久久久久久久久久| 亚洲天堂第一区| 蜜桃视频无码区在线观看| 全部毛片永久免费看| 免费在线观看成人| 亚洲图片欧美视频| 一区二区三区 在线观看视| 91手机视频在线观看| 欧美 日韩精品| 99久久人妻无码精品系列| 波多野结衣一本一道| av亚洲精华国产精华| 欧美色综合网站| 韩日精品中文字幕| 日本一区视频在线| 红桃视频一区二区三区免费| 自拍偷拍校园春色| 成人福利在线看| 欧美日韩mp4| 久久999免费视频| 国产欧美一区二区三区另类精品 | 夜夜爽8888| 成人网男人的天堂| 欧美精品在欧美一区二区少妇| 久久成年人免费电影| 亚洲精品电影在线一区| 九九精品久久久| 久久午夜鲁丝片| 91麻豆免费观看| 日韩精品视频在线播放| 国产免费一区| 日本亚洲一区二区三区| 97免费观看视频| 欧美激情在线一区二区三区| 精品美女被调教视频大全网站| 91美女高潮出水| 免费一级特黄录像| 97人妻一区二区精品视频| 国产精品卡一卡二| 亚洲人成电影网站色xx| 国产日韩在线视频| 久草福利在线观看| 成人午夜免费在线观看|