当前位置: 首页 > news >正文

【 Linux 系统中 /etc/resolv.conf 文件的 DNS 配置】

如何在 Linux 系统中修改 /etc/resolv.conf 文件的 DNS 配置

在 Linux 系统中,/etc/resolv.conf 文件用于配置系统的 DNS 服务器。通过修改该文件,可以指定系统使用的 DNS 解析服务器。本文将详细介绍如何通过命令行和脚本修改 /etc/resolv.conf 文件,并提供改进建议,以确保操作的安全性和灵活性。


1. 手动修改 DNS 配置

命令详解:
sudo sed -i 's/nameserver 127.0.1.1/nameserver 10.48.6.41/g' /etc/resolv.conf
echo "change DNS to 10.48.6.41 success!"
  • sudo:以管理员权限运行命令。
  • sed -i:直接修改文件内容。
  • s/old/new/g:将文件中所有的 nameserver 127.0.1.1 替换为 nameserver 10.48.6.41
  • echo:输出成功提示信息。
注意事项:
  1. 密码安全
    • 避免使用 echo <密码> | sudo -S,因为这会暴露密码。建议直接运行 sudo 并手动输入密码。
  2. 文件覆盖问题
    • 在某些系统中,/etc/resolv.conf 是由网络管理工具(如 systemd-resolvedNetworkManager)自动生成的,直接修改可能会被覆盖。如果需要持久化配置,建议通过系统网络配置文件(如 /etc/network/interfacesnmcli)实现。

2. 使用脚本自动修改 DNS 配置

脚本功能:
  • 动态修改 /etc/resolv.conf 文件中的 DNS 配置。
  • 支持通过脚本参数指定 DNS IP。
  • 可选重启浏览器以应用更改。
脚本内容:
#!/bin/bash
# 功能:修改 DNS 配置并重启浏览器

# 检查参数
if [ -z "$1" ]; then
    echo "Usage: $0 <dns_ip>"
    echo "Example: $0 10.48.6.41"
    exit 1
fi

DNS_IP=$1
RESOLV_CONF="/etc/resolv.conf"

# 检查文件是否存在
if [ ! -f "$RESOLV_CONF" ]; then
    echo "Error: $RESOLV_CONF does not exist!"
    exit 1
fi

# 修改 DNS 配置
sudo sed -i "s/nameserver 127.0.1.1/nameserver $DNS_IP/g" "$RESOLV_CONF"
echo "change DNS to $DNS_IP success!!!"

# 重启浏览器(以 Firefox 为例)
pkill firefox
firefox &
使用方法:
  1. 将脚本保存为 change_dns.sh
  2. 赋予执行权限:
    chmod +x change_dns.sh
    
  3. 运行脚本并指定 DNS IP:
    ./change_dns.sh 10.48.6.41
    

3. 改进建议

  1. 避免硬编码密码
    • 不要在脚本中直接写入密码,使用 sudo 并手动输入密码。
  2. 支持动态 DNS IP
    • 通过脚本参数传递 DNS IP,提升灵活性。
  3. 文件检查
    • 在执行修改前检查 /etc/resolv.conf 文件是否存在,避免错误。
  4. 重启浏览器
    • 可选功能,按需重启浏览器以应用 DNS 修改。

4. 适用场景

  • 需要快速修改 DNS 配置的场景。
  • 需要重启浏览器以应用 DNS 修改的场景。
  • 需要灵活指定 DNS IP 的场景。

5. 扩展建议

  • 支持更多浏览器
    扩展脚本以支持更多浏览器(如 Chrome、Edge)。
  • 持久化 DNS 配置
    结合网络管理工具(如 NetworkManager)实现持久化配置。

总结

通过本文介绍的方法,你可以轻松修改 Linux 系统中的 DNS 配置。无论是手动操作还是使用脚本,都可以根据需求灵活调整。同时,遵循安全建议,避免密码泄露和文件覆盖问题,确保系统的稳定性和安全性。

如果你有其他需求或问题,欢迎进一步探讨!

相关文章:

  • 《海南建筑安全员C证》与其他地区有什么区别?
  • 计算机视觉算法实战——驾驶员玩手机检测(主页有源码)
  • AlphaDrive:通过强化学习和推理释放自动驾驶中 VLM 的力量
  • Webpack构建流程详解优化前端性能\Dev-Server与Proxy\网络攻击\HMR
  • TypeScript泛型深度剖析:对比JavaScript的灵活与严谨
  • Linux第二次练习
  • 【实战篇】JOIN 解析
  • Hackme靶机攻略
  • 【redis】发布订阅
  • 【鸿蒙开发】Hi3861学习笔记- GPIO之直流电机
  • 变量赋值汇编
  • 玩转云服务器——阿里云操作系统控制台体验测评
  • ES6新特性
  • 关于xcode Project navigator/项目导航栏的一些说明
  • 2574. 左右元素和的差值
  • Ubuntu24.04 LTS 版本 Linux 系统在线和离线安装 Docker 和 Docker compose
  • F. Counting Necessary Nodes 【Codeforces Round 1009 (Div. 3)】
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.1AWS OpenSearch无服务器方案
  • PySide(PyQt),使用types.MethodType动态定义事件
  • USB、DWC3与Gadget关系解析
  • 怎么做网站设计/百度推广客服电话人工服务
  • 0基础学网站建设/每日重大军事新闻
  • 用jsp做的动态网站/宁波seo费用
  • 做渠道的网站有哪些/外链百科
  • 怎样用微信做购物网站/windows优化大师官方下载
  • 购物网站有哪些比较有名的/企业员工培训内容及计划