Server端
安裝 Wireguard
sudo apt-get install -y wireguard
產生Server端的公私鑰,以下指令會存在 /etc/wireguard 底下
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
接著建立用戶的公私鑰,這邊會把檔案放在 /etc/wireguard/clients 底下
sudo mkdir -p /etc/wireguard/clients
wg genkey | sudo tee /etc/wireguard/clients/client1.privatekey | wg pubkey | sudo tee /etc/wireguard/clients/client1.publickey
配置Server文件,在/etc/wireguard底下新增 wg0.conf (名字可以改自己喜歡的)
[Interface]
PrivateKey = SERVER_PRIVATE_KEY #上面產生Server的private key
ListenPort = 51820
SaveConfig = false
Address = 10.8.0.1/24, [IPv6_Prefix]::1/48
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #eth0改成你的網卡編號
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE #eth0改成你的網卡編號
[Peer]
PublicKey = CLIENT_PUBLIC_KEY #用戶端的public key
AllowedIPs = 10.8.0.2/32, [IPv6_Prefix]::1234/128
重啟Wireguard Server
sudo wg-quick up wg0 #讓wg0上線
sudo wg-quick down wg0 #讓wg0下線
☆不是必要設定
我看網路很多文章都有設定,但我似乎不用也可以執行,所以還是附註在這好了
編輯 /etc/sysctl.conf ,在最後新增以下內容:
net.ipv6.conf.all.forwarding = 1
net.ipv4.ip_forward=1
完成套用新設定
sudo sysctl -p
用戶端
文件配置如下:
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY #用戶端私鑰
Address = 10.8.0.2/32, [IPv6_Prefix]::1234/128
DNS = 2001:4860:4860::8888, 2001:4860:4860::8844 #給用戶的DNS,這裡是Google的
[Peer]
PublicKey = SERVER_PUBLIC_KEY #Server端公鑰
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = SERVER_IP_ADDRESS:51820
其中,如果AllowedIPs這邊這樣寫,會重新導向所有流量
如果只想重新導向IPv6流量,IPv4則保持原樣的話,可改成下方內容
AllowedIPs = 10.8.0.1/24, ::/1, 8000::/1