wireguard安装
yum install epel-release elrepo-release
yum install yum-plugin-elrepo
yum install kmod-wireguard wireguard-tools
yum install iptables-services
注意:安装完后重启系统
所有节点机器内核开启路由转发
sysctl -w net.ipv4.ip_forward=1
gateway 配置(公网IP)
cd /etc/wireguard
#生成密钥对
wg genkey | tee privatekey | wg pubkey > publickey
cat > wg0.conf <<EOF
[Interface]
ListenPort = 1000
Address = 10.255.8.1/24
#公网服务器私钥
PrivateKey = ${GATEWAY_SERVER_PRIVATE_KEY}
MTU = 1500
#注意网络接口名称:eth0, 改成实际网络接口
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
EOF
#启动
wg-quick up wg0
客户端配置( 无公网IP)
cd /etc/wireguard
#生成客户端密钥对
wg genkey | tee privatekey | wg pubkey > publickey
cat > wg0.conf <<EOF
[Interface]
Address = 10.255.8.2/24
#客户端私钥
PrivateKey = ${NAT_A_PRIVATE_KEY}
MTU = 1500
#注意网络接口名称:eth0, 改成实际网络接口
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
#服务端公钥
PublicKey = ${GATEWAY_SERVER_PUBLIC_KEY}
#包括其他客户端的内网IP段,用逗号分隔(打通各个peer内网)
AllowedIPs = 10.255.8.0/24,192.168.137.0/24,192.168.2.0/24
Endpoint = ${GATEWAY_SERVER:1000}
PersistentKeepalive = 25
EOF
#启动
wg-quick up wg0
gateway 添加peer
[Peer]
PublicKey = 客户端公钥
#包括当前peer内网的网段
AllowedIPs = 10.255.8.2/32,192.168.137.0/24
服务管理
wg-quick up wg0 #启动服务端
wg-quick down wg0 #停止服务端
wg show #查看节点列表
systemctl enable wg-quick@wg0.service
systemctl start wg-quick@wg0.service
systemctl stop wg-quick@wg0.service
内网其他机器添加静态路由:
route add -net 192.168.0.0/24 gw 192.168.2.192
route add -net 192.168.137.0/24 gw 192.168.2.192
route add -net 192.168.138.0/24 gw 192.168.2.192
可以添加到 /etc/rc.d/rc.local 中开机启动执行添加路由
注意事项
- 安装完成后需重启系统
- PostUp,PostDown网卡名称不要弄错
- 所有peer的内网网段需配置在客户端AllowedIPs中,gateway的各个网段是配置在每个peer段中(内网互通)