配置Wireguard的几个进阶玩法

本文详细探讨了如何通过预定义脚本和配置文件自动设置Wireguard网络,包括使用PreUp/PostUp等命令在系统启动时自动创建和配置网卡,以及优化配置如自动保存接口配置和发送保活报文。同时介绍了如何避免手动操作,实现开机自动运行Wireguard建立隧道。
摘要由CSDN通过智能技术生成

99002d1ff4c4e62c8d5391893bfca90a.gif

正文共:1111 字 12 图,预估阅读时间:2 分钟

上篇文章中Wireguard配置文件详解,我们详细介绍了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

379d1ef5fb8cc48f93f48bba904ef950.png

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

be6b37ed5c1d4e1a69ab5c370414057d.png

可以看到,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

402c5f544fa91dc974d9300682cd839a.png

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

8d6fba2e5ed2e2531d4ace2756c71dd4.png

那就调整一下配置文件。

[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

然后再次加载。

1aa6cba7928a839c2126ace5415b836b.png

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

而且,似乎也无需用到命令脚本,仅需要配置一条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”的配置文件:

76934bb3ed026578b1fc82fa8467630d.png

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

abe1c4d7e8484f47ae0ce7bb7d108c79.png

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

188bc92625394084480e4711970daf87.png

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

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

14bb7bdeff4583dac2e2baa4da9da462.png

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

9aafb63d215db0e8f2751f14e9345bea.png

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

wg-quick up /root/wg0.conf

6478e356d3ac238899486b516b8bc9d4.png

重启主机测试一下。

e4f00b1e302bb8b16351ebef865bcd7c.png

配置加载成功。

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

ab8e5907f77bb316c19dccf54de8d604.gif

长按二维码
关注我们吧

44f2137d12ab39911d68eaa1895b7385.jpeg

68bebbd73b497dd8dfbb8963387ef8e7.png

Wireguard配置文件详解

Netmaker服务器端快速搭建WireGuard网络

Netmaker是个啥?网络制造商?

SD-WAN设备的串接透明部署怎么实现?

openVPN服务器配置的31个关键点

某度网盘人工审核不安全?家庭小NAS搞起来!

带内网络管理和带外网络管理有啥区别?

超线程和VT-d开启与否对性能的影响大不大?

openVPN + VPP = openVPP

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Danileaf_Guo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值