將宣告的 IPv6 透過 Wireguard 分發

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。