Wireguard 多行配置值

Wireguard 多行配置值

是否可以将配置命令拆分为多行而不是一个长字符串?

例如

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

当使用更多命令时,该行会变得很长且难以阅读。我想将其拆分,以便每个命令可以使用一行。就像是:

PostUp = iptables -A FORWARD -i %i -j ACCEPT; \
   iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

手册页说它基于 ini 格式,但对此主题没有任何帮助。

答案1

wg-quick命令是一个bash脚本PostUp使用循环读取键(例如键)read -r可以防止使用\ 来分隔行。但阅读同一个脚本表明:

POST_UP=( )

将其声明为数组,并且:

          PostUp) POST_UP+=( "$value" ); continue ;;

向数组添加一个元素。

然后稍后执行(eval函数中有一个命令execute_hooks):

execute_hooks "${POST_UP[@]}"

这样就可以分裂多个命令(但不是任意线)通过多次使用相同的按键输入。所以OP的例子会像这样工作:

PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

实际上手册页已经告诉它:

• PreUp、PostUp、PreDown、PostDown — 将在设置/拆除接口之前/之后由 bash(1) 执行的脚本片段,最常用于配置自定义 DNS 选项或防火墙规则。特殊字符串“%i”扩展为界面每个命令可以被指定多次,在这种情况下命令将按顺序执行

相关内容