Network-Namespaces

從網路命名空間訪問 localhost

  • October 22, 2020

我已按照本指南設置網路名稱空間(在其中執行 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給網路命名空間嗎?

根據我的經驗,新網路命名空間中的環回介面不會自動啟動。檢查它是否已啟動(例如,ip addr show在新的網路命名空間中使用)。如果它沒有出現,你可以用類似的東西來提出它ip netns exec myns ip link set dev lo up

也許我的回答應該是評論,但我沒有足夠的聲譽來為您的問題添加評論。

編輯:為了澄清起見,這個答案顯示瞭如何在新的網路命名空間中啟動環回介面(在問題的情況下為“myns”)。預設網路命名空間和新的網路命名空間都有自己的環回介面。此答案未顯示如何將預設網路命名空間中的環回介面公開到新的網路命名空間中。

引用自:https://unix.stackexchange.com/questions/615868