最后更新日期: 2026-03-07
适用版本: 壹信 IM v1.0+
适用环境: 生产环境、测试环境、开发环境
| 端口 | 用途 | 是否需要对外暴露 | 安全建议 | 配置示例 |
|---|---|---|---|---|
80 | HTTP 服务 (前端静态资源) | ✅ 是 | 需要配置 HTTPS (推荐 443) | nginx.conf:listen 80; |
443 | HTTPS 服务 (前端安全访问) | ✅ 是 | 必须启用 TLS/SSL | nginx.conf:listen 443 ssl;``ssl_certificate /etc/nginx/certs/fullchain.pem;``ssl_certificate_key /etc/nginx/certs/privkey.pem; |
8080 | 开发环境 HTTP 服务 | ❌ 否 | 仅限本地开发 | docker run -p 8080:80 ... |
安全提示: 生产环境必须使用 HTTPS (443 端口),HTTP (80) 端口应重定向到 HTTPS。
| 端口 | 用途 | 是否需要对外暴露 | 安全建议 | 配置示例 |
|---|---|---|---|---|
5000 | 后端 API 服务 (HTTP) | ✅ 是 | 仅限内部网络访问 | docker run -p 5000:5000 ... |
5001 | 后端 API 服务 (HTTPS) | ✅ 是 | 强烈推荐使用 TLS | gunicorn --certfile /certs/fullchain.pem --keyfile /certs/privkey.pem |
8000 | 后端健康检查端口 | ❌ 否 | 仅限内部网络 | docker run -p 8000:8000 ... |
安全提示: 生产环境必须使用 HTTPS (5001 端口) 5000 端口应仅允许来自负载均衡器或 Nginx 的访问 健康检查端口 (8000) 不应暴露到公网
| 端口 | 用途 | 是否需要对外暴露 | 安全建议 | 配置示例 |
|---|---|---|---|---|
5432 | PostgreSQL 数据库 | ❌ 否 | 严禁直接暴露到公网 | docker run -p 5432:5432 ... |
5433 | PostgreSQL 数据库 (备用) | ❌ 否 | 仅限内部使用 | docker run -p 5433:5432 ... |
安全提示: 数据库端口绝对不能暴露到公网 通过 Docker 网络连接数据库 (如 yixinim-network)在 pg_hba.conf中限制只允许来自应用容器的 IP 访问
| 端口 | 用途 | 是否需要对外暴露 | 安全建议 | 配置示例 |
|---|---|---|---|---|
2195 | Apple Push Notification Service (APNs) | ❌ 否 | 仅限内部使用 | apns-server:2195 |
5228 | Google Cloud Messaging (GCM/FCM) | ❌ 否 | 仅限内部使用 | fcm-server:5228 |
8080 | 自定义推送服务 (可选) | ✅ 是 | 仅限内部网络 | docker run -p 8080:8080 ... |
安全提示: APNs 和 FCM 端口必须仅限内部网络访问 通过 TLS 保护推送连接 不要将推送服务暴露到公网
| 端口 | 用途 | 是否需要对外暴露 | 安全建议 | 配置示例 |
|---|---|---|---|---|
6379 | Redis 缓存 | ❌ 否 | 仅限内部网络 | docker run -p 6379:6379 ... |
8081 | WebSocket 服务 | ✅ 是 | 需要 HTTPS | nginx.conf:location /ws {`` proxy_pass http://backend:5000;`` proxy_http_version 1.1;`` proxy_set_header Upgrade $http_upgrade;`` proxy_set_header Connection "upgrade";``} |
9000 | 监控服务 (Prometheus) | ❌ 否 | 仅限内部网络 | docker run -p 9000:9000 ... |
9100 | Exporter 服务 (Node Exporter) | ❌ 否 | 仅限内部网络 | docker run -p 9100:9100 ... |
安全提示: WebSocket 服务需要通过 Nginx 代理并启用 HTTPS 监控和 Exporter 服务不应暴露到公网
| 类型 | 建议 | 说明 |
|---|---|---|
| 必须对外暴露 | 443 (HTTPS), 80 (HTTP 重定向) | 用于用户访问前端 |
| 仅限内部网络 | 5000, 5001, 5432, 6379, 8000 | 仅限应用容器、数据库、缓存等内部服务 |
| 绝对禁止暴露 | 2195, 5228, 9000, 9100 | 仅限内部网络或通过安全通道访问 |
TLS_AES_256_GCM_SHA384)| 服务 | 端口 | 是否暴露 | 是否启用 TLS | 说明 |
|---|---|---|---|---|
| 前端 Web | 443 | ✅ | ✅ | 主要入口 |
| 前端 Web | 80 | ✅ | ❌ | 重定向到 443 |
| 后端 API | 5001 | ✅ | ✅ | HTTPS |
| 后端 API | 5000 | ❌ | ❌ | 仅限内部网络 |
| 数据 库 | 5432 | ❌ | ❌ | 仅限内部网络 |
| Redis | 6379 | ❌ | ❌ | 仅限内部网络 |
| WebSocket | 8081 | ✅ | ✅ | 通过 Nginx 代理 |
| 推送服务 | 2195 | ❌ | ✅ | 仅限内部网络 |
| 推送服务 | 5228 | ❌ | ✅ | 仅限内部网络 |
| 监控 | 9000 | ❌ | ✅ | 仅限内部网络 |
db) 而不是 localhost:| 服务 | 关键端口 | 安全要求 | 说明 |
|---|---|---|---|
| 前端 | 443 (HTTPS) | ✅ 必须启用 TLS | 主要用户入口 |
| 后端 | 5001 (HTTPS) | ✅ 必须启用 TLS | API 服务 |
| 数据库 | 5432 | ❌ 严禁暴露 | 仅限内部网络 |
| 推送 | 2195, 5228 | ❌ 严禁暴露 | 仅限内部网络 |
| WebSocket | 8081 | ✅ 必须启用 TLS | 通过 Nginx 代理 |
安全提示: 端口暴露是安全风险的首要来源。请务必遵循最小权限原则,仅暴露必要的端口,并确保所有对外端口都启用 TLS/SSL。