完整教程:Linux怎么查看服务器开放和启用的端口

完整教程:Linux怎么查看服务器开放和启用的端口

在 Linux 系统中,可以通过以下方法查看 服务器开放和启用的端口。以下是详细的步骤和工具,适用于不同场景。

1. 使用 ss 查看开放的端口ss 是一个现代化工具,用于显示网络连接和监听的端口。

1.1 查看正在监听的端口运行以下命令:

bash

复制

ss -tuln

参数说明:

-t:显示 TCP 端口。-u:显示 UDP 端口。-l:仅显示监听的端口。-n:以数字形式显示端口号(不解析为服务名称)。示例输出:

apache

复制

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

tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*

tcp LISTEN 0 128 127.0.0.1:3306 0.0.0.0:*

udp UNCONN 0 0 0.0.0.0:123 0.0.0.0:*

解释:

0.0.0.0:22:表示所有网络接口上监听的 SSH 服务端口。127.0.0.1:3306:表示仅在本地监听的 MySQL 服务端口。2. 使用 netstat 查看开放的端口如果 ss 不可用,可以使用 netstat(部分系统需安装 net-tools 包)。

2.1 查看监听的端口运行以下命令:

bash

复制

netstat -tuln

参数说明:

-t:显示 TCP 端口。-u:显示 UDP 端口。-l:仅显示监听的端口。-n:以数字形式显示端口号。示例输出:

apache

复制

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

udp 0 0 0.0.0.0:123 0.0.0.0:*

2.2 安装 net-tools(如果未安装)在部分系统中,netstat 可能缺失,需要手动安装:

bash

复制

sudo apt install net-tools # Ubuntu/Debian 系

sudo yum install net-tools # CentOS/RHEL 系

3. 使用 lsof 查看开放的端口lsof 是一个强大的工具,可以查看与端口相关的进程。

3.1 查看监听的端口运行以下命令:

bash

复制

sudo lsof -i -P -n | grep LISTEN

参数说明:

-i:显示网络连接。-P:显示端口号,而不是服务名称。-n:避免解析域名,加快显示速度。示例输出:

apache

复制

sshd 1234 root 3u IPv4 123456 0t0 TCP *:22 (LISTEN)

mysqld 2345 mysql 10u IPv4 654321 0t0 TCP 127.0.0.1:3306 (LISTEN)

4. 使用 firewall-cmd 查看防火墙开放的端口如果服务器使用 Firewalld 作为防火墙,可以通过以下命令查看防火墙规则。

4.1 查看已开放的端口运行以下命令:

bash

复制

sudo firewall-cmd --list-ports

示例输出:

复制

22/tcp 80/tcp 443/tcp

表示 TCP 端口 22(SSH)、80(HTTP)、443(HTTPS)已开放。4.2 查看所有防火墙规则运行以下命令:

bash

复制

sudo firewall-cmd --list-all

示例输出:

yaml

复制

public (active)

target: default

icmp-block-inversion: no

interfaces: eth0

sources:

services: ssh http https

ports: 22/tcp 80/tcp 443/tcp

masquerade: no

forward-ports:

source-ports:

icmp-blocks:

rich rules:

4.3 开放新端口如果需要开放额外的端口(如 8080 TCP),可以运行:

bash

复制

sudo firewall-cmd --add-port=8080/tcp --permanent

sudo firewall-cmd --reload

5. 使用 iptables 查看防火墙规则如果服务器使用的是 iptables 防火墙,可以通过以下命令查看规则。

5.1 查看所有规则运行以下命令:

bash

复制

sudo iptables -L -n -v

示例输出:

apache

复制

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target prot opt in out source destination

100 5000 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

50 3000 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

5.2 开放新端口如果需要新增开放端口(如 8080 TCP),可以运行:

bash

复制

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

6. 使用 nmap 扫描本地开放端口nmap 是一个网络扫描工具,可以用于检查本地或远程服务器的开放端口。

6.1 安装 nmapbash

复制

sudo apt install nmap # Ubuntu/Debian 系

sudo yum install nmap # CentOS/RHEL 系

6.2 扫描本地开放端口运行以下命令:

bash

复制

sudo nmap -sT -p- 127.0.0.1

-sT:扫描 TCP 端口。-p-:扫描所有端口(1-65535)。示例输出:

复制

Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-16 10:00 UTC

Nmap scan report for localhost (127.0.0.1)

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

443/tcp open https

3306/tcp open mysql

7. 总结工具用途命令示例ss查看监听的端口ss -tulnnetstat查看监听的端口netstat -tulnlsof查看端口和相关进程`lsof -i -P -nfirewall-cmd查看防火墙开放的端口firewall-cmd --list-portsiptables查看防火墙规则iptables -L -n -vnmap扫描本地开放端口nmap -sT -p- 127.0.0.1通过以上方法,您可以轻松检查 Linux 服务器上开放和启用的端口,并根据需要调整防火墙规则或开放新端口。

相关阅读

9、dnf编年几点刷新
365bet在线娱

9、dnf编年几点刷新

📅 08-05 👁️ 4100
盘点十款免费观看电影电视剧的app
日博365网

盘点十款免费观看电影电视剧的app

📅 08-26 👁️ 8336
2016欧洲杯葡萄牙
365bet在线娱

2016欧洲杯葡萄牙

📅 07-15 👁️ 4315