我有两台服务器(Linode 上的 VPS),其中一台(db)只有一个静态私有 IP,所以我需要通过另一台(web)访问它。现在一切正常,但我发现我无法从 db 服务器访问互联网上的任何内容……现在运行一些更新就好了 :)
配置 /etc/network/interfaces 是
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address (private IP)
netmask (netmask)
由于数据库服务器位于同一个私有 LAN 上,因此数据库服务器无法访问 Internet 吗?我需要进行哪些更改?
答案1
数据库服务器需要一个网关,并且该网关需要处理私有 IP 地址和用于访问互联网的“真实” IP 地址之间的 NAT。
在数据库服务器端,您需要添加以下配置代码片段
gateway (gateway)
之后address
,netmask
为 eth0 设置网关。如果 Linode 没有提供已为此设置的网关,那么你可能会使用另一台服务器的内部地址作为网关,然后为另一台服务器设置伪装,这使得它可以与其他计算机共享连接。
答案2
您需要确保子网上的路由器配置为为您的 IP 运行 NAT(或伪装)。
第二台服务器上的默认网关是什么?你能 ping 通那个 IP 吗?如果你能 ping 通网关,但不能 ping 通外面,那么网关的配置有问题,你可能需要与你的提供商联系。
答案3
Linode 为每个实例提供了一个公共地址。对于您的数据库实例,请登录您的 Linode 帐户并单击该实例,然后检查“网络”选项卡(我想,我是根据记忆这样做的)。如果您希望数据库能够访问互联网,请将公共地址设置为 eth0,此条目将列出一个网关,如 DerfK 所述。在 eth1 上设置私有地址。然后,您仍然应该能够从私有网络上的 Web 服务器访问数据库,并在公共网络上访问互联网。