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

动手之前,先确认防火墙服务本身是活着的。执行:
sudo systemctl status firewalld
如果返回的是 inactive 或 dead,那得先把它拉起来:
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 次数。
有些 Ja va 应用(比如 NTP、DNS 解析服务)需要 UDP 协议。参数从 --tcp 换成 --udp 即可:
sudo firewall-cmd --zone=public --add-port=53/udp --permanent
sudo firewall-cmd --reload
注意 tcp 和 udp 是分开管理的,如果你需要同时开放同一个端口的两种协议,必须分别添加。
开放端口的同时,也要留个心眼:
按照上面的步骤,在 CentOS 上为 Ja va 应用配置防火墙其实就这几条命令的事。实际部署时,建议先把防火墙规则写进脚本,避免每次手动输入出错。毕竟,自动化才是生产环境的正确打开方式。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8