WireGuard

Arch Linuxは意外に標準パッケージが少ないが、ワイヤーガードがあるではないか。逆に、Ubuntuは19.10以上でないとない。ということでArchWikiを参考にセットアップ。

# pacman -S wireguard-tools
# mkdir /etc/wireguard
# cd /etc/wireguard
# wg genkry > server.key
# chmod 600 server.key
# wg pubkey < server.key > server.pub
# wg genkry > android.key
# chmod 600 android.key
# wg pubkey < android.key > android.pub
# vi wg0.conf

[Interface]
Address = 10.0.0.1/24
ListenPort = xxxx
PrivateKey = xxxxxxxxxxxxxxxxx
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = xxxxxxxxxxxxxxxx
AllowedIPs = 10.0.0.2/32

# chmod 600 wg0.conf
# ufw allow xxxx/udp
# systemctl start wg-quick@wg0
# systemctl status wg-quick@wg0
# systemctl enable wg-quick@wg0
# wg show
# wg showconf wg0

設定の説明は以下を参照
https://github.com/pirate/wireguard-docs

Androidは、Google PlayでWireGuardをインストール。
androidのkeyを入力すると、pubは自動変換する。これをサーバ側に入力してもよいが、サーバ側のpubと比較すると入力ミスがわかりやすい。
serverのPeerに設定したアドレスの入力。
DNSは8.8.8.8, 8.8.4.4を入力。2つ設定して置いたほうがレスポンスが良い印象。1.1.1.1, 1.0.0.1でもよいと思う。
Peerには、サーバのpubを入力
Endpointは、サーバアドレス:ポート
Allowed IPSは、0.0.0.0/0を入力。

VPNとして、非常に早くて快適。GFW対策には、PersistentKeepaliveを使わないほうがよいような気がする。
クライアントIPを自動化するには細工が必要なので、手動で割り振るのが少し面倒。

通信がudpしか使えないのでブロックされやすようだ。

Arch
スポンサーリンク
デビアンな生活

コメント