我正在使用这个教程:将unix程序绑定到特定的网络接口
假设 $NS 和 $IN 设置正确
我的问题
我有两个网络接口,其中一个有数据限制,除了特定命令之外我不需要任何其他东西来访问它。但是当我尝试将它与“ip netns exec $NS {command}”一起使用时,此命令无法访问互联网可以连接到IP地址但无法解析主机
我采取的步骤
sudo mkdir -p /etc/netns/$NS
sudo sh -c "echo \"nameserver 8.8.8.8\" >> /etc/netns/$NS/resolv.conf"
curl <ip> // OK
curl <site> // OK
sudo ip netns add $NS
sudo ip link set $IN netns $NS
sudo ip netns exec $NS ip link set lo up
sudo ip netns exec $NS ip link set $IN up
sudo ip netns exec $NS dhclient $IN
sudo ip netns exec $NS curl <ip> // OK
sudo ip netns exec $NS curl <site> // Could not resolve host: <site>
笔记
- 接口类型为以太网
- netns ip 路由 (ip netns exec $NS ip 路由) 似乎是有序的,默认路由指向 IP $IN 有
- 给定步骤中的命令(最后一个命令除外)执行时没有错误