Ubuntu 設置 Wireguard
開始想用 wireguard 的時侯,套件一開始就裝好了,一直找不到設定檔,而且試著開始用的時侯,發現怎麼顯示出來的介面和設定的不一樣,於是又開始了一陣胡搞瞎搞…
工作環境:
Ubuntu 22 server LTS
wireguard 1
設定的方式大同小異,可以參考這裏、這裏、或是這裏 ,設定檔的資料夾權限可能要注意一下:
y
mkdir -m 0700 /etc/wireguard/
cd /etc/wireguard/
umask 077
wg genkey | tee privatekey | wg pubkey > publicke
看別人設定覺得好像不難,居然也能撞牆…
就在完成設定檔之後, start wireguard 發現 interface 的資訊和設定的不一樣,而且找不到地方可以改原始的設定,是的,系統裏找關鍵字 conf 和 wg 就只會找到自已剛才開的設定檔,其他的檔案看起來就是長得和自已剛才開的設定檔不像,那時忘了先重開機一下,可能就沒事了,千金難買早知道啊…畢竟是很少需要重開機的系統
為了讓 wireguard 可以「正確」的啟用,開始針對訊息和設定的落差,透過刪改既有的檔案的方式來「修正」「落差」,於是乎這個檔重建也不是,殺也不是,unmask 也不行, wireguard 就是無法啟用
Failed to enable unit: Unit file /lib/systemd/system/wg-quick@.service is masked
原本設定檔裏想要透過 `cat privatekey` 來引用私鑰也是不行地…乖乖地把私鑰貼上設定檔了
如果可以很快地抓到問題所在,排除狀況,當然對症下藥,用修的;然而很多時侯,打掉重練看起來吃力,卻是最佳解,
重設設定吧,記得也要重開機
sudo dpkg-reconfigure wireguard
收工!
=================== 後記 ===================
要改設定時,可能要先 stop service 再重開 service,client 也先斷線,以免出現怪怪的回應或是改不動設定的情形
sudo systemctl stop wg-quick@wg0
sudo systemctl start wg-quick@wg0
還在測試的時侯設定檔(wg0.conf)裏的 SaveConfig 屬性記得先改 false,才不會一直被之前的設定蓋掉(會發現改了屬性也沒有用)
SaveConfig = false
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
用 eth0 可以,用 enp1s0 也可以
sudo wg show
Linux 下的 config 範例
[Interface]
Address = 1.2.3.4/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 12345
PrivateKey = *********************************************************= #我方的 server_public.key 要給對方用
[Peer]
PublicKey = *********************************************************= #對方的 server_public.key 給我連線用
AllowedIPs = 192.168.1.1/32
[Peer]
PublicKey = *********************************************************= #對方的 server_public.key 給我連線用
AllowedIPs = 192.168.1.2/32
留言
張貼留言