WireGuardを使ってサクッとVPNを構築したくなったのでやってみます。
早速設定する
まずはHostAとHostBを用意します。そしてwgをinstallします。
sudo apt install wireguard-tools
そして以下のコマンドを各hostで実行するだけ! (最後のコマンドでは両Hostの情報が必要になるので両Hostでコマンドを実行し終わっている必要があります)
hostA(192.168.100.1)で実行するコマンド
sudo su # 最初から特権モードになると楽 wg genkey > private cat private # あとで中の文字列が必要になります ip link add wg0 type wireguard ip addr add 10.0.0.1/24 dev wg0 wg set wg0 private-key ./private sudo ip link set wg0 up sudo wg # interface: wg0 # public key: <HostAの公開鍵> # private key: (hidden) # listening port: 38910 sudo wg set wg peer <HostBの公開鍵の文字列> allowed-ips 10.0.0.2/32 endpoint 192.168.100.2:<HostBのlistening port>
hostB(192.168.100.2)
sudo su # 最初から特権モードになると楽 wg genkey > private cat private # あとで中の文字列が必要になります ip link add wg0 type wireguard ip addr add 10.0.0.2/24 dev wg0 wg set wg0 private-key ./private sudo ip link set wg0 up sudo wg # interface: wg0 # public key: <HostBの公開鍵> # private key: (hidden) # listening port: 38910 sudo wg set wg peer <HostBの公開鍵の文字列> allowed-ips 10.0.0.1/32 endpoint 192.168.100.1:<HostAのlistening port>
pingを叩いてみる
hostAからhostBにpingしてみます。
ping 10.0.0.2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=1.74 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.878 ms 64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.754 ms 64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.822 ms ^C --- 10.0.0.2 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3076ms rtt min/avg/max/mdev = 0.754/1.049/1.742/0.402 ms
OK。なんて簡単なんでしょうか