当前位置:   article > 正文

配置Wireguard的几个进阶玩法

配置Wireguard的几个进阶玩法

99002d1ff4c4e62c8d5391893bfca90a.gif

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

上篇文章中Wireguard配置文件详解,我们详细介绍了Wireguard的配置文件,并且做了一个简单的举例介绍。

通过上个案例,我们总结配置Wireguard网络的步骤如下:

1、配置Wireguard网卡。

  1. ip link add dev wg0 type wireguard
  2. ip address add dev wg0 10.1.1.2/24
  3. ip link set up dev wg0

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

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

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

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

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

379d1ef5fb8cc48f93f48bba904ef950.png

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

be6b37ed5c1d4e1a69ab5c370414057d.png

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

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

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

  1. PreUp = ip link add dev wg0 type wireguard
  2. PreUp = ip address add dev wg0 10.1.1.1/24
  3. PreUp = ip link set up dev wg0

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

  1. [Interface]
  2. PrivateKey = 2DOnuYIGbLMplHdd3TjwUjbZGQfPC6kxbp+XE+Z1FlM=
  3. ListenPort = 10086
  4. PreUp = ip link add dev wg0 type wireguard
  5. PreUp = ip address add dev wg0 10.1.1.1/24
  6. PreUp = ip link set up dev wg0
  7. [Peer]
  8. PublicKey = Qldp06YMySdq77rT+JboZAAicv0JZtuMxCl2Eb79yj8=
  9. Endpoint = 192.168.1.142:10086
  10. AllowedIPs = 10.1.1.0/24

402c5f544fa91dc974d9300682cd839a.png

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

8d6fba2e5ed2e2531d4ace2756c71dd4.png

那就调整一下配置文件。

  1. [Interface]
  2. PrivateKey = 2DOnuYIGbLMplHdd3TjwUjbZGQfPC6kxbp+XE+Z1FlM=
  3. Address = 10.1.1.1/24
  4. ListenPort = 10086
  5. [Peer]
  6. PublicKey = Qldp06YMySdq77rT+JboZAAicv0JZtuMxCl2Eb79yj8=
  7. Endpoint = 192.168.1.142:10086
  8. AllowedIPs = 10.1.1.0/24

然后再次加载。

1aa6cba7928a839c2126ace5415b836b.png

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

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

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

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

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

调整后的配置文件如下:

  1. [Interface]
  2. PrivateKey = 2DOnuYIGbLMplHdd3TjwUjbZGQfPC6kxbp+XE+Z1FlM=
  3. Address = 10.1.1.1/24
  4. ListenPort = 10086
  5. SaveConfig = true
  6. [Peer]
  7. PublicKey = Qldp06YMySdq77rT+JboZAAicv0JZtuMxCl2Eb79yj8=
  8. Endpoint = 192.168.1.142:10086
  9. AllowedIPs = 10.1.1.0/24
  10. 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/827016
推荐阅读
相关标签
  

闽ICP备14008679号