商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > CentOS Java配置中防火墙如何设置

CentOS Java配置中防火墙如何设置

  发布于2026-07-01 阅读(0)

扫一扫,手机访问

在 CentOS 上部署 Ja va 应用时,防火墙配置往往是绕不开的一环。很多开发者习惯先关掉防火墙来调试,但在生产环境里,这显然不是明智之举。正确的做法是:用 firewall-cmd 精确开放所需的端口,让应用既能正常通信,又不暴露多余的风险入口。下面就直接进入正题,看看具体怎么操作。

CentOS Ja va配置中防火墙如何设置

前置检查:firewalld 是否在运行?

动手之前,先确认防火墙服务本身是活着的。执行:

sudo systemctl status firewalld

如果返回的是 inactivedead,那得先把它拉起来:

sudo systemctl start firewalld

想让它开机自启?加一句 sudo systemctl enable firewalld 就行。

看看当前开了哪些口子

配置前最好先摸摸底,用这条命令列出当前所有规则:

sudo firewall-cmd --list-all

你会看到已开放的端口、服务、源地址等信息。如果发现有些端口根本用不上,后面顺手关掉。

开放端口——核心操作

假设你的 Ja va 应用监听在 8080 端口(TCP),那就这么干:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

这里有两个关键点:

  • --zone=public:默认区域,绝大多数场景都用它;
  • --permanent:让规则永久生效,重启服务后依然保留。不加这个参数的话,防火墙一 reload 规则就丢了。

开放之后,必须重新加载配置才能生效:

sudo firewall-cmd --reload

然后再次运行 sudo firewall-cmd --list-all,确认 8080 已经在列表里了。

如果需要关闭某个端口

反悔了或者端口不再需要?删除命令同样简单:

sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload

记得要两步走:先删除,再 reload。

一次性开放多个端口

如果你的应用既用 HTTP(8080)又用 HTTPS(8443),可以一条命令搞定:

sudo firewall-cmd --zone=public --add-port=8080/tcp --add-port=8443/tcp --permanent
sudo firewall-cmd --reload

这样比逐条执行更高效,也减少了 reload 次数。

UDP 端口怎么开?

有些 Ja va 应用(比如 NTP、DNS 解析服务)需要 UDP 协议。参数从 --tcp 换成 --udp 即可:

sudo firewall-cmd --zone=public --add-port=53/udp --permanent
sudo firewall-cmd --reload

注意 tcpudp 是分开管理的,如果你需要同时开放同一个端口的两种协议,必须分别添加。

别忘了安全底线

开放端口的同时,也要留个心眼:

  • 最小权限原则:只开应用真正需要的端口,不要图省事把所有端口都放行。比如 8080 和 8443 够用,就别顺手开了 3306(数据库);
  • SELinux:如果你的 CentOS 启用了 SELinux(默认就是),光开防火墙可能还不够——Ja va 进程能否绑定到该端口,还得看 SELinux 策略是否允许。遇到连接被拒绝但端口已开放的情况,记得去查 SELinux 的审计日志。

按照上面的步骤,在 CentOS 上为 Ja va 应用配置防火墙其实就这几条命令的事。实际部署时,建议先把防火墙规则写进脚本,避免每次手动输入出错。毕竟,自动化才是生产环境的正确打开方式。

本文转载于:https://www.yisu.com/ask/78315562.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

产品推荐

热门关注