28
2025
03
11:35:43

配置Wireguard的几个进阶玩法

我们总结配置Wireguard网络的步骤如下:

1、配置Wireguard网卡

ip link add dev wg0 type wireguard
ip address add dev wg0 10.1.1.2/24
ip link set up dev wg0


2、配置Wireguard公钥、私钥和配置文件。

3、应用配置文件,创建隧道连接。

我们发现,配置生成的Wireguard公钥、私钥和配置文件,一旦生成,就一直存在于磁盘之中;但是手工创建的Wireguard网卡重启之后就失效了,还需要再次配置,非常不方便。那该怎么解决呢?

比较简单的方法就是写入到启动脚本文件/etc/rc.d/rc.local中:



ip link add dev wg0 type wireguard
ip address add dev wg0 10.1.1.2/24
ip link set up dev wg0
wg setconf wg0 /root/wg0.conf


配置Wireguard的几个进阶玩法

配置完成之后,我们重启测试一下。

配置Wireguard的几个进阶玩法

可以看到,Wireguard配置加载成功,隧道建立成功,业务互访正常。

再想一下,我们前面提到,可以通过配置PreUp、PostUp、PreDown、PostDown等命令来在特定时间执行特定脚本。是否可行呢?我们来测试一下。

我们的需求是创建并配置Wireguard网卡,那么命令应该是:


PreUp = ip link add dev wg0 type wireguard
PreUp = ip address add dev wg0 10.1.1.1/24
PreUp = ip link set up dev wg0


添加之后,完整的配置应该是:

[Interface]
PrivateKey = 2DOnuYIGbLMplHdd3TjwUjbZGQfPC6kxbp+XE+Z1FlM=
ListenPort = 10086
PreUp = ip link add dev wg0 type wireguard
PreUp = ip address add dev wg0 10.1.1.1/24
PreUp = ip link set up dev wg0
[Peer]
PublicKey = Qldp06YMySdq77rT+JboZAAicv0JZtuMxCl2Eb79yj8=
Endpoint = 192.168.1.142:10086
AllowedIPs = 10.1.1.0/24


配置Wireguard的几个进阶玩法

使用命令加载配置文件,我们发现竟然执行了重复的命令,应该是有一些预定义的配置。

配置Wireguard的几个进阶玩法

那就调整一下配置文件。


[Interface]
PrivateKey = 2DOnuYIGbLMplHdd3TjwUjbZGQfPC6kxbp+XE+Z1FlM=
Address = 10.1.1.1/24
ListenPort = 10086
[Peer]
PublicKey = Qldp06YMySdq77rT+JboZAAicv0JZtuMxCl2Eb79yj8=
Endpoint = 192.168.1.142:10086
AllowedIPs = 10.1.1.0/24


然后再次加载。

配置Wireguard的几个进阶玩法

可以发现,配置加载成功,隧道建立成功,业务互访正常。

而且,似乎也无需用到命令脚本,仅需要配置一条Address = 10.1.1.1/24,就可以下发4条命令来配置网卡:


ip link add wg0 type wireguard
wg setconf wg0 /dev/fd/63
ip -4 address add 10.1.1.1/24 dev wg0
ip link set mtu 1420 up dev wg0


我们还可以发现,使用配置文件自动生成的网卡名称为wg0,网卡默认的MTU值为1420字节。

为了增加配置的可靠性,可以在[Interface]配置中增加自动保存接口配置的选项SaveConfig = true;为了提高网络的可用性,可以在[Peer]配置中增加自动发送保活报文的选项PersistentKeepalive = 10。

调整后的配置文件如下:


[Interface]
PrivateKey = 2DOnuYIGbLMplHdd3TjwUjbZGQfPC6kxbp+XE+Z1FlM=
Address = 10.1.1.1/24
ListenPort = 10086
SaveConfig = true
[Peer]
PublicKey = Qldp06YMySdq77rT+JboZAAicv0JZtuMxCl2Eb79yj8=
Endpoint = 192.168.1.142:10086
AllowedIPs = 10.1.1.0/24
PersistentKeepalive = 10


当我们在调用配置文件时,需要指定完整的文件路径+名称



wg-quick up /root/wg0.conf


如果没有输入绝对路径,Wireguard就会认为用户只输入了接口名称,从而自动选择“/etc/wirecuard/”路径下“接口名称.conf”的配置文件

配置Wireguard的几个进阶玩法

上次我们也提到,不能通过手工添加路由的方式将流量发送到Wireguard对端主机,而是要写入到配置文件中。比如我们现在要在配置文件中增加一段去往iperf142主机的22.1.1.0/24网段,需要调整配置文件。

配置Wireguard的几个进阶玩法

我们试一下重新加载配置文件。

配置Wireguard的几个进阶玩法

可以看到,因为提示配置文件存在而报错,这时就要使用strip命令来在不中断活动会话的情况下重新加载配置文件了。


wg syncconf wg0 <(wg-quick strip /root/wg0.conf)


配置Wireguard的几个进阶玩法

可以看到,配置直接就同步过来了,路由表项添加成功。如果不使用strip命令重新加载配置文件,我们可能就要DOWN掉网卡再重新加载配置了。

配置Wireguard的几个进阶玩法

说了这么多,可能还是绕不开一个问题,那就是加载配置的这条命令是不是要手工来执行?如果想开机自动运行Wireguard来创建隧道,那我们还是要将加载配置的命令写入到启动脚本文件/etc/rc.d/rc.local中。



wg-quick up /root/wg0.conf


配置Wireguard的几个进阶玩法

重启主机测试一下。

配置Wireguard的几个进阶玩法

配置加载成功。

怎么样,两种配置方式,你更喜欢哪一种呢?




推荐本站淘宝优惠价购买喜欢的宝贝:

配置Wireguard的几个进阶玩法

本文链接:https://hqyman.cn/post/9886.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: