服务器上有两个NIC:

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-nameserver 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 add default gw 10.137.15.1 eth1,我可以从外部和内部访问。但是,现在服务器本身无法ping/access/resolv到外部。这对于服务器上的PHP和其他web服务来说是一个问题。
有人能给我一个方向或显示一个适当的配置,我想要漂亮吗?

最佳答案

因为您想运行“sudo route add default gw 10.137.15.1eth1”,所以我只能假设您在默认情况下设置了另一个默认路由(尽管在您的配置文件中,您有相同的10.137.15.1)。
所以我假设你在eth0上有一个默认的gw,比如10.137.66.1,这可能是你路由器的ip。
它为IP类10.137.66.0/24执行NAT
因为你的ubuntu在thet网络中有eth0,路由器将nat 10.137.66.69,你将可以访问Internet(8.8.8.8)。
现在,在你的ubuntu(eth1)的另一边,所有的计算机必须有10.137.15.20(eth0)作为默认的gw,你的ubuntu必须像路由器一样工作。因此,必须启用ip转发(以允许数据包从一个接口传递到另一个接口),并使用iptables执行NAT。
将默认网关设置为10.137.15.1是没有意义的,除非您有一个具有该IP的路由器可以为.15.0/24网络执行NAT。

10-07 20:31