WireGuard做中转服务器时默认路由0.0.0.0的坑
背景简介
场景拓扑是这样的,C和S通过AB两台机器组成一个局域网。
C ---》A ---》B --- S
S是真正的服务器
AB之前是通过WireGuard来进行数据中继。
眼尖的朋友,可能已经看出来了,这是一个典型的游戏加速网络的结构,没错,确实有很多游戏加速器的网络是这样的。
初步尝试

问题解决
出现问题的时候,一头雾水,不知道是怎么搞,无助啊...
冷静下来,仔细一看wg-quick命令的输出,才发现,原来他写了条0.0.0.0/0的默认,就是说所有的IP数据包全部走wg0接口出去,当然SSH就卡了,没错,就是他搞的鬼了。
再看下WireGuard的配置文件,有一个allowed-ips配置项目,配置的就是0.0.0.0/0,虽然找到了配置问题,但是还是不知道为什么会这样,又看很多博客,大家都说,为了让所有流量全部进到WireGuard的隧道中,建议把路由配置为 0.0.0.0/0,经过仔细分析,发现他们的使用场景和我的这个场景完全不同,他们都在客户端上配置的0.0.0.0/0,所以没有问题,但是我这种场景,就不能这么配置了。

追根问底
顺手又看了一下wg-quick的源代码,发现他只是一个shell脚本,简单的看了一个,确实很简单,只需要通过wg-quick命令把Table配置成off或者其它有用值,就可以默认不添加0.0.0.0/0了。

所以呀,在自己的项目中,不能完全照搬网上的教程和帖子,还需要结合实际情况,多做实验验证,遇到问题,多想办法才能解决,当然最好的办法就是看帮助和源码。
参考资料:wireguard-tools/linux.bash at master · WireGuard/wireguard-tools (github.com)
版权声明:本文由土叔分享发布,如需转载请注明出处。