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手机端的设置

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

Share

You may also like...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注