我在服务器上有两个网卡:
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.137.66.69
netmask 255.255.255.0
dns-nameservers 8.8.8.8
auto eth1
iface eth1 inet static
address 10.137.15.20
netmask 255.255.255.0
gateway 10.137.15.1
-10.137.15.X 是我们希望 Web 服务器/SSH/FTP 响应的位置。出于安全考虑,我们希望它与 10.137.66.x 分开。无法访问 .66 或 eth0
-10.137.66.x 是我们的公司网络,我们将使用它在网络中访问服务器。
我们有 mysql/apache/ssh 等在所有接口上进行监听。
其行为方式:
在公司网络上时:我可以访问我们的网站、SSH 等。服务器可以 ping 8.8.8.8。在网络外时:我无法访问任何东西。
如果我运行: sudo route 添加默认网关 10.137.15.1 eth1我可以从外部和内部访问。但是,现在服务器本身无法 ping/访问/解析外部。这对服务器上的 PHP 和其他 Web 服务来说是一个问题。
有人可以给我指引方向或者给我一个我想要的正确的配置吗?
答案1
由于您使用 Google 的 DNS 服务器,因此您需要允许 DNS 请求通过 10.137.15.1 网关(我猜它们被过滤了),或者通过 10.137.66.0/24 网络中的网关添加到 8.8.8.8 的更具体的路由。
如果您需要后者,只需将以下行添加到您的 eth0 配置中:
post-up /sbin/ip route add 8.8.8.8/32 via 10.137.66.1
其中 10.137.66.1 是网关。如果愿意,您也可以使用 route 命令。