linux系统,常见端口介绍

在 Linux 系统中,端口(Port)是网络通信的逻辑通道,范围从 0 到 65535 。其中 0--1023 被称为 "知名端口"(Well-Known Ports) ,通常由系统服务使用,需要 root 权限才能绑定。

下面列出 Linux 环境中最常见、最实用的端口及其作用,按类别分类,便于理解和运维。


🔑 一、系统与基础服务端口

端口 协议 服务/用途 说明
22 TCP SSH(Secure Shell) 远程登录、文件传输(scp/sftp),Linux 最重要的管理端口
23 TCP Telnet 明文远程登录(不安全,已淘汰
53 TCP/UDP DNS(Domain Name System) 域名解析,UDP 用于查询,TCP 用于区域传输
123 UDP NTP(Network Time Protocol) 时间同步(如 chronyntpd
161/162 UDP SNMP(Simple Network Management Protocol) 网络设备监控(161 查询,162 告警)

🌐 二、Web 与 HTTP 相关端口

端口 协议 服务/用途 说明
80 TCP HTTP 标准 Web 服务(明文)
443 TCP HTTPS 加密 Web 服务(SSL/TLS)
8080 TCP HTTP 代理 / 备用 Web 端口 常用于开发测试、反向代理后端(如 Tomcat、Gunicorn)
8443 TCP HTTPS 备用端口 常用于管理界面(如 Jenkins、Kubernetes Dashboard)
3000 TCP 开发服务器常用端口 Node.js(Express)、Grafana 默认端口
5000 TCP Flask 开发默认端口 Python Flask 应用常用
8000 TCP Django / Gunicorn / FastAPI Python Web 框架常用部署端口

💡 提示:80/443 是浏览器默认端口,访问 http://example.com 实际是 :80,无需写端口。


🗄️ 三、数据库端口

端口 数据库 协议 说明
3306 MySQL / MariaDB TCP 最流行的开源关系型数据库
5432 PostgreSQL TCP 高级开源关系型数据库
27017 MongoDB TCP NoSQL 文档数据库
6379 Redis TCP 内存键值存储(缓存/消息队列)
9200 Elasticsearch TCP 分布式搜索与分析引擎(REST API)
11211 Memcached TCP/UDP 分布式内存对象缓存系统

📦 四、应用与中间件端口

端口 服务 用途
2181 ZooKeeper 分布式协调服务(Kafka/Hadoop 依赖)
9092 Kafka 消息队列 broker 端口
8081 Nexus / Artifactory 私有 Maven/PyPI 仓库
9000 Portainer / MinIO Docker 可视化管理 / 对象存储
8888 Jupyter Notebook 数据科学交互式开发环境
25 / 465 / 587 SMTP 邮件发送服务(25 明文,465/587 加密)
110 / 995 POP3 邮件接收(110 明文,995 SSL)
143 / 993 IMAP 邮件同步协议(143 明文,993 SSL)

🛠️ 五、监控与可观测性端口

端口 服务 用途
9090 Prometheus 时序数据库 + 监控服务
9100 Node Exporter 主机指标采集器(CPU/内存/磁盘等)
3000 Grafana 可视化仪表盘(常与 Prometheus 配合)
3100 Loki 日志聚合系统(Grafana Labs)
7946 Docker Swarm 容器集群管理通信
9093 Alertmanager Prometheus 告警路由服务

🔒 六、安全与防火墙相关

端口 用途
所有非标准端口 建议在生产环境中限制访问源 IP(如只允许办公网段访问 22、3306)
0.0.0.0 vs 127.0.0.1
  • 0.0.0.0:8000 → 所有网络接口可访问(公网暴露!
  • 127.0.0.1:8000 → 仅本机可访问(更安全,配合 Nginx 反向代理) |

🧪 七、如何查看当前监听的端口?

1. 查看所有监听端口

bash 复制代码
ss -tuln
# 或
netstat -tuln

2. 查看某端口被哪个进程占用

perl 复制代码
sudo lsof -i :8000
# 或
sudo ss -tulnp | grep :8000

3. 测试端口是否可达(本地)

arduino 复制代码
curl http://127.0.0.1:8000
telnet 127.0.0.1 8000

4. 测试远程端口连通性(从本地电脑)

yaml 复制代码
telnet your-ecs-ip 8000
# 或
nc -zv your-ecs-ip 8000

🛡️ 八、安全建议(生产环境)

  1. 最小开放原则:只开放必要端口(如 Web 服务开 80/443,管理开 22)

  2. 限制来源 IP

    • SSH(22)只允许公司/家庭 IP
    • 数据库(3306)只允许应用服务器 IP
  3. 避免直接暴露应用端口

    • 不要直接开放 8000、3000 给公网
    • Nginx/Apache 反向代理 + HTTPS
  4. 定期扫描端口

    vbscript 复制代码
    nmap -sV your-server-ip

✅ 总结:高频端口速查表

场景 推荐端口 是否开放公网
SSH 远程管理 22 ✅(限 IP)
Web 网站 80 / 443
Flask/Django 后端 8000 / 5000 ❌(应通过 Nginx 代理)
MySQL 3306 ❌(仅内网)
Redis 6379 ❌(禁止公网!)
Prometheus 9090 ❌(或加认证)
Grafana 3000 ❌(或加认证/反向代理)

💡 记住
"能不开就不开,能限 IP 就限 IP,能走内网就走内网"

相关推荐
Victor3562 小时前
Netty(14)如何处理Netty中的异常和错误?
后端
Victor3562 小时前
Netty(13)Netty中的事件和回调机制
后端
码事漫谈3 小时前
VS Code 1.107 更新:多智能体协同与开发体验升级
后端
码事漫谈3 小时前
从概念开始开始C++管道编程
后端
@淡 定3 小时前
Spring中@Autowired注解的实现原理
java·后端·spring
serendipity_hky4 小时前
【go语言 | 第2篇】Go变量声明 + 常用数据类型的使用
开发语言·后端·golang
疯狂的程序猴4 小时前
App Store上架完整流程与注意事项详解
后端
开心就好20254 小时前
把 H5 应用上架 App Store,并不是套个壳这么简单
后端
tirelyl5 小时前
LangChain.js 1.0 + NestJS 入门 Demo
后端