iptables 中的 lo 到底是什么意思?

Que*_*low 6 iptables interface

我在 iptables 中看到了无数关于这条规则的例子:

-A INPUT -i lo -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

我以为lo是 localhost(又名127.0.0.1),但是当我将其注释掉时,我无法使用其私有 ip 地址访问服务器192.168.1.3,这意味着它不仅仅是 localhost。

此外,此规则是指源 ip、目标 ip 还是两者。意思是,如果我要欺骗来自 的来源127.0.0.1,它会被接受吗?

我尝试查看手册页,但找不到答案。如果有人能指出我正确的方向,那将会很有帮助。

mic*_*has 9

-i选项iptables采用接口名称。

您可以使用ifconfigip addr列出所有可用的接口及其配置。

通常有一个被调用的接口lo被配置为127.0.0.1/8,即所有以 开头的 ip 地址127。当用作目的地时,该接口只是将数据传送到同一台主机。

在您的情况下,-i指的是输入界面。无论目的地是哪个,该规则都匹配源自本地主机的所有流量。

如果您将其删除(并且在另一条规则中不允许此类流量),则本地软件将不再能够与任何其他主机通信。

  • 来自外面的任何东西都*不会*到达`lo`。它将到达“eth0”或您拥有的任何东西。分配的 IP 地址仅用于本地路由。也就是说,如果你想与 127.0.0.1 通信,内核会将该数据发送到接口 `lo` 而不是发送到你的外部网络。 (2认同)