写在前面:我爱我的祖国,我爱党,党的一切都是光荣而且正确的
公司内部的私有网络是禁止从外部来进行访问,而很多情况下我们又需要在出差的时候来访问公司内部网络,这种情况下我们一般通过VPN来实现,linux操作系统种自带Wireguard的VPN系统,其配置方法如下:
构建VPN服务器
1、安装WireGuard工具
sudo yum install epel-release
sudo yum install wireguard-tools
2、生成密钥
cd /etc
sudo chmod 757 wireguard
cd wireguard
sudo umask 077
sudo wg genkey | tee privatekey | wg pubkey > publickey
3、创建VPN虚拟网卡配置
vi wg0.conf
文件中输入如下内容
[Interface]
PrivateKey = EFVM8dM76Z9QH9W9W8SxAMa+eXzISmj/WtB1qTsILnM=
#Address = 172.168.0.1/24, fdc9:281f:04d7:9ee9::1/64
Address = 172.168.0.1/24, 2603:c023:0:5868:81f6:5380:553c:1/128
ListenPort = 56688
PostUp = firewall-cmd --zone=public --add-masquerade; firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -o ens3 -j ACCEPT; firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o ens3 -j MASQUERADE; firewall-cmd --direct --add-rule ipv6 filter FORWARD 0 -i wg0 -o ens3 -j ACCEPT; firewall-cmd --direct --add-rule ipv6 nat POSTROUTING 0 -o ens3 -j MASQUERADE; firewall-cmd --add-port=56688/udp
PostDown = firewall-cmd --zone=public --remove-masquerade; firewall-cmd --direct --remove-rule ipv4 filter FORWARD 0 -i wg0 -o ens3 -j ACCEPT; firewall-cmd --direct --remove-rule ipv4 nat POSTROUTING 0 -o ens3 -j MASQUERADE; firewall-cmd --direct --remove-rule ipv6 filter FORWARD 0 -i wg0 -o ens3 -j ACCEPT; firewall-cmd --direct --remove-rule ipv6 nat POSTROUTING 0 -o ens3 -j MASQUERADE; firewall-cmd --remove-port=56688/udp
DNS = 8.8.8.8, 2001:4860:4860::8888
[Peer]
PublicKey = 6/1JzsxEdfo/iaFs/Q3AsglVNwSLAnxCZhLRfVXsHQE=
AllowedIPs = 172.168.0.0/24, 2603:c023:0:5868:81f6:5380:553c:2/128
其中私有密钥可以通过 cat publickey获得,注意建议使用ULA IPv6地址否则可能存在无法访问互联网的情况
4、配置防火墙放行56688端口
sudo firewall-cmd --zone=public --add-port=56688/udp --permanent
同时放开云端防火墙的入站端口

5、开启IPv4与IPv6转发
在/etc/sysctl.d/wg.conf文件,内容如下
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.ens3.accept_ra = 2
然后加载配置
sudo sysctl --system
6、启动WireGuard
sudo wg-quick up wg0
7、将WireGuard加入到开机自启
sudo systemctl enable wg-quick@wg0
查看WireGuard状态可以使用sudo wg show
客户端配置

其中interface为本机虚拟网卡设置,Peer是服务器端设置,其中Endpoint需要填写服务器外部地址