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 格式,但對這個主題沒有幫助。
該
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’ 擴展為INTERFACE。 每個可以指定多次,在這種情況下,命令按順序執行。