1. 文档教程
壹信-开源即时通讯
  • 壹信 — 即时通讯系统
  • 项目源码结构与功能说明书
  • 功能核心分类明细
  • 客户端打包教程
  • Android安卓打包教程
  • iOS苹果打包教程
  • 苹果推送apns配置教程
  • macOS电脑打包教程
  • Windowsn桌面端打包教程
  • mac编译环境配置
  • windows编译环境配置
  • Docker部署后端教程
  • 用宝塔面板搭建服务端
  • API全局接口
  • 并发压力测试报告
  • 服务器配置推荐
  • 适用于上架的隐私协议
  • 端口说明
  • 更新日志
  • 法律声明
文档教程
文档教程
  1. 文档教程

端口说明

🌐 端口说明文档#

最后更新日期: 2026-03-07
适用版本: 壹信 IM v1.0+
适用环境: 生产环境、测试环境、开发环境

📌 文档说明#

本文档详细说明了壹信 IM 服务在部署过程中各组件使用的端口,包括用途、是否需要对外暴露、安全建议及配置示例。建议在部署前仔细阅读,确保端口配置符合安全要求。

🔌 一、核心服务端口说明#

1.1 前端 Web 服务#

端口用途是否需要对外暴露安全建议配置示例
80HTTP 服务 (前端静态资源)✅ 是需要配置 HTTPS (推荐 443)nginx.conf:listen 80;
443HTTPS 服务 (前端安全访问)✅ 是必须启用 TLS/SSLnginx.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。

1.2 后端 API 服务#

端口用途是否需要对外暴露安全建议配置示例
5000后端 API 服务 (HTTP)✅ 是仅限内部网络访问docker run -p 5000:5000 ...
5001后端 API 服务 (HTTPS)✅ 是强烈推荐使用 TLSgunicorn --certfile /certs/fullchain.pem --keyfile /certs/privkey.pem
8000后端健康检查端口❌ 否仅限内部网络docker run -p 8000:8000 ...
安全提示:
生产环境必须使用 HTTPS (5001 端口)
5000 端口应仅允许来自负载均衡器或 Nginx 的访问
健康检查端口 (8000) 不应暴露到公网

1.3 数据库服务#

端口用途是否需要对外暴露安全建议配置示例
5432PostgreSQL 数据库❌ 否严禁直接暴露到公网docker run -p 5432:5432 ...
5433PostgreSQL 数据库 (备用)❌ 否仅限内部使用docker run -p 5433:5432 ...
安全提示:
数据库端口绝对不能暴露到公网
通过 Docker 网络连接数据库 (如 yixinim-network)
在 pg_hba.conf 中限制只允许来自应用容器的 IP 访问

1.4 消息推送服务#

端口用途是否需要对外暴露安全建议配置示例
2195Apple Push Notification Service (APNs)❌ 否仅限内部使用apns-server:2195
5228Google Cloud Messaging (GCM/FCM)❌ 否仅限内部使用fcm-server:5228
8080自定义推送服务 (可选)✅ 是仅限内部网络docker run -p 8080:8080 ...
安全提示:
APNs 和 FCM 端口必须仅限内部网络访问
通过 TLS 保护推送连接
不要将推送服务暴露到公网

1.5 其他服务#

端口用途是否需要对外暴露安全建议配置示例
6379Redis 缓存❌ 否仅限内部网络docker run -p 6379:6379 ...
8081WebSocket 服务✅ 是需要 HTTPSnginx.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 ...
9100Exporter 服务 (Node Exporter)❌ 否仅限内部网络docker run -p 9100:9100 ...
安全提示:
WebSocket 服务需要通过 Nginx 代理并启用 HTTPS
监控和 Exporter 服务不应暴露到公网

🛡️ 二、网络安全配置建议#

2.1 防火墙配置 (Ubuntu/Debian)#

2.2 Nginx 反向代理配置#


🔐 三、安全最佳实践#

3.1 端口暴露原则#

类型建议说明
必须对外暴露443 (HTTPS), 80 (HTTP 重定向)用于用户访问前端
仅限内部网络5000, 5001, 5432, 6379, 8000仅限应用容器、数据库、缓存等内部服务
绝对禁止暴露2195, 5228, 9000, 9100仅限内部网络或通过安全通道访问

3.2 端口安全配置#

1.
所有对外暴露端口必须启用 TLS/SSL:
使用 Let's Encrypt 免费证书
配置强加密套件 (如 TLS_AES_256_GCM_SHA384)
2.
数据库和缓存服务:
通过 Docker 网络连接,不要暴露到公网
在数据库配置中限制 IP 访问
3.
推送服务:
APNs 和 FCM 端口必须仅限内部网络
使用 P8 证书进行安全认证
4.
监控服务:
仅限内部网络 (如 10.0.0.0/24)
通过 SSH 隧道访问

📊 四、端口使用检查清单#

服务端口是否暴露是否启用 TLS说明
前端 Web443✅✅主要入口
前端 Web80✅❌重定向到 443
后端 API5001✅✅HTTPS
后端 API5000❌❌仅限内部网络
数据库5432❌❌仅限内部网络
Redis6379❌❌仅限内部网络
WebSocket8081✅✅通过 Nginx 代理
推送服务2195❌✅仅限内部网络
推送服务5228❌✅仅限内部网络
监控9000❌✅仅限内部网络

🛠️ 五、常见问题与解决方案#

5.1 问题: "无法访问 443 端口"#

原因: 防火墙阻止了 443 端口
解决方案:

5.2 问题: "数据库连接失败"#

原因: 数据库端口 5432 未正确配置
解决方案:
1.
确认数据库在 Docker 网络中:
2.
确认后端服务使用数据库服务名 (如 db) 而不是 localhost:

5.3 问题: "推送服务无法连接"#

原因: APNs 端口 2195 未正确配置
解决方案:
1.
确认推送服务使用内部网络连接:
2.
确认推送服务与 APNs 服务器在同一网络中

✅ 六、总结#

服务关键端口安全要求说明
前端443 (HTTPS)✅ 必须启用 TLS主要用户入口
后端5001 (HTTPS)✅ 必须启用 TLSAPI 服务
数据库5432❌ 严禁暴露仅限内部网络
推送2195, 5228❌ 严禁暴露仅限内部网络
WebSocket8081✅ 必须启用 TLS通过 Nginx 代理
重要提示:
生产环境必须启用 HTTPS (443)
所有内部服务端口不应暴露到公网
使用 Docker 网络隔离服务,避免端口暴露
定期审查端口配置,确保没有不必要的端口暴露

安全提示: 端口暴露是安全风险的首要来源。请务必遵循最小权限原则,仅暴露必要的端口,并确保所有对外端口都启用 TLS/SSL。

📎 附录:端口配置检查命令#


恭喜!您已掌握壹信 IM 服务的端口配置规范,可以安全地部署您的应用了!
修改于 2026-03-06 16:37:50
上一页
适用于上架的隐私协议
下一页
更新日志
Built with