xiaoz
1.03D
V2EX  ›  问与答

Firewalld 一个尴尬的问题

  •  
  •   xiaoz · Sep 3, 2018 · 3672 views
    This topic created in 2989 days ago, the information mentioned may be changed or developed.

    安装 Firewalld 后,假如需要放行 ssh 端口:

    firewall-cmd --zone=public --add-port=22/tcp --permanent
    

    但是提示 Firewalld 没有运行:

    FirewallD is not running
    

    如果您马上启动 firewalld:

    systemctl start firewalld
    

    但是这样就被阻挡在外了,还没来得及放行 ssh 端口呢,咋整?有什么办法在 firewalld 还没运行的时候先放行端口吗?

    Supplement 1  ·  Sep 3, 2018

    感谢各位的解答,目前通过3楼的方法解决了。直接修改firewalld的配置文件vi /etc/firewalld/zones/public.xml 先将需要放行的端口写入配置,然后再启动firewalld就没事了。

    16 replies  •  2019-10-10 18:52:19 +08:00
    jasonyang9
    jasonyang9
    Sep 3, 2018❤️1
    1
    写个脚本
    xiaoz
    xiaoz
    OP
    Sep 3, 2018
    2
    @jasonyang9 感谢大佬,这个方法应该可行。写个脚本设定一个时间去放行端口,不过感觉 Firewalld 这样的设计有点不科学啊。iptables 可以不运行的情况下直接修改配置文件,然后再启动。
    WordTian
    WordTian
    Sep 3, 2018 via Android❤️1
    3
    直接改 firewall 的配置文件吧,通过配置文件添加端口,然后再启动
    zocome
    zocome
    Sep 3, 2018❤️1
    4
    firewalld 默认不是放行 22 端口的么?我难道记错了。。
    xiaoz
    xiaoz
    OP
    Sep 3, 2018
    5
    @zocome 没有记错,我看了配置默认确实放行了 ssh (这个仅针对 22 常规端口),但如果修改过 ssh 端口,比如设置为 2018,那么这条规则就没用了。
    xiaoz
    xiaoz
    OP
    Sep 3, 2018
    6
    @WordTian 感谢,目前来说这个方案比较可行,我试一下。
    chinvo
    chinvo
    Sep 3, 2018 via iPhone
    7
    确实尴尬,建议给 CentOS/RHEL 提 issue
    rrfeng
    rrfeng
    Sep 3, 2018 via Android
    8
    我竟无言以对。

    手动改配置然后启动是正解。
    akillcool
    akillcool
    Sep 3, 2018 via Android❤️2
    9
    先通过默认 ssh 端口登录,启动 firewalld,默认放行 ssh22 端口,然后修改 ssh 端口,重启 sshd (此时 ssh 连接是不会断开的),firewalld 按照你的规则添加新 ssh 端口放行,最后 firewall-cmd --complete-reload,这时候可以保留当前的 ssh 连接不断开,新开一个 ssh 连接测试新端口是否已经可用
    akillcool
    akillcool
    Sep 3, 2018 via Android❤️1
    10
    如果原有端口已经不是 22 的话可以考虑先改成 22,再改成其他的
    springmarker
    springmarker
    Sep 3, 2018 via Android❤️1
    11
    我记得 centos 下的 firewalld 有个 xml 的配置文件啊
    xiaoz
    xiaoz
    OP
    Sep 3, 2018
    12
    @akillcool 感谢,不过这样感觉麻烦了,目前来说 3 楼的方法要方便些。
    xiaoz
    xiaoz
    OP
    Sep 3, 2018
    13
    @springmarker 是的,在 /etc/firewalld 目录下
    DearTanker
    DearTanker
    Sep 3, 2018
    14
    反正我想说的是,你改了 ssh 端口不是马上生效的,是重启以后才生效的。所以 firewalld 不会影响你执行放行端口的命令。当然,你 ssh 端口生效以后才想着改 firewalld 的话,那就是你上面的解决方案了。
    66Zi2nJk5Z6mdtzj
    66Zi2nJk5Z6mdtzj
    Oct 10, 2019❤️1
    15
    谁会想到,还有个 firewall-offline-cmd 命令的🤣,RedHat 真的是太反人类了
    xiaoz
    xiaoz
    OP
    Oct 10, 2019
    16
    @yuanmomo 我去,多谢老哥指点,在你没出现之前我是直接去修改配置文件。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1151 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 23:28 · PVG 07:28 · LAX 15:28 · JFK 18:28
    ♥ Do have faith in what you're doing.