不懂就问系列! 为什么 iptables 或者 firewalld 这类工具要作为服务运行? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
LoeNet
V2EX    程序员

不懂就问系列! 为什么 iptables 或者 firewalld 这类工具要作为服务运行?

  •  
  •   LoeNet 2021-10-14 09:38:08 +08:00 3620 次点击
    这是一个创建于 1459 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个疑问,Netfilter 作为网络数据包过滤机制,iptables 和 firewalld 作为用户端管理工具,按照我的理解 只是下发策略,应该完全可以无需 systemctl 服务管理. 但是目前 Linux 发行版都有这个服务. 这个主要目的还有什么?

    11 条回复    2021-10-14 14:23:12 +08:00
    saytesnake
        1
    saytesnake  
       2021-10-14 09:48:02 +08:00
    iptables 跟 nftables 可以不用服务运行,没经历过 init 时代? firewalld 跟 ufw 只是 iptables 的封装。
    cweijan
        2
    cweijan  
       2021-10-14 10:04:16 +08:00
    配置的策略最终也是某些软件在用啊, iptables 就是最底层的软件.
    podel
        3
    podel  
       2021-10-14 10:28:47 +08:00
    @cweijan iptables 还不是最底层的。 最底层的是内核的 netfilter 。
    本质是。 作为防火墙。这种软件是没办法运行在 内核态的。 用户态和内核态之间会有 中断切换。开销很大。
    iptables 本质是 内核里面的现有加载模块的 控制器。
    2i2Re2PLMaDnghL
        4
    2i2Re2PLMaDnghL  
       2021-10-14 10:41:13 +08:00   10
    你 systemctl cat iptables.service 看看内容,它 RemainAfterExit=yes 说明这个服务不是一个进程。
    它只是作为 service 单元被 systemd 管理,它的启动过程即是载入 rules,然后就认为这个服务已经存在了。

    @cweijan 不是,最终是内核态处理,每个包都过一遍用户态太慢了。
    2i2Re2PLMaDnghL
        5
    2i2Re2PLMaDnghL  
       2021-10-14 10:45:21 +08:00   2
    @podel 准确地说 iptables 本质是运行在内核态的一个微型且功能特化的虚拟机式解释器。
    前沿似乎在转用 eBPF,准备用单一一个解释器运行大部分甚至所有需插入内核态运行的代码。
    GuuJiang
        6
    GuuJiang  
       2021-10-14 10:51:04 +08:00 va iPhone
    @2i2Re2PLMaDnghL 学到了,问题是个好问题,答案也是好答案
    yanqiyu
        7
    yanqiyu  
       2021-10-14 10:55:19 +08:00
    Firewalld 之类的需要监听网络环境的变化(比如某个网口插入网线并被分配 ip ),然后按照预配的或者是 NetworkManager 传递 zone 信息更新 nft
    cweijan
        8
    cweijan  
       2021-10-14 11:40:01 +08:00
    @2i2Re2PLMaDnghL 原来是这样, 感谢指教
    adoal
        9
    adoal  
       2021-10-14 12:27:41 +08:00
    开机启动做初始化啊亲
    adoal
        10
    adoal  
       2021-10-14 12:28:45 +08:00
    要不然你打算怎么做,在 rc.local 里加载写好的防火墙规则吗
    LoeNet
        11
    LoeNet  
    OP
       2021-10-14 14:23:12 +08:00
    @2i2Re2PLMaDnghL 感谢参与讨论.茅塞顿开. 目前 firewalld 已经改成 dbus.
    cat /usr/lib/systemd/system/firewalld.service
    [Unit]
    Description=firewalld - dynamic firewall daemon
    Before=network-pre.target
    Wants=network-pre.target
    After=dbus.service
    After=polkit.service
    COnflicts=iptables.service ip6tables.service ebtables.service ipset.service
    Documentation=man:firewalld(1)

    [Service]
    EnvirOnmentFile=-/etc/sysconfig/firewalld
    ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS
    ExecReload=/bin/kill -HUP $MAINPID
    # supress to log debug and error output also to /var/log/messages
    StandardOutput=null
    StandardError=null
    Type=dbus
    BusName=org.fedoraproject.FirewallD1
    KillMode=mixed

    [Install]
    WantedBy=multi-user.target
    Alias=dbus-org.fedoraproject.FirewallD1.service
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2713 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 206ms UTC 09:55 PVG 17:55 LAX 02:55 JFK 05:55
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86