使用WireGuard为阿里云专有网络主机提供外网访问

前言 我的阿里云服务器网络处于混合过度模式,逐步从经典网络往专有网络迁移。 之前每台经典网络主机都申请了公网IP和带宽,实际上对于大多数主机的业务而言,并不需要对外提供网络服务,只需要能访问外网即可。 所以这次新加的主机部分都没有去加弹性公网IP。 于是带来了问题:内网主机如何访问外网? 阿里云的dnat方案太贵了。不考虑。 尝试过本地配置网关,但是实验证明,阿里云的VPC交换机不是一个纯粹的二层交换,也许是设计有问题,也许是刻意阻止用户自己拿一台能访问公网的主机当内网网关。 所以这次使用WireGuard实现网络架构调整。 阿里云的经典网络主机里加了几条默认的路由:

前两个都好说,第三个是运营商级的NAT网络地址,之前在 OpenVPN Site-to-Site VPN between Asus Merlin And Ubnt EdgeRouter 里提过贵州电信的光纤网络对外就是这个地址段。 WireGuard的配置过程参考之前的文章,此处不多解释,只贴配置。 Incoming search terms:wireguard节点wireguard节点分享setup aliyun wireguardwireguard 分析wireguard 节点 分享ping: sendmsg: Required key not availableWireGuard 协议分析fogrbcsell5efringcqrmovementaevmovement3h5ink9b阿里云搭建wireguarddocker wireguarddkms管理wireguardbring3hvbreakd4mBlockInternet wireguardblindx1rLink to this post!

EdgeRouter 部署 WireGuard

安装 从 https://github.com/Lochnair/vyatta-wireguard/releases 下载对应的包 ERL, ER等 mips架构的,下载 octeon 版本 ERX 下载 ralink版本。 可以选择上传到路由上,或者ssh登录路由,sudo su到root,执行类似如下的命令

下载完成后

配置 执行下列命令生成私钥、共享密钥,公钥

将最后一个命令的输出复制下来,配置到服务器端 获取服务器端的公钥,替换下文的“公钥”并执行命令

配置好设备后,配置nat服务

剩下就是配置路由规则了,可以参考我的其他blog. Incoming search terms:wireguardwireguard edgerouteredgeos wiregaurdedgeos wireguarddevelop2mbedge router wireguardflowftzterribleva9vapork91winter9qsyellowsa9Link to this post!

WireGuard wg-quick PostUp的高级玩法

真的很高级。 wg-quick是WireGuard用来启动网络设备的**脚本**。 注意了,迄今为止,wg-quick是用bash写的一个脚本,不知道未来会不会变,至少目前shebang是

Incoming search terms:WG-QUICKwireguard mtuwg genkeyspacew1lwireuguard 高级wireguard wg-quickWireGuard P2P网络构建wg-quick 重新安装wg-quick log errortracklgvstarttu4as75uleavingx78ladyss1grain51lgivenjxigentlycfvfingerv55elementtgrdo68aLink to this post!