Linux 如何处理将请求路由到自己的 IP?

Jam*_* MV 3 linux networking ip

尤其是 CentOS。假设机器在 1.2.3.4 上运行 httpd 并向http://1.2.3.4发出请求,机器是否立即知道请求是针对自己的,因此在内部路由它,或者它是否出去和返回?

我有兴趣了解这是如何工作的。

dir*_*rkt 5

是的,机器确实立即知道请求是针对自己的。它通过将数据包的目标地址与分配给网络接口的所有已知 IP 地址进行比较,将数据包标记为本地,查询一个特殊的路由表 ( ip route show table local ),该路由表会自动更新为本地分配的 IP 地址的规则,并替换网络lo即使目标地址不是127.0.0.1(尝试tcpdump -ni loping 本地地址时),也可以使用 来传送它的接口。

您还可以ip route get 1.2.3.4用来展示 linux 内核如何对路由 ( local) 进行分类,以及它将通过哪个接口传送数据包,以及网关等其他信息。

  • 并且您可以使用“ip route get 1.2.3.4”来让它向您展示如何路由这样的数据包。 (2认同)