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”擴展為介面每個命令可以被指定多次,在這種情況下命令將按順序執行

相關內容