Ubuntu20使用pre-up/post-up等hook脚本开机加载/关机保存iptables配置

Ubuntu20已不再支持/etc/network/interfaces配置文件。依托于interfaces配置文件的pre-up/post-up hook脚本也不再支持。替代品Netplan目前也不支持前述的hook脚本。要想实现hook脚本的功能目前可使用networkd-dispatcher来达成。注意在networkd-dispatcher中hook的功能是异步的。详细信息可参考man networkd-dispatcher。

文章目录


一、ifupdown hook功能实现

1. 使用networkd-dispatcher运行所有存在的ifup hooks

vim /etc/networkd-dispatcher/routable.d/50-ifup-hooks

#!/bin/sh
for d in up pre-up; do
    hookdir=/etc/network/if-${d}.d
    [ -e $hookdir ] && /bin/run-parts $hookdir
done
exit 0

networkd-dispatcher将遍历/etc/network/if-up.d 和 /etc/network/if-pre-up.d 目录,执行上述目录下的所有脚本。

2. 使用networkd-dispatcher运行所有存在的ifdown hooks

vim /etc/networkd-dispatcher/off.d/50-ifdown-hooks

#!/bin/sh
for d in down post-down; do
    hookdir=/etc/network/if-${d}.d
    [ -e $hookdir ] && /bin/run-parts $hookdir
done
exit 0

networkd-dispatcher将遍历/etc/network/if-down.d 和 /etc/network/if-post-down.d 目录,执行上述目录下的所有脚本。

二、配置iptables的加载与保存hook脚本

1. 在/etc/network/if-pre-up.d 下新建加载hook脚本

vim /etc/network/if-pre-up.d/load_iptables

#!/bin/sh
iptables-restore < /etc/iptables/iptables.rules

2. 在/etc/network/if-post-down.d 下新建保存hook脚本

vim /etc/network/if-post-down.d/save_iptables

#!/bin/sh
iptables-save > /etc/iptables/iptables.rules
上一篇:flux架构


下一篇:web.xml