WireGuard来创建虚拟网络
安装Wireguard
apt install wireguard resolvconf -y
开启服务器IP转发并查看是否生效
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p
配置存储路径,并调整目录权限
cd /etc/wireguard/ chmod 0777 /etc/wireguard umask 077
生成服务器私钥
wg genkey > server.key
生成服务器公钥
wg pubkey < server.key > server.key.pub
同理,生成客户端的私钥以及公钥
wg genkey > unraid.key wg pubkey < unraid.key > unraid.key.pub
可以用cat命令查看所有生成的密钥
cat server.key && cat server.key.pub && cat unraid.key && cat unraid.key.pub
建立服务器配置文件的示范
echo " [Interface] PrivateKey = $(cat server.key) # 填写本机的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 = 50814 # 监听端口 DNS = 8.8.8.8 MTU = 1420 [Peer] PublicKey = $(cat client1.key.pub) #自动client1的公钥 AllowedIPs = 10.0.8.10/32 #客户端所使用的IP" > wg0.conf
因为我用的是甲骨文的amd机器,通过ifconfig命令来查看,默认的网卡是ens3,所以需要把上面的eth0改为ens3
echo " [Interface] PrivateKey = $(cat server.key) Address = 10.0.8.1 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE ListenPort = 50814 DNS = 8.8.8.8 MTU = 1420 [Peer] PublicKey = $(cat unraid.key.pub) AllowedIPs = 10.0.8.198/32 > wg0.conf
设置服务器开机自动启动wireguard
systemctl enable wg-quick@wg0
也可以手动来启动或者关闭wg0配置文件,wg0的配置文件在/etc/wireguard/wg0.conf
#启动wg0 wg-quick up wg0 #关闭wg0 wg-quick down wg0
如果装的宝塔面板,或者腾讯云or阿里云服务器,需要开放50814端口 – UDP
wireguard客户端下载地址
https://www.wireguard.com/install/
Wireguard客户端配置
[Interface] PrivateKey = 6M8HEZioew+vR3i53sPc64Vg40YsuMzh4vI1Lkc88Xo= #此处为unraid的私钥 Address = 10.0.8.198 #此处为peer规定的客户端IP MTU = 1420 #注意MTU值必须跟服务器端相同默认是1500 [Peer] PublicKey = Tt5WEa0Vycf4F+TTjR2TAHDfa2onhh+tY8YOIT3cKjI= #此处为server的公钥 AllowedIPs = 10.0.8.0/24 #此处为允许的服务器IP Endpoint = 114.132.56.178:50814 #服务器对端IP+端口
增加服务器客户端另外的PEER,比如此处为macbookair
#生成私钥 wg genkey > macbookair.key #通过私钥生成公钥 wg pubkey < macbookair.key > macbookair.key.pub #将peer公钥加入wg0.conf配置 echo " [Peer] PublicKey = $(cat macbookair.key.pub) #自动macbookair的公钥 AllowedIPs = 10.0.8.197/32 #客户端macbookair所使用的IP" >> wg0.conf
增加完毕以后需要重启wg0配置文件
配置unraid
unRAID – Setting – VPN Manager
然后点击右上角的basic
Local name: unraid
Local private key: 输入unraid私钥
Local public key: 输入unraid公钥
Local tunnel network pool: 10.0.8.0 / 24
Local tunnel address: 10.0.8.198
然后点击下面的ADD PEER
Peer tunnel address: 10.0.8.1
Peer endpoint: 146.56.149.99:50814 – VPS地址
Peer allowed IPs: 10.0.8.0/24
然后选APPLY生效,再点击右上角的INACTIVE
unraid的设置必须要保持20s在线,否则会掉线
WireGuard在iPhone手机端的设置

参考文章:https://gitee.com/spoto/wireguard
用Docker来安装WireGuard
这里用的是https://github.com/WeeJeWel/wg-easy#updating
docker run -d \ --name=wg-easy \ -e WG_HOST=123.123.123.123 (🚨这里输入服务器的公网IP) \ -e PASSWORD=passwd123 (🚨这里输入你的密码) \ -e WG_DEFAULT_ADDRESS=10.0.8.x (🚨默认IP地址)\ -e WG_DEFAULT_DNS=114.114.114.114 (🚨默认DNS)\ -e WG_ALLOWED_IPS=10.0.8.0/24 (🚨允许连接的IP段)\ -e WG_PERSISTENT_KEEPALIVE=25 (🚨重连间隔)\ -v ~/.wg-easy:/etc/wireguard \ -p 51820:51820/udp \ -p 51821:51821/tcp \ --cap-add=NET_ADMIN \ --cap-add=SYS_MODULE \ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \ --sysctl="net.ipv4.ip_forward=1" \ --restart unless-stopped \ weejewel/wg-easy