Wireguard是一种vpn技术,和openvpn 等类似,是一种较为简单的vpn搭建方式,有需要进行异地组网的可以了解一哈;
首先,你需要一台有公网ip的服务器,阿里云腾讯云都可以,哪个便宜走哪个;
安装Wireguard
$ sudo yum install epel-release elrepo-release
$ sudo yum install yum-plugin-elrepo
$ sudo yum install kmod-wireguard wireguard-tools
进入配置存储路径,调整目录权限
cd /etc/wireguard/
chmod 0777 /etc/wireguard
umask 077
创建密钥
wg genkey | tee privatekey-server | wg pubkey > publickey-server
wg genkey | tee privatekey-client1| wg pubkey > publickey-client1
wg genkey | tee privatekey-client2| wg pubkey > publickey-client2
wg genkey | tee privatekey-client3| wg pubkey > publickey-client3
#这样你就有了 一个服务器公钥和一个服务器私钥及三队客户端的公钥和私钥;
vim /etc/wireguard/wg0.conf
#以下是配置文件
[Interface]
PrivateKey = xxx= # 填写本机的privatekey 内容
Address = 10.0.8.1 #本机虚拟局域网IP
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
#注意eth0需要为本机网卡名称
ListenPort = 444 # 监听端口 可修改
DNS = 8.8.8.8
MTU = 1420
[Peer]
PublicKey = xxx= #自动client1的公钥
AllowedIPs = 10.0.8.10/32 #客户端所使用的IP
[Peer]
PublicKey = xxx= #自动client2的公钥
AllowedIPs = 10.0.8.11/32 #客户端Client2所使用的IP
[Peer]
PublicKey = xxx= #自动client3的公钥
AllowedIPs = 10.0.8.12/32 #客户端Client2所使用的IP
我这里是有三个客户端组成的局域网
启动方式
wg-quick up wg0 #wg启动命令
wg-quick down wg0 #wg关闭命令
添加windows客户端
官网地址: https://www.wireguard.com/install/
安装好了之后是这样的
点击新建隧道-新建空白隧道
填写你的配置文件
[Interface]
PrivateKey = xxx #客户端的私钥
ListenPort = 443 #客户端监听的端口
Address = 10.0.8.10/32 #服务器端给到的ip地址
MTU = 1500 #打包传输的字节(好像是这个意思)
[Peer]
PublicKey = xxx #服务器端的公钥
AllowedIPs = 10.0.8.0/24 #给到外部访问的ip断
Endpoint = 150.158.20.17:443 #服务器的ip+端口
配置完成之后连接就是上图那个样子,显示已连接,这个时候 打开cmd ping一下10.0.8.1(上面配置文件设置的服务器虚拟ip)
同理,服务端ping 10.0.8.10 (客户端设置的ip)
那么第一个客户端就搭建成功了,同理搭建第二个客户端 10.0.8.11
第二个客户端使用centos搭建客户端,一样的配置文件
那么使用这个客户端ping 服务器及 client1
也没有问题;
验证客户端是否连接成功;可以在服务端使用 wg命令;
可以看到,已经连接成功的10和12 ip 还有一个 11的ip没有连接;至此我们两台 clien1和client2 就通过server端进行了 异地组网;