我正在尝试使用 DigitalOcean 的 VPC 服务为私人服务器设置网关服务器(为简洁起见,我将这两台服务器称为 GW(网关)和 BE(后端)。我遵循本教程几乎一丝不苟,但在 BE 配置指南的最后一步从 netplan 文件中删除公共 IP 后,BE 根本无法访问互联网。无论出于什么原因,BE 似乎无法成功使用 GW 作为代理来访问网络。每当我尝试从 BE ping 一个网站(即 google.com)时,它都会给我错误:“名称解析暂时失败。”两台服务器都运行 Ubuntu 18.04。
我知道有些人无法让此配置正常工作,因为 UFW 阻止了 GW 服务器上的路由请求,但即使我在两台服务器上都禁用 UFW,结果对我来说也是一样的。我知道 GW 和 BE 在网络中是连接的,因为我可以从 GW 通过其私有 IP ping BE,反之亦然。任何有关为什么这不起作用的帮助都将不胜感激——我甚至不知道如何排除重新路由过程中发生问题的故障,因此这方面的提示也很有用。
ETA:ip r
在 BE 服务器返回时(为了保护隐私,我省略了具体的 IP):
default via [GW priv ip] dev eth1 proto static
10.xx.0.0/16 dev eth0 proto kernel scope link src 10.xx.0.xx
10.xxx.0.0/16 dev eth1 proto kernel scope link src [BE priv IP]
159.xxx.xxx.0/20 dev eth0 proto kernel scope link src [BE public IP]
169.254.169.254 via [BE gateway IP] dev eth0
ETA2:如果有人好奇的话,结果就是呃……问题是我在其中一个命令中输入 IP 地址时打错了,而且我多次检查已创建的规则时都没有注意到。这个故事的寓意是不要像我一样愚蠢。