CentOS8下安装配置Wireguard

谷梁凌
2023-12-01

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

 类似资料: