我们总结配置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配置加载成功,隧道建立成功,业务互访正常。
再想一下,我们前面提到,可以通过配置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
使用命令加载配置文件,我们发现竟然执行了重复的命令,应该是有一些预定义的配置。
那就调整一下配置文件。
[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
然后再次加载。
可以发现,配置加载成功,隧道建立成功,业务互访正常。
而且,似乎也无需用到命令脚本,仅需要配置一条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对端主机,而是要写入到配置文件中。比如我们现在要在配置文件中增加一段去往iperf142主机的22.1.1.0/24网段,需要调整配置文件。
我们试一下重新加载配置文件。
可以看到,因为提示配置文件存在而报错,这时就要使用strip命令来在不中断活动会话的情况下重新加载配置文件了。
wg syncconf wg0 <(wg-quick strip /root/wg0.conf)
可以看到,配置直接就同步过来了,路由表项添加成功。如果不使用strip命令重新加载配置文件,我们可能就要DOWN掉网卡再重新加载配置了。
说了这么多,可能还是绕不开一个问题,那就是加载配置的这条命令是不是要手工来执行?如果想开机自动运行Wireguard来创建隧道,那我们还是要将加载配置的命令写入到启动脚本文件/etc/rc.d/rc.local中。
wg-quick up /root/wg0.conf
重启主机测试一下。
配置加载成功。
怎么样,两种配置方式,你更喜欢哪一种呢?
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/9886.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~