gioku

Wireguard的安装与使用
Wireguard……据说是个现代的玩意(官网原话)
扫描右侧二维码阅读全文
08
2018/10

Wireguard的安装与使用

Wireguard……据说是个现代的玩意(官网原话)

WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPSec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.

from https://www.wireguard.com/
不过这都不重要,怎么装怎么用才是重点

需要BBR加速的请注意!

wireguard的安装是需要linux-header这个包的,如果你使用老版本的系统升级新内核,大概率会装不上(至少Ubuntu 16.04是这样的)

本安装使用Ubuntu 18.04进行(我杀Ubuntu)
Ubuntu默认的内核版本是4.15,还是很新的,而且自带bbr(但是默认没有启动),我们这里就借用一下teddysun大佬的脚本打开自带的bbr好了。

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

运行后,脚本会打开bbr。

Press any key to start...or Press Ctrl+C to cancel

Info: Your kernel version is greater than 4.9, directly setting TCP BBR...
Info: Setting TCP BBR completed...

此时我们可以通过lsmod | grep bbr来看bbr是否已经被正确加载。
确定bbr已经启用完毕后,接下来需要安装header文件

apt install linux-headers-$(uname -r)

安装Wireguard需要的前置以及本体

apt install software-properties-common
add-apt-repository ppa:wireguard/wireguard
apt install wireguard-dkms wireguard-tools

此时注意!如果你之前的操作完全正确,wireguard安装完成后会产生类似的输出:

wireguard:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.0-20-generic/updates/dkms/

depmod...

DKMS: install completed.
Processing triggers for libc-bin (2.27-3ubuntu1) ...

如果你安装完成以后没有类似的输出,很大概率你的内核没有配好(特别是坑爹的header(我杀Ubuntu)。

生成公私钥

一行命令就可以搞定

wg genkey | tee privatekey | wg pubkey > publickey

然后可以使用cat publickeycat privatekey来分别查看你的公钥和私钥。

服务端的配置

Wireguard的配置文件默认情况下位于/etc/wireguard/,我们在这个文件夹下新建一个配置文件wg0.conf

nano /etc/wireguard/wg0.conf

Wireguard的配置文件大致可以分为两个部分:[Interface][Peer]

[Interface]
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o 你的网卡名称 -j MASQUERADE$
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o 你的网卡名称 -j MASQUERA$
ListenPort = Wireguard的连接端口
PrivateKey = 你的私钥
Address = 192.168.2.1/24 服务器的私有地址块

[Peer]
PublicKey = 你的第一个客户端的公钥
AllowedIPs = 192.168.2.2/32 分配给客户端的地址,注意跟[Interface]中的私有地址块在同一网段内

客户端的连接

如果你使用的是Linux系统,那就很简单
按照同样的方法在客户端上安装Wireguard,生成自己的公私钥,然后编辑/etc/wireguard/wg0

[Interface]
PrivateKey = 你的私钥
Address = 192.168.2.2/32 你在服务器上设置的分配给客户端的地址
DNS = 8.8.8.8 钦定客户端使用此DNS(必须,防止DNS污染)

[Peer]
PublicKey = 你的服务器的公钥
Endpoint = 你的服务器地址:端口
AllowedIPs = 0.0.0.0/0 所有IP都走服务器,此处可以有自定义路由
PersistentKeepalive = 180 每3分钟续命一次以维持连接,在NAT后需要使用

然后以Root权限运行wg-quick up wg0即可。

在Windows上可以使用TunSafe,配置文件书写方式与Linux下一致,打开TunSafe后,单击Edit Config将配置文件粘贴即可。

使用体验

Wireguard使用的是UDP,因此在某些UDP封锁严重的地区效果可能不好。
在北京移动和北京联通网络下测试,北京联通的速度与SS相当,北京移动稍逊于SS。
但是UDP也允许我们使用udp2raw一类的软件进行UDP伪装。

最后修改:2018 年 10 月 10 日 10 : 17 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论