原题:轻松几步搭建 WireGuard (快速安全的下一代 VPN)
WireGuard 是一个快速安全的新型 VPN 隧道程序,它简单高效的特性特别适合在手机等低能耗设备上使用。D5A免费翻墙网
D5A免费翻墙网
WireGuard 不同于 IPSec ,它的设计简单(目前整体只有几千行代码),在不使用的情况下默认不会传输任何 UDP 数据包,而且能够无缝漫游在不同的 IP 地址间,这些特定都使它特别适合于移动设备的使用。目前 WireGuard 基于 Linux 内核实现,得到了 Linux 内核主要维护者 Greg KH 的肯定。下面介绍如何在 Ubuntu 16.04 搭建使用 WireGuard 。D5A免费翻墙网
搭建步骤
下载安装 WireGuard (服务端和客户端都需要安装)
$ sudo add-apt-repository ppa:wireguard/wireguardD5A免费翻墙网
$ sudo apt-get updateD5A免费翻墙网
$ sudo apt-get install wireguard
|
配置服务端相关参数,创建并编辑 /etc/wireguard/wg0.conf ,内容如下:
[Interface]D5A免费翻墙网
PrivateKey = <Private Key>D5A免费翻墙网
Address = 10.0.0.1/24D5A免费翻墙网
ListenPort = 56660D5A免费翻墙网
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADED5A免费翻墙网
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADED5A免费翻墙网
SaveConfig = true
|
其中 PrivateKey 通过命令 wg genkey 生成。D5A免费翻墙网
启动服务端 WireGuard
可以通过命令 wg 检查启动是否成功,成功的话会输出如下内容:D5A免费翻墙网
interface: wg0D5A免费翻墙网
public key: xxxxxxxxxxD5A免费翻墙网
private key: (hidden)D5A免费翻墙网
listening port: 56660
|
D5A免费翻墙网
将 WireGuard 设置成开机启动
$ systemctl enable wg-quick@wg0
|
配置客户端相关参数,创建并编辑 /etc/wireguard/wg0.conf ,内容如下:
[Interface]D5A免费翻墙网
PrivateKey = <Private Key>D5A免费翻墙网
Address = 10.0.0.3/24D5A免费翻墙网
DNS = 8.8.8.8
[Peer]D5A免费翻墙网
PublicKey = xxxxxxxxxxD5A免费翻墙网
Endpoint = <Server Public IP>:56660D5A免费翻墙网
AllowedIPs = 0.0.0.0/0
|
其中 PrivateKey 也是通过命令 wg genkey 生成, Peer 的 PublicKey 填入上面服务端 wg 命令返回的 public key , Endpoint 的 IP 设置为服务端可访问的公网 IP 。D5A免费翻墙网
启动客户端 WireGuard
启动后同样通过命令 wg 可查看公钥。D5A免费翻墙网
在服务端添加客户端信息
$ sudo wg set wg0 peer <Public Key> allowed-ips 10.0.0.3/24
|
Public Key 是客户端的公钥。D5A免费翻墙网
如果在服务端配置信息里设置了 SaveConfig = true 那么刚才添加的客户端参数信息会在服务端关闭时自动保存到配置文件中。如果想立即存储刚设置的参数也可以执行命令 wg-quick save wg0 。D5A免费翻墙网
测试验证
完成上述步骤后客户端便能直接访问服务端所在的网络了,可以通过 ping 10.0.0.1 进行验证。D5A免费翻墙网
Tips
- WireGuard 能够提供类似 TCP keepalive 的功能,如果客户端在 NAT 子网可以考虑开启这一选项。
- WireGuard 目前仅实现了 Linux 内核模块版本,所以目前客户端仅支持部分 Linux 和 Android 。
来自http://www.chinagfw.org/2018/08/wireguard-vpn.html
|