首页主机资讯如何配置CentOS Java防火墙

如何配置CentOS Java防火墙

时间2025-10-09 15:45:04发布访客分类主机资讯浏览1340
导读:一、前置准备:确认Java应用端口 在配置防火墙前,需先明确Java应用程序监听的端口(如Spring Boot默认的8080端口、Tomcat默认的8005/8080端口)。可通过以下方式获取: 查看应用配置文件(如applicatio...

一、前置准备:确认Java应用端口
在配置防火墙前,需先明确Java应用程序监听的端口(如Spring Boot默认的8080端口、Tomcat默认的8005/8080端口)。可通过以下方式获取:

  • 查看应用配置文件(如application.properties中的server.port、Tomcat的server.xml);
  • 检查应用启动日志(通常会输出“Listening on port XXXX”);
  • 使用netstat -tuln | grep javass -tuln | grep java命令查看Java进程占用的端口。

二、安装与启动Firewalld(CentOS默认防火墙工具)

  1. 安装firewalld
    若系统未安装firewalld,执行以下命令安装:
    sudo yum install firewalld -y
    
  2. 启动并设置开机自启
    sudo systemctl start firewalld    # 启动服务
    sudo systemctl enable firewalld   # 设置开机自动启动
    
  3. 验证状态
    sudo firewall-cmd --state         # 应返回“running”(运行中)
    sudo firewall-cmd --get-active-zones  # 查看当前活动的防火墙区域(如“public”)
    

三、配置Java应用端口规则

1. 开放单个端口(常用)

若Java应用运行在8080端口(TCP协议),执行以下命令:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • --zone=public:将规则添加到“public”区域(适用于公网或外部访问);
  • --add-port=8080/tcp:允许TCP协议的8080端口通过;
  • --permanent:规则永久生效(重启系统后仍保留)。

应用规则

sudo firewall-cmd --reload  # 重新加载配置使新规则生效

2. 开放端口范围

若Java应用需要开放多个连续端口(如8080-8090),执行:

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

3. 验证端口规则

  • 查看所有开放端口:
    sudo firewall-cmd --list-ports
    
  • 查看特定区域的详细规则:
    sudo firewall-cmd --zone=public --list-all
    
  • 测试端口连通性(从另一台机器执行):
    curl http://your-server-ip:8080  # 若返回应用响应,说明端口开放成功
    

四、限制访问源(可选,提升安全性)
若仅需允许特定IP地址访问Java应用(如公司内网IP192.168.1.100),可使用富规则(Rich Rule)

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept' --permanent
sudo firewall-cmd --reload
  • family="ipv4":针对IPv4地址;
  • source address="192.168.1.100":允许的源IP;
  • port protocol="tcp" port="8080":目标端口及协议;
  • accept:允许访问。

删除富规则

sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept' --permanent
sudo firewall-cmd --reload

五、配置SELinux(若启用)
若系统启用了SELinux(sestatus返回“Enforcing”),需调整SELinux策略以允许Java应用使用指定端口:

  1. 查看SELinux状态

    sestatus
    
  2. 允许端口通过SELinux
    若Java应用使用8080端口(非默认的HTTP端口80),需将其添加到http_port_t类型:

    sudo semanage port -a -t http_port_t -p tcp 8080
    
    • semanage:SELinux管理工具;
    • -a:添加端口;
    • -t http_port_t:指定端口类型为HTTP服务;
    • -p tcp:协议类型;
    • 8080:端口号。
  3. 验证SELinux端口配置

    sudo semanage port -l | grep http_port_t
    

    输出应包含8080/tcp

六、常见问题排查

  • 防火墙未运行:确保systemctl start firewalld已执行,且状态为“running”;
  • 端口未开放:检查firewall-cmd --list-all是否包含目标端口,或netstat -tuln是否显示Java应用在监听该端口;
  • SELinux阻止访问:若应用无法访问,尝试临时将SELinux设为“permissive”模式(sudo setenforce 0),测试是否解决问题,再调整SELinux策略。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何配置CentOS Java防火墙
本文地址: https://pptw.com/jishu/721450.html
CentOS系统中Rust依赖库如何配置 Rust如何在CentOS上实现跨平台编译

游客 回复需填写必要信息