Wireguard 配置指南

最近沉迷网络,日渐憔悴(大误)。遂发现一神器,正是我梦寐以求的 XXX to UDP 方案。

虽然早有 L2TP 驰骋于世间,可是:

简单说,Wireguard 基本就是盯着我的痛点的一个项目:

OK,安装(其实可以参考官方文档):

$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard

在装一个内核的头:

$ uname -a # check the kernel version
$ sudo apt search linux-headers-XXXXX # XXX is your version
$ sudo apt install linux-headers-YYYYY

搞一个 Key:

$ wg genkey
<Private_Key>

配置 /etc/wireguard/wg0.conf

[Interface]
ListenPort = 4321
PrivateKey = <Private_Key>
Address = 192.168.0.1/24
PostUp = iptables --wait 120 -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens3 -j MASQUERADE && iptables --wait 120 -A FORWARD -s 192.168.0.0/24 -j ACCEPT
PreDown = iptables --wait 120 -t nat -D POSTROUTING -s 192.168.0.0/24 -o ens3 -j MASQUERADE && iptables --wait 120 -D FORWARD -s 192.168.0.0/24 -j ACCEPT
Table = off

[Peer]
PublicKey = <Client_Public_Key>
AllowedIPs = 192.168.0.2/32

启用(命令放到 /etc/rc.local 每次启动就都没问题了):

$ sudo sysctl -w net.ipv4.ip_forward=1
$ sudo wg-quick up wg0

(如果没有 wg-quick 可以按照官方文档一步步来。)

跑一下看看情况:

$ wg
interface: wg0
  public key: <Public_Key>
  private key: (hidden)
  listening port: 4321

Public_Key 填到另外一个电脑就 OK 啦!

本文配合 Open WRT / Wireguard / IPSet / Route 食用效果更佳。