1.CentOS8.0服务端安装
yum update -y
yum install epel-release https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
yum install kmod-wireguard
yum install wireguard-tools
reboot
要开启 Linux内核的数据包转发功能可以使用如下的命令。
# sysctl -w net.ipv4.ip_forward=1
这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
用户还可以使用如下的命令查看当前系统是否支持包转发。
# sysctl net.ipv4.ip_forward
[root@VM_2_2_centos ~]# vim /etc/sysctl.conf
#配置转发,默认是0
net.ipv4.ip_forward = 1
#关闭重定向,防止恶意用户可以使用IP重定向来修改远程主机中的路由表
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
2、生成配置文件
# 创建并进入WireGuard文件夹
mkdir -p /etc/wireguard && chmod 0777 /etc/wireguard
cd /etc/wireguard
umask 077
# 生成服务器和客户端密钥对
wg genkey | tee server_privatekey | wg pubkey > server_publickey
wg genkey | tee client_privatekey | wg pubkey > client_publickey
服务器:
# 重要!如果名字不是eth0, 以下PostUp和PostDown处里面的eth0替换成自己服务器显示的名字
# ListenPort为端口号,可以自己设置想使用的数字
# 以下内容一次性粘贴执行,不要分行执行
echo "
[Interface]
PrivateKey = $(cat server_privatekey)
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 50814
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = $(cat client_publickey)
AllowedIPs = 10.0.0.2/32 " > wg0.conf
配置文件中的PostUp和PostDown是实现端口转发的关键配置,如果使用firewall防火墙的话,就不需要要配置PostUp和PostDown了, 直接使用如下这一行命令设置网卡支持端口转发即可。
# 开启伪装IP
firewall-cmd --permanent --add-masquerade
# 配置端口转发
firewall-cmd --permanent --add-forward-port=port=3306:proto=tcp:toaddr=192.168.1.2:toport=13306
客户端:
# Endpoint是自己服务器ip和服务端配置文件中设置的端口号,自己在本地编辑好再粘贴到SSH里
# 以下内容一次性粘贴执行,不要分行执行
echo "
[Interface]
PrivateKey = $(cat client_privatekey)
Address = 10.0.0.2/24
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = $(cat server_publickey)
Endpoint = 1.2.3.4:50814
AllowedIPs = 0.0.0.0/0, ::0/0
PersistentKeepalive = 25 " > client.conf
3、启动和关闭虚拟网卡
wg-quick up wg0
wg-quick down wg0
4、服务器端通过源码安装
从官方下载源码 wireguard-linux-compat - WireGuard kernel module backport for Linux 3.10 - 5.5
v1.0.20210606 wireguard-linux-compat-1.0.20210606.zip
v1.0.20210424 wireguard-linux-compat-1.0.20210424.zip
v1.0.20210219 wireguard-linux-compat-1.0.20210219.zip
v1.0.20210124 wireguard-linux-compat-1.0.20210124.zip
v1.0.20201221 wireguard-linux-compat-1.0.20201221.zip
v1.0.20201112 wireguard-linux-compat-1.0.20201112.zip
v1.0.20200908 wireguard-linux-compat-1.0.20200908.zip
v1.0.20200729 wireguard-linux-compat-1.0.20200729.zip
v1.0.20200712 wireguard-linux-compat-1.0.20200712.zip
v1.0.20200623 wireguard-linux-compat-1.0.20200623.zip
随便下载一个版本后, 进入到源码目录直接make即可。
make成功后
# modprobe udp_tunnel 加载依赖模块
# modprobe ip6_udp_tunnel 加载依赖模块
#insmod wireguard.ko 加载源码编译的内核模块
#wg-quick up wg0 启动网卡
5、生成的客户端client.conf文件复制到tunsafe的配置文件加载目录即可。
WireGuard官网下载(需扶墙):https://www.wireguard.com/install/
Windows:本地下载
MacOS:App Store
Android:APKPure下载 本地下载
iOS:App Store