WireGuard多云组网教程
背景
我们多台云服务器,他们分布在阿里云、腾讯云、华为云等,它们又不在一个内网里面,想实现k3s集群,就需要把他们组到一个内网中,了解了很多的资料,大家很多用wireguard的组网方案,所有就有了这篇文章。下面是wireguard的组网方案。
一、服务器准备
本文使用2台云服务器进行组网配置。
host | linux版本 | 配置 | 角色 |
---|---|---|---|
101.43.x.x | CentOS7.6 | 4h8g | master |
42.192.x.x | CentOS7.6 | 1h2g | node1 |
42.192.x.x | CentOS7.6 | 1h2g | node2 |
xxx | xxx | xxx | xxx |
二、安装wireguard
Centos7系统内核版本太低,需要安装bbr,执行如下脚本安装即可,debian11可以忽略这步。
wget -N --no-check-certificate "https://github.000060000.xyz/tcpx.sh" && chmod +x tcpx.sh && ./tcpx.sh
在所有节点开启 IP 地址转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.proxy_arp = 1" >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
所有节点添加 iptables 规则,允许本机的 NAT 转换
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wg0 -o wg0 -m conntrack --ctstate NEW -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.88.88.1/24 -o eth0 -j MASQUERADE
设置主机、从机名字
# 设置主机
set hostname master
# 设置从机
set hostname node1
自定义安装配置
export VPN_SERVER_WG_PORT=12000
安装
这里可能会下载失败,失败了再次执行脚本即可。
wget --no-check-certificate -O /opt/wireguard.sh https://cdn.jsdelivr.net/gh/teddysun/across@master/wireguard.sh
chmod 755 /opt/wireguard.sh
/opt/wireguard.sh -s
切换指定目录,去生成公钥私钥
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
三、配置主机
cd /etc/wireguard
vi wg0.conf
[Interface]
Address = 10.88.88.1/24
ListenPort = 12000
# 主机私钥
PrivateKey = GOe5dVjnXMK87sNOmeIrvVNhUUV0MrNx6GY/l+SNX1c=
# 从机配置
[Peer]
PublicKey = HOsEJP0SEoo2qtE+EqhdDPZS7kqoJXZK+NzQmQ5lkjo=
AllowedIPs = 10.88.88.2/32
EndPoint = 42.192.x.x:11000
PersistentKeepalive = 25
四、配置从机
cd /etc/wireguard
vi wg0.conf
[Interface]
Address = 10.88.88.2/24
ListenPort = 11000
# 从机私钥
PrivateKey = 4Me0DwdYzVgMs6AMW+MLXiTZ+bs51MBSK0oVG8IJUFI=
# 主机配置
[Peer]
PublicKey = oIITkI9f09c3fDLBZTe7wHaxQ6iGNpENJ1frgQlXMRI=
AllowedIPs = 10.88.88.1/32
EndPoint = 101.43.x.x:12000
PersistentKeepalive = 25
五、测试
重启主机和从机
systemctl restart wg-quick@wg0
云服务器要去后台安全组开放wireguard监听的端口(本文主机为12000,从机为11000),tcp和udp协议都要开放。
通信测试
master ping从机
node1 ping主机
双向组网成功。
持续更新中。。。
参考文章
https://www.cnsre.cn/posts/211119132529/
https://teddysun.com/554.html
https://blog.csdn.net/wq1205750492/article/details/124816246?spm=1001.2014.3001.5502
wireguard面板
https://github.com/vx3r/wg-gen-web
https://github.com/Place1/wg-access-server