将网络接口限制为特定命令,反之亦然

将网络接口限制为特定命令,反之亦然

我正在使用这个教程:将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 有
  • 给定步骤中的命令(最后一个命令除外)执行时没有错误

相关内容