Wireguard是一个比OpenVPN更加先进的点对点VPN系统,作用是将分布在不同数据中心的VPS通过Tunnel连接起来,保证两台或多台VPS传输安全性,也方便其之间在自己的局域网之内进行通信。其实现在关于这类教程也是一大堆,所以本文章仅仅是做本人日常记录(WireGuard Tunnel 为UDP Tunnel在国内环境会有一定的QOS)
本教程安装环境为:CentOS7 两台VPS:VPS(1)/ VPS(2)
首先安装必要的一些组件
yum install wget vim -y
然后在两台VPS上更新内核以及安装Wireguard组件:(以下方法来自https://www.wireguard.com/install/)
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
yum install wireguard-dkms wireguard-tools -y
上门的方法可能对一些VPS无效(因内核问题),如果你嫌麻烦,可以借用下面的Wireguard一键脚本里的「升级系统内核」功能后再执行上面官方提供的命令(这个脚本里面的其他功能暂时用不到)
wget https://raw.githubusercontent.com/atrandys/wireguard/master/wireguard_install.sh
chmod +x wireguard_install.sh
./wireguard_install.sh
输入以下命令验证WireGuard是否安装成功
modprobe wireguard && lsmod | grep wireguard
如返回以下提示,则表示安装成功
wireguard 229376 0
ip6_udp_tunnel 16384 1 wireguard
udp_tunnel 16384 1 wireguard
如返回以下提示,则没有安装成功,请检查内核是否安装正确
modprobe: FATAL: Module wireguard not found.
WireGuard默认的配置目录在/etc/wireguard,CentOS需要自己创建该目录,并进入该目录
mkdir /etc/wireguard
cd /etc/wireguard
接下来创建两台VPS各自的公钥和私钥,并给wireguard目录权限,生成后,文件夹里就会有publickey
和privatekey
两个文件了,这个就是程序自动生成的公钥和私钥文件,可以使用cat命令查看内容
wg genkey | tee privatekey | wg pubkey > publickey
chmod 777 -R /etc/wireguard
以上两个VPS的准备工作已经完成,接下来我们需要定义VPS(1)和(2)客户端和服务端的关系,一般来说客户端和服务端其实没有一个绝对的概念,连接以后就是双端对等的了,但是为了方便就还是假定一个主从的关系。但是鉴于当前网络环境,我们一般将有公网IP的VPS定义为服务端,NAT VPS定义为客户端
配置服务/客户端(在/etc/wireguard文件夹内):
vim wg0.conf
上面的这个配置文件在服务端和客户端都要相应创建,名字最好是一样的,以方便你以后对接多台VPS区分用,名字不一样也行
服务端配置文件:
[Interface]
Address = 192.168.1.1/24
ListenPort = 2333 #端口建议在3000以下
PrivateKey = < 这里填写 服务端 的 privatekey 的内容 >
DNS = 8.8.8.8,1.1.1.1
MTU = 1300
# Client
[Peer]
PublicKey = < 这里填写 客户端 上 publickey 的内容 >
AllowedIPs = 192.168.1.2/24
客户端配置文件:
[Interface]
PrivateKey = < 这里填写 客户端 上 privatekey 的内容 >
Address = 192.168.1.2/24
DNS = 8.8.8.8,1.1.1.1
MTU = 1300
# Server
[Peer]
PublicKey = < 这里填写 服务端 上 publickey 的内容 >
Endpoint = 服务端公网IP:2333
AllowedIPs = 192.168.1.1/24
PersistentKeepalive = 25
以上文件配置好并保存后,两个VPS执行以下命令启动WireGuard
wg-quick up wg0
接下来你可以在IP ADDR中看到你的WG虚拟网卡,并ping对端端IP看是否ping通,如果没问题,则可以执行以下命令启用开机启动
systemctl enable wg-quick@wg0
如无法ping通,请关闭iptables/Firewalld再试,或在其增加增加放行规则
WireGuard相关常用命令还有:
wg-quick down wg0 #关闭wg0网络
wg #查看当前的运行情况