在 linux shell 脚本中,我想临时更改 dns 地址。 为此,我可以在 shell 运行后立即将临时 dns 地址插入到 resolv.conf 中,并在脚本结束前将其删除。就是这样。
但问题是,所有其他脚本在脚本运行时也会命中该地址。 这不是我所期望的。 有没有另一种方法可以在 shell 中临时更改 dns 而不会影响其他人?
最佳答案
Unshare 能够帮到你。取消共享帮助运行程序,其中一些命名空间从父级取消共享。使用 unshare,您可以使用仅限于您的脚本 session 的自定义 resolv.conf,不会影响其他系统用户和查询。
sudo unshare --mount bash -s <<'EOF'
mount --bind custom_resolv.conf /etc/resolv.conf
sudo -u username run_command
EOF
关于Linux shell 临时 DNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44364214/