从网络命名空间访问 localhost

从网络命名空间访问 localhost

我已经关注了本指南设置网络命名空间(以在其中运行 VPN)。这是我的设置脚本:

ip netns add myns
ip link add type veth
ip link set veth1 netns myns

ip addr add 10.255.255.1/24 dev veth0
ip link set dev veth0 up
ip netns exec myns ip addr add 10.255.255.2/24 dev veth1
ip netns exec myns ip link set dev veth1 up
ip netns exec myns ip ro add default via 10.255.255.1

iptables -A POSTROUTING -t nat -o wlp58s0 -s 10.255.255.2 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

ip netns exec myns bash

某些应用程序绑定到端口localhost,但这不起作用。
localhost解决了,127.0.0.1但 ping 失败。

我可以以某种方式暴露localhost网络名称空间吗?

答案1

根据我的经验,新网络命名空间中的环回接口不会自动启动。检查它是否已启动(例如,ip addr show在新的网络命名空间中使用)。如果没有出现,您可以通过类似的方式提出ip netns exec myns ip link set dev lo up

也许我的答案应该是评论,但我没有足够的声誉来为您的问题添加评论。

编辑:为了澄清起见,这个答案显示了如何在新的网络命名空间(问题中的“myns”)中激活环回接口。默认网络命名空间和新网络命名空间都有自己的环回接口。此答案没有显示如何将环回接口从默认网络命名空间公开到新的网络命名空间。

相关内容