在腾讯云轻量服务器上部署Java项目时,需要根据你的项目类型和架构开放相应的端口。以下是常见的端口配置指南:
一、基础必开端口
-
SSH端口 (22)
- 用途:远程连接服务器进行管理。
- 建议:为安全考虑,可修改为其他端口(如
2222),并限制IP访问。
-
HTTP (80) 和 HTTPS (443)
- 用途:Web应用对外提供访问(如Spring Boot项目、Tomcat部署的前后端分离项目)。
- 注意:若使用Nginx/Apache反向XX,只需开放这两个端口。
二、Java项目常见端口
根据项目类型选择开放:
1. Spring Boot 内置服务器
- 默认端口:
8080 - 配置修改:可在
application.properties中修改:server.port=自定义端口 - 开放建议:若直接对外服务,开放自定义端口;若用Nginx反向XX,只需开放
80/443。
2. Tomcat 部署
- 默认端口:
8080(HTTP)、8009(AJP)、8005(SHUTDOWN)。 - 开放建议:仅需开放
8080(或修改后的端口),其他端口建议仅对本地开放(127.0.0.1)。
3. 数据库端口
- MySQL:
3306 - Redis:
6379 - MongoDB:
27017 - 建议:仅对服务器内网开放(如轻量服务器同一地域内其他实例),或限制访问IP为应用服务器IP。
4. 微服务/分布式项目
- 服务注册中心(如Nacos、Eureka):默认
8848(Nacos)、8761(Eureka)。 - 配置中心:根据组件调整(如Nacos同样用
8848)。 - 网关(如Spring Cloud Gateway):通常开放
80/443或自定义端口(如9999)。 - 建议:内部服务间通信的端口可限制为内网访问。
5. 其他中间件
- RabbitMQ:
5672(AMQP)、15672(管理界面)。 - Elasticsearch:
9200(HTTP)、9300(TCP)。 - 建议:管理界面端口(如
15672)建议通过SSH隧道访问,或限制IP。
三、安全配置建议
-
最小化开放原则
- 只开放必要的端口,关闭无用端口。
- 例如:仅Spring Boot项目且无数据库网络访问时,只需开放
80/443和22。
-
使用安全组限制IP
- 在腾讯云控制台配置安全组:
- SSH(22)限制为管理员IP。
- 数据库/中间件端口限制为应用服务器IP或内网IP段。
- 在腾讯云控制台配置安全组:
-
示例安全组规则(Spring Boot + MySQL): 端口 协议 允许访问IP 说明 22 TCP 你的办公IP SSH管理 80,443 TCP 0.0.0.0/0 对外Web服务 8080 TCP 服务器内网IP 仅内网访问 3306 TCP 服务器内网IP 仅内网数据库访问 -
使用防火墙加固
- 在服务器内部用
ufw(Ubuntu)或firewalld(CentOS)二次过滤:# Ubuntu 示例:放行80端口 sudo ufw allow 80/tcp
- 在服务器内部用
四、快速检查清单
- [ ] SSH端口(22或自定义)。
- [ ] Web服务端口(80/443,或Spring Boot的
8080)。 - [ ] 数据库端口(仅内网开放)。
- [ ] 微服务组件端口(根据架构开放)。
- [ ] 关闭所有其他默认端口(如腾讯云轻量服务器默认放行的
3389、3306等,若无用则删除规则)。
五、腾讯云操作步骤
- 登录控制台 → 进入轻量服务器管理页面。
- 选择实例 → 进入“防火墙”选项卡。
- 添加规则 → 按需开放端口并设置IP限制。
- 验证端口:使用
telnet 你的服务器IP 端口或nc -zv 你的服务器IP 端口测试。
根据你的具体项目类型(如单体应用、微服务、是否带数据库等),可灵活调整端口策略。若有更详细的架构信息,可进一步细化建议。
CLOUD技术笔记