Network-Namespaces
從網路命名空間訪問 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
給網路命名空間嗎?
根據我的經驗,新網路命名空間中的環回介面不會自動啟動。檢查它是否已啟動(例如,
ip addr show
在新的網路命名空間中使用)。如果它沒有出現,你可以用類似的東西來提出它ip netns exec myns ip link set dev lo up
。也許我的回答應該是評論,但我沒有足夠的聲譽來為您的問題添加評論。
編輯:為了澄清起見,這個答案顯示瞭如何在新的網路命名空間中啟動環回介面(在問題的情況下為“myns”)。預設網路命名空間和新的網路命名空間都有自己的環回介面。此答案未顯示如何將預設網路命名空間中的環回介面公開到新的網路命名空間中。