端口基础概念
-
端口作用
- 端口是0-65535的数字标识,与IP地址共同组成套接字(Socket),实现精准通信。
- 知名端口(0-1023):预留给系统关键服务(如SSH、HTTP)。
- 注册端口(1024-49151):分配给用户级应用(如MySQL默认3306)。
- 动态端口(49152-65535):临时分配给客户端程序。
-
通信流程
当用户访问http://example.com
时:浏览器通过DNS解析IP → 请求发送到服务器80端口 → Web服务(如Nginx)响应请求。
Linux常见端口及服务对照表
端口 | 协议 | 服务 | 用途说明 |
---|---|---|---|
22 | TCP | SSH | 安全远程管理服务器 |
80 | TCP | HTTP | 网页传输(未加密) |
443 | TCP | HTTPS | 加密网页传输(SSL/TLS) |
21 | TCP | FTP | 文件传输(控制连接) |
3306 | TCP | MySQL | 数据库服务 |
53 | TCP/UDP | DNS | 域名解析服务 |
25 | TCP | SMTP | 邮件发送 |
6379 | TCP | Redis | 内存数据库服务 |
注意:修改默认端口可减少自动化攻击(如将SSH从22改为非标准端口)。
查看端口使用情况的4种方法
-
netstat
命令(经典工具)netstat -tuln # 查看所有监听端口(-t: TCP, -u: UDP, -l: 监听中, -n: 数字格式)
输出示例:
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
→ 表示443端口被监听 -
ss
命令(netstat
的替代品,更高效)ss -tuln # 参数含义同netstat
-
lsof
命令(查看进程占用的端口)lsof -i :80 # 检查80端口被哪个进程使用
-
nmap
扫描(检测开放端口)nmap -sT 127.0.0.1 # 扫描本机开放端口(需安装nmap)
端口配置与管理实战
通过防火墙控制端口
-
firewalld(CentOS/RHEL)
firewall-cmd --zone=public --add-port=8080/tcp --permanent # 开放8080端口 firewall-cmd --reload # 重载配置
-
ufw(Ubuntu/Debian)
ufw allow 22/tcp # 允许SSH ufw deny 3306 # 拒绝MySQL外部访问
服务配置文件修改端口
-
修改SSH端口:
编辑/etc/ssh/sshd_config
:Port 2222 # 将22改为2222
重启服务:
systemctl restart sshd
-
修改Nginx端口:
编辑/etc/nginx/sites-enabled/default
:server { listen 8080; # 将80改为8080 }
重启服务:
systemctl restart nginx
端口安全加固指南
-
最小化开放原则
仅开放必要端口,如Web服务器只需80/443,数据库端口禁止公网访问。
-
防火墙策略
- 使用
fail2ban
自动屏蔽暴力破解IP:apt install fail2ban # Ubuntu systemctl enable fail2ban
- 使用
-
端口隐藏技巧
- 通过端口敲门(Port Knocking) 动态开启端口:
示例:连续访问特定序列端口(如1000→2000→3000)才开放SSH。
- 通过端口敲门(Port Knocking) 动态开启端口:
-
定期扫描检测
- 用
lynis
进行安全审计:lynis audit system
- 用
常见问题排查
-
端口冲突:
若启动服务报错Address already in use
:ss -tulnp | grep :80 # 找出占用80端口的进程 kill -9 <PID> # 结束进程
-
连接超时:
检查防火墙规则:firewall-cmd --list-all
或ufw status
。
端口管理是Linux服务器安全的基石,遵循“最小权限+深度防御”原则,结合防火墙与定期审计,可显著降低入侵风险。开放的每一个端口,都是通向服务器的一扇门——确保只留下必要的门,并牢牢上锁。
引用说明:
- 端口定义参考《TCP/IP详解 卷1:协议》(W. Richard Stevens)
- 安全建议基于CIS Linux安全基准(Center for Internet Security)
- 命令示例来自Linux man手册页(2025年最新版)
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7326.html