Linux 如何决定路由应用程序流量的接口?

Linux 如何决定路由应用程序流量的接口?

我有一个运行着两个接口的虚拟化 Linux 机器,例如int1int2int1是一个“NAT 网络”并且int2是 VirtualBox 上的“仅主机”适配器。

如果我尝试从终端 ping “google.com”,因为流量是从 路由的int2,我不会收到任何响应。但是,如果我尝试在浏览器中访问“google.com”,它会毫无问题地响应。

由于终端和 Firefox 都是简单的应用程序,我想知道 Linux 如何决定哪个应用程序的流量应通过哪个接口路由以及我如何更改它。

PS:Linux 盒子实际上是“Linux Backbox”,一个基于 Ubuntu 的操作系统,以防万一。

PPS:我知道如果我想从客户操作系统访问互联网和主机操作系统,我可以采用桥接连接,但这是我正在使用的公司计算机,我不希望 IT 部门四处走动在网络上搜索具有“幽灵”主机名的幽灵机器(字面意思是“幽灵”:D)。

答案1

Linux通过规则和路由来决定使用哪个接口。

这些规则指定了数据包的条件以及应查阅哪个路由表,ip rule show如果您使用的是 iproute2,则可以查看这些规则。大多数情况下,这只是说明按顺序查看本地表、主表和默认表。

路由表仅包含目的地列表以及数据包接下来应发送到的对象(包括应发送出去的接口)。这主要的可以使用 检查路由表ip route show

AFAIK Linux 不会对不同的应用程序使用不同的路由(前提是它们位于同一网络命名空间中并且您没有一些奇怪的 iptables fwmarking 系统)。

相关内容