环回接口和 127.0.0.1 IP 地址有什么区别?

环回接口和 127.0.0.1 IP 地址有什么区别?

我正在尝试在 iptables 中允许在同一台机器上运行的软件之间的连接。

以下情况会导致我的互联网连接中断:

# The following rules doesn't allow the VPN connection to be established
#-A INPUT -i lo -o lo -j ACCEPT

下面的方法是可行的:

# The following rules work and make RStudio works
-A INPUT -s 127.0.0.1/24 -d 127.0.0.1/24 -j ACCEPT

lo接口和IP地址有什么区别127.0.0.1

答案1

简而言之,Linux 内核在绕过 iptables 的内部路由时会执行一些幕后魔法来加速流量。我相信您可以设置 sysctl 属性route_localnet并强制流量在本地“路由”,然后它会通过接口而不是仅通过 ip 来命中 iptables 规则。如果这不起作用,请尝试trace在表中设置raw并跟踪数据包通过所有链和表的流程。

另外(附注),当使用 127.0.0.0 网络时...掩码实际上应该是 127.0.0.0/8 而不是 /24。我见过一些 Linux 进程在 lo 接口上使用 127.100.0.1 和其他奇怪的地址。

相关内容