V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
scfhao
V2EX  ›  CentOS

求助一个关于 CentOS 8 防火墙 Firewalld 的问题

  •  
  •   scfhao · 2020-10-03 13:14:36 +08:00 · 2436 次点击
    这是一个创建于 1272 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的环境: 在一个台式机上安装了 CentOS 8,在 CentOS 8 上安装了 Docker,在 Docker 里运行了 Postgres 数据库的容器,容器的端口暴漏到主机(-p 5432:5432 )。 遇到的问题: 在本机( CentOS 8 )上可以通过 5432 端口访问 Postgres 数据库服务,但是只要 CentOS 的防火墙开着,在同一个局域网中的其他电脑访问不到( telnet: Unable to connect to remote host: No route to host );如果关了 CentOS 的防火墙,其他主机可以正常访问 Postgres 。 需要补充的说明:

    1. Postgres 的两个配置文件postgresql.confpg_hba.conf已正常配置允许其他主机访问。
    2. 在 CentOS 8 的防火墙中已添加 Postgres 服务:firewall-cmd --zone=public --add-service=postgresql,也尝试过firewall-cmd --zone=public --add-port=5432/tcp
    3. 也尝试过关闭 SELinux,同样不起作用。
    6 条回复    2021-01-21 09:11:23 +08:00
    wtks1
        1
    wtks1  
       2020-10-03 16:47:36 +08:00 via Android
    用 [netstat -atnp | grep LISTEN] 看看对应端口是哪个 IP 在监听的
    wtks1
        2
    wtks1  
       2020-10-03 16:48:57 +08:00 via Android
    啊,抱歉,少看了一节,关了防火墙就行了的话,最好从其他群局域网设备上 telnet 一下这个端口,看看端口是不是真的开放了
    mikeguan
        3
    mikeguan  
       2020-10-03 17:30:42 +08:00 via Android
    建议 docker 和 firewallld 不共用,换 iptables
    scfhao
        4
    scfhao  
    OP
       2020-10-04 16:30:02 +08:00
    @wtks1 关了防火墙的话,telnet 是通的。
    wtks1
        5
    wtks1  
       2020-10-04 17:20:20 +08:00 via Android
    @scfhao 开了防火墙不通的话,那就证明你添加的放行策略并未生效,需要再研究一下 firewall 的命令
    ward56
        6
    ward56  
       2021-01-21 09:11:23 +08:00
    首先,你要明白 docker 运行机制
    你的情况我再刚接触容器时遇到过。
    据我个人观察,原因是:容器运行时会调用系统防火墙(底层的 iptables ),这时你再启用 firewalld 就会覆盖掉容器写入的配置。
    建议: 你先在运行容器时观察容器 log,以及它的启动过程,这样更容器深入了解容器;
    拓展:创建一个网桥,并给容器指定 ip,否则你在重启 docker 服务或者关掉 pg 库在启动会失败,原因同上,因为你的 pg 库 ip 被写进 iptables,关闭重启之类的操作会导致防火墙规则异常,解决方法:就是清空 iptables 或者重启 iptables 。
    方法都是一通百通的,希望对你有帮助。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3781 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:54 · PVG 08:54 · LAX 17:54 · JFK 20:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.