WireGuard : クライアントの設定 (SUSE)2025/12/11 |
|
シンプルで高速な VPN サーバー、WireGuard のインストールと設定です。 当例では以下のような環境で WireGuard クライアントを設定します。 インターネットを経由するため、事前に、自身の環境で、WireGuard サーバー側のローカルネットワークとインターネットの境界ルーターに、IP マスカレードの設定が必要です。 下例の場合、WireGuard クライアントからインターネットを経由して WireGuard サーバーのグローバル IP アドレス宛てに来るパケットを、[Router#1] 上で、WireGuard サーバーの IP アドレス (10.0.0.30) の、WireGuard 設定ファイルで指定した待ち受けポート (UDP) に転送するよう設定します。
+------------------------+
| [ WireGuard Server ] |172.16.100.1 (VPN IP)
| dlp.srv.world +--------+
| |wg0 |
+-----------+------------+ |
enp1s0|10.0.0.30/24 |
| |
| Local Network |
+------+-----+ |
-------| Router#1 |---------------|-----
+------+-----+ |
| |
Internet | Internet |
| |
+------+-----+ |
-------| Router#2 |---------------|-----
+------+-----+ |
| Local Network |
| |
enp1s0|192.168.0.30/24 |
+-----------+------------+ |
| [ WireGuard Client ] |wg0 |
| +--------+
| |172.16.100.5 (VPN IP)
+------------------------+
|
| [1] |
事前に、サーバー側で生成した [クライアント用プライベートキー] と [サーバー用パブリックキー] を、設定するクライアントに転送、または、内容を通知しておきます。 |
| [2] | WireGuard をインストールします。 |
|
client:~ # zypper -n install wireguard-tools
|
| [3] | WireGuard の設定です。 |
|
client:~ #
umask 077
# 設定ファイル新規作成 # [wg0.conf] ⇒ [(VPN インターフェース名).conf] のルール内で任意の名称で OK client:~ # vi /etc/wireguard/wg0.conf [Interface] # サーバー側で生成したクライアント用プライベートキーを指定 PrivateKey = 4Gf82Q6XTfny6LMOrgVr5gSSvnBVdddnbv7kWB85lnA= # VPN インターフェースに割り当てる IP アドレス Address = 172.16.100.5 [Peer] # サーバー側で生成したサーバー用パブリックキーを指定 PublicKey = zh2ZquHICkxY9JoIbZu2g6ZdoWGPmNwnKaDA/7f7ei8= # 接続を許可する IP アドレス または ネットワーク範囲 # 下例は、WireGuard サーバーの VPN IP アドレスと、実際のローカルネットワークを許可 AllowedIPs = 172.16.100.1, 10.0.0.0/24 # サーバーのグローバル IP アドレス:ポート # (下例は実際はプライベート用の IP アドレスだが、自身の環境に置き換え) EndPoint = 172.29.10.100:51820 # VPN インターフェース 起動 client:~ # wg-quick up wg0 [#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 172.16.100.5 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] ip -4 route add 172.16.100.1/32 dev wg0 [#] ip -4 route add 10.0.0.0/24 dev wg0client:~ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:e9:56:2f brd ff:ff:ff:ff:ff:ff
altname enx525400e9562f
inet 192.168.0.30/24 brd 192.168.0.255 scope global noprefixroute enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::6bd:fb0b:bfca:158d/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 172.16.100.5/32 scope global wg0
valid_lft forever preferred_lft forever
# 接続状態確認 client:~ # wg show interface: wg0 public key: HXW6rwRc7It2vhPzynyCRMF4MbRPEl0aLGpU8A01dC0= private key: (hidden) listening port: 33743 peer: zh2ZquHICkxY9JoIbZu2g6ZdoWGPmNwnKaDA/7f7ei8= endpoint: 172.29.10.100:51820 allowed ips: 172.16.100.1/32, 10.0.0.0/24 |
| [4] | VPN 接続が確立できたら、クライアントからサーバー側のローカルネットワークにアクセスできるか確認しておくとよいでしょう。 |
|
client:~ # ping -c 3 10.0.0.30 PING 10.0.0.30 (10.0.0.30) 56(84) bytes of data. 64 bytes from 10.0.0.30: icmp_seq=1 ttl=64 time=2.50 ms 64 bytes from 10.0.0.30: icmp_seq=2 ttl=64 time=1.43 ms 64 bytes from 10.0.0.30: icmp_seq=3 ttl=64 time=1.41 ms --- 10.0.0.30 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.412/1.778/2.497/0.507 msclient:~ # ssh suse@10.0.0.233 hostname (suse@10.0.0.233) Password: localhost |
| Sponsored Link |
|
|