配置 Linux 服务器使用本地 IP 地址将流量发送到本地机器

配置 Linux 服务器使用本地 IP 地址将流量发送到本地机器

两台Linux服务器,server1和server2,位于同一个本地网络上(它们也可以访问外部网络)。

Server2 的本地 IP 为192.168.0.2,主机名为host2.mydomain.com

问题 1:如果 server1 上的应用程序使用主机名向 server2 发送流量host2.mydomain.com,那么什么决定该流量是使用本地网络还是外部网络路由到 server2?

问题 2:为了确保从服务器 1 发送到服务器 2 的所有流量始终使用本地网络,我是否可以简单地在服务器1 /etc/hosts文件如下?

192.168.0.2 host2.mydomain.com

...想法是,如果服务器始终位于同一网络上,那么服务器 2 就永远不需要通过外部网络向服务器 1 发送流量(无论如何我能想到的)。在实践中这样做了吗,还是更喜欢其他方法?

答案1

您的问题 2 实际上是正确答案,但请仔细检查您是否:

主机:文件 DNS

在你的 /etc/nsswitch.conf 中

只是要确定。

通常,外部 DNS 应该在您的 DNS 记录中,但是在 server1 中,文件(在本例中表示 /etc/hosts)将优先,从而用于将主机解析为内部 IP,而互联网的其余部分将把相同的主机名解析为外部 IP。

但是,如果必须使用 DNS 名称(例如 mydomain.local),通常的做法是完全使用内部域。

答案2

只要该主机/DNS 记录是私有 IP,它就永远不会通过互联网路由。您可以使用 route -n 查看路由表。路由表将显示到达目标网络的路径。如果名称解析为另一个子网(即互联网)上的 IP,那么它会相应地将流量路由到那里。

对于您的第二个问题,如果您将 192.xxx HOSTNAME 添加到 /etc/hosts 文件中,那么它将始终解析为该名称。DNS 查询将首先在那里查找本地缓存,如果两者都不在其中,则它将通过名称服务器进行解析。

相关内容