Linux shell 临时 DNS

标签 linux shell dynamic dns

在 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/

相关文章:

linux - $FWDIR 不指向任何地方

linux - 如何使用sed命令更改limits.conf中的ulimit值?

javascript - 如何在 curl 中使用谷歌图片搜索

linux - 在 fork() 之前阻塞 SIGCHLD 的目的是什么?

excel - 当单元格可能不同时,Powershell excel 合并单元格

CSS 以动态宽度左右浮动?

java - 使用java获取linux终端的输出?

linux - 如何在 Linux/bash 中为 shell 脚本创建状态日志

jquery ui可排序传播动态创建可排序

linux - 删除特定单词之间带有 VIM 的 .txt 的内容