Linux 端口详解:工作原理、查看方法及安全管理

阅读:24 2025-02-24

在 Linux 系统中,端口(Port)是网络通信的重要组成部分,所有的网络服务(如 HTTP、SSH、FTP)都依赖端口进行数据传输。正确理解和管理端口对服务器的安全性和性能至关重要。本文将详细介绍 Linux 端口的概念、分类、常用端口、查看和管理方法,以及如何优化端口安全性。


634aad92e8ceb17ffe164fdfe0bc3557.png

一、什么是端口?

端口是计算机与外部通信的 逻辑通道,用于区分同一 IP 地址上的不同服务。每个端口由 16 位整数(0~65535) 表示,其中不同端口号对应不同的网络服务。

例如:

  • 80 端口 —— HTTP(网页服务)

  • 22 端口 —— SSH(远程登录)

  • 443 端口 —— HTTPS(加密网页服务)


二、Linux 端口分类

Linux 端口按 端口号范围传输协议 进行分类。

1. 按端口号范围分类

端口范围描述
0-1023(知名端口,Well-Known Ports)系统端口,常用于标准服务(如 HTTP、SSH、FTP)
1024-49151(注册端口,Registered Ports)用户端口,应用程序可申请使用
49152-65535(动态端口,Dynamic Ports)临时端口,通常由系统动态分配给客户端

2. 按传输协议分类

协议描述
TCP(传输控制协议)面向连接,可靠传输(如 HTTP、SSH)
UDP(用户数据报协议)无连接,快速传输(如 DNS、视频流)

三、常见 Linux 端口及用途

端口号服务说明
20、21FTP文件传输协议
22SSH远程登录
25SMTP发送邮件
53DNS域名解析
80HTTP网页服务
110POP3接收邮件
143IMAP邮件同步
443HTTPS加密网页
3306MySQL数据库
6379Redis缓存数据库
27017MongoDBNoSQL 数据库

四、如何查看 Linux 端口占用情况?

1. 使用 netstat 命令

netstat -tulnp
  • -t:显示 TCP 端口

  • -u:显示 UDP 端口

  • -l:显示监听中的端口

  • -n:以数字方式显示端口

  • -p:显示相关进程

示例输出:

Proto Recv-Q Send-Q Local Address  Foreign Address State       PID/Program name
tcp   0      0    0.0.0.0:22       0.0.0.0:*       LISTEN      1234/sshd
tcp   0      0    0.0.0.0:80       0.0.0.0:*       LISTEN      2345/nginx

2. 使用 ss 命令

ssnetstat 的替代工具,更高效:

ss -tulnp

3. 使用 lsof 命令

lsof -i :80

查看占用 80 端口的进程。

4. 使用 nmap 扫描端口

nmap -p 1-65535 localhost

扫描本机所有端口,需安装 nmap 工具。


五、如何管理 Linux 端口?

1. 开启或关闭端口

使用 firewalldiptables 管理端口。

(1)Firewalld

查看开放端口:

firewall-cmd --list-ports

开放 8080 端口:

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

关闭 8080 端口:

firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload

(2)iptables

开放 8080 端口:

iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart

关闭 8080 端口:

iptables -D INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart

2. 杀死占用端口的进程

如果发现某个端口被占用,可以通过 kill 终止进程:

fuser -k 8080/tcp

或者:

kill -9 $(lsof -t -i:8080)

六、Linux 端口安全管理

1. 关闭不必要的端口
使用 netstat -tulnp 查看不需要的端口,并关闭相关服务:

systemctl stop 服务名
systemctl disable 服务名

2. 限制 SSH 端口
默认 SSH 运行在 22 端口,可修改 /etc/ssh/sshd_config

Port 2222

然后重启 SSH:

systemctl restart sshd

3. 使用 fail2ban 防止暴力破解

yum install fail2ban -y
systemctl start fail2ban

4. 使用 UFW 管理端口(Ubuntu)

ufw allow 22/tcp   # 允许 SSHufw allow 80/tcp   # 允许 HTTPufw deny 3306/tcp  # 禁止远程 MySQLufw enable         # 启用 UFW

七、总结

🔹 端口是 Linux 服务器上进行网络通信的重要通道,分为 知名端口(0-1023)注册端口(1024-49151)动态端口(49152-65535)
🔹 常见端口包括 22(SSH)、80(HTTP)、443(HTTPS)、3306(MySQL) 等。
🔹 可以使用 netstat、ss、lsof、nmap 等工具查看端口占用情况。
🔹 通过 firewalld、iptables、UFW 管理端口,提高服务器安全性。
🔹 关闭不必要的端口、修改 SSH 端口、使用 fail2ban 等措施 可增强服务器防护。

掌握 Linux 端口管理,可以有效优化服务器性能并提高安全性!🚀


声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!