【 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:输出成功提示信息。
注意事项:
- 密码安全:
- 避免使用
echo <密码> | sudo -S,因为这会暴露密码。建议直接运行sudo并手动输入密码。
- 避免使用
- 文件覆盖问题:
- 在某些系统中,
/etc/resolv.conf是由网络管理工具(如systemd-resolved或NetworkManager)自动生成的,直接修改可能会被覆盖。如果需要持久化配置,建议通过系统网络配置文件(如/etc/network/interfaces或nmcli)实现。
- 在某些系统中,
2. 使用脚本自动修改 DNS 配置
脚本功能:
- 动态修改
/etc/resolv.conf文件中的 DNS 配置。 - 支持通过脚本参数指定 DNS IP。
- 可选重启浏览器以应用更改。
脚本内容:
#!/bin/bash
# 功能:修改 DNS 配置并重启浏览器# 检查参数
if [ -z "$1" ]; thenecho "Usage: $0 <dns_ip>"echo "Example: $0 10.48.6.41"exit 1
fiDNS_IP=$1
RESOLV_CONF="/etc/resolv.conf"# 检查文件是否存在
if [ ! -f "$RESOLV_CONF" ]; thenecho "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 &
使用方法:
- 将脚本保存为
change_dns.sh。 - 赋予执行权限:
chmod +x change_dns.sh - 运行脚本并指定 DNS IP:
./change_dns.sh 10.48.6.41
3. 改进建议
- 避免硬编码密码:
- 不要在脚本中直接写入密码,使用
sudo并手动输入密码。
- 不要在脚本中直接写入密码,使用
- 支持动态 DNS IP:
- 通过脚本参数传递 DNS IP,提升灵活性。
- 文件检查:
- 在执行修改前检查
/etc/resolv.conf文件是否存在,避免错误。
- 在执行修改前检查
- 重启浏览器:
- 可选功能,按需重启浏览器以应用 DNS 修改。
4. 适用场景
- 需要快速修改 DNS 配置的场景。
- 需要重启浏览器以应用 DNS 修改的场景。
- 需要灵活指定 DNS IP 的场景。
5. 扩展建议
- 支持更多浏览器:
扩展脚本以支持更多浏览器(如 Chrome、Edge)。 - 持久化 DNS 配置:
结合网络管理工具(如NetworkManager)实现持久化配置。
总结
通过本文介绍的方法,你可以轻松修改 Linux 系统中的 DNS 配置。无论是手动操作还是使用脚本,都可以根据需求灵活调整。同时,遵循安全建议,避免密码泄露和文件覆盖问题,确保系统的稳定性和安全性。
如果你有其他需求或问题,欢迎进一步探讨!
相关文章:
【 Linux 系统中 /etc/resolv.conf 文件的 DNS 配置】
如何在 Linux 系统中修改 /etc/resolv.conf 文件的 DNS 配置 在 Linux 系统中,/etc/resolv.conf 文件用于配置系统的 DNS 服务器。通过修改该文件,可以指定系统使用的 DNS 解析服务器。本文将详细介绍如何通过命令行和脚本修改 /etc/resolv.conf 文件&a…...
《探秘人工智能与鸿蒙系统集成开发的硬件基石》
在科技飞速发展的当下,人工智能与鸿蒙系统的集成开发开辟了创新的前沿领域。这一融合不仅代表着技术的演进,更预示着智能设备生态的全新变革。而在这场技术盛宴的背后,坚实的硬件配置是确保开发顺利进行的关键,它就像一座大厦的基…...
datax源码分析
文章目录 前言一、加载配置文件二、根据加载的配置文件进行调度三、根据配置文件执行读取写入任务总结 前言 在上一篇文章当中我们已经了解了datax的启动原理,以及datax的最基础的配置,datax底层java启动类的入口及关键参数。 接下来我将进行启动类执行…...
QuickAPI 和 DBAPI 谁更香?SQL生成API工具的硬核对比(一)
最近低代码开发火得不行,尤其是能把数据库秒变API的工具,简直是开发者的救星。今天咱就聊聊两款国内玩家:QuickAPI(麦聪软件搞出来的低代码神器)和 DBAPI(开源社区的硬核作品)。这两货都能靠SQL…...
Git使用(一)--如何在 Windows 上安装 Git:详细步骤指南
如果你想在 Windows 机器上安装 Git,可以按照以下详细指南进行操作。 第一步:下载 Git 可通过官网下载 适用于 Windows 的 Git 最新版本。 如果下载速度较慢,可以通过下面提供的百度网盘 链接下载安装包, https://git-scm.com/d…...
C#-使用VisualStudio编译C#工程
一.创建csproj文件 二.创建源cs文件 三.生成解决方案 四.运行解决方案 五.VisualStudio功能列表 <1.代码格式化: CtrlKD完成代码整体格式化 <2.窗口布局 窗口->重置窗口布局 <3.引用查找&关联 <4.包管理 <5.日志输出级别 工具->选项->项目解决方案…...
Qt常见面试题合集
零、基本概念 什么是信号槽? 信号槽类似于软件设计模式中的观察者模式,(观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。…...
使用 Golang 操作 MySQL
在Go语言中,操作SQL数据库,通常会用到一些第三方库来简化数据库的连接、查询和操作过程。其中原生的 database/sql go-sql-driver/mysql 库更符合sql语句使用习惯。 安装 go get github.com/go-sql-driver/mysql 直接上代码来演示基本的创建ÿ…...
单片机—中断系统
什么是中断系统? 为使得CPU具有对外界紧急事件的实时处理能力而设置的,当CPU正在处理某些事的时候,当外界紧急事件请求,CPU会停止当前的事情,先去处理紧急的事件,处理结束后,在返回处理当前事件…...
vscode编译器的一些使用问题
目录 解决pip不可用问题 检查VSCode的终端配置 解决pip不可用问题 eg: C:\Users\student>pip pip 不是内部或外部命令,也不是可运行的程序或批处理文件。 先找到系统环境变量 高级->环境变量 系统属性->Path 变量名随意,自己后续知道…...
ubuntu 和 RV1126 交叉编译Mosqutiio-1.6.9
最近需要交叉编译mosquitto,遇到一些小问题记录一下。 1.众所周知使用它自带的Makefile编译的时候,只需要在编译前,指定它config.mk中的变量:CFLAGS头文件路径 和 LDFLAGS库文件路径就ok,例子如下: expor…...
Docker 》》Docker Compose 》》network 网络 compose
docker 默认的网络 三种模式 # 列出所有当前主机上或Swarm集群上的网络 docker network ls#查看网络详情 docker network inspect network名称# 清除未使用的docker网络 docker network prune -f# 创建网络 ocker network create -d bridge 网络名称 docker network create –s…...
【SpringMVC】深入解析使用 Postman 和浏览器模拟将单个与多个参数传递到后端的原理和后端接收参数的过程
SpringMVC—请求(Request) 访问不同的路径,就是发送不同的请求;在发送请求时,可能会带一些参数,所以学习Spring的请求,主要是学习如何传递参数到后端以及后端如何接收; 我们主要是使用 浏览器 和 Postman …...
VSTO(C#)Excel开发10:启动和卸载顺序 事件处理 监视变化
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
vue 仿deepseek前端开发一个对话界面
后端:调用deepseek的api,所以返回数据格式和deepseek相同 {"model": "DeepSeek-R1-Distill-Qwen-1.5B", "choices": [{"index": 0, "delta": {"role": "assistant", "cont…...
UE5以插件的形式加载第三方库
之前在UE中加载第三方库的形式是以静态或者动态链接的形式加载但是不太容易复用。就想着能不能以插件的形式加载第三方库,这样直接把插件打包发行就可以复用了,之前也找过相应的教程但是很难找到比较简单易懂的教程,要么是比较复杂࿰…...
Vue3全局化配置(ConfigProvider)
效果如下图: 在线预览 APIs ConfigProvider 参数说明类型默认值theme主题对象Theme{}abstractboolean是否不存在 DOM 包裹元素truetagstringConfigProvider 被渲染成的元素,abstract 为 true 时有效‘div’ Theme Type 名称说明类型默认值common?全…...
Centos7系统基于docker下载ollama部署Deepseek-r1(GPU版不踩坑)
目录 一、Docker下载安装 二、Ollama安装 三、部署Deepseek-R1 一、Docker下载安装 1、更新源 sudo yum update -y 2、下载依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 3、添加docker远程仓库地址 yum-config-manager --add-repo http://down…...
[目标检测] 训练之前要做什么
背景:训练一个Yolo8模型,在训练之前,数据集的处理是影响效果的关键因素。 Step1 定义规则 什么是人/车,比如人的话可能是站着的人,如果是骑电动车/自行车就不算是人。 Step2 收集数据集 1. 自己标注。如果是自己标…...
写了一个QT的定时器
主程序 #include <QCoreApplication> #include "mainwindow.h"int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);MainWindow w;return a.exec(); }mainwindow.cpp程序 #include "mainwindow.h"#include <QDateTime>MainWi…...
LeetCode 力扣热题100 分割等和子集
题目解析 题目:给定一个正整数数组 nums,判断是否可以将数组分成两个和相等的子集。 等价问题: • 计算 nums 的总和 S • 如果 S 是奇数,直接返回 false(因为不能均分) • 目标是找到一个子集ÿ…...
Hyperlane:轻量级高性能的 Rust Web 后端框架
Hyperlane:开启 Rust Web 开发的新篇章 在当今数字化时代,Web 开发的效率与性能成为了开发者们关注的焦点。随着 Rust 语言的崛起,越来越多的开发者开始探索如何利用 Rust 的高性能和安全性来构建现代 Web 服务。今天,我们非常荣…...
【工具】C#游戏防沉迷小工具
背景介绍 嘿,各位小伙伴!今天想跟大家唠唠我为啥要搞这么个防沉迷小工具。 咱都清楚,现在这游戏啊,玩起来那叫一个带劲,但时间一长,不仅眼睛累,心也跟着累。有些游戏,规则定得挺有意…...
深圳南柯电子|净水器EMC测试整改:水质安全与电磁兼容性的双赢
在当今注重健康生活的时代,净水器作为家庭用水安全的第一道防线,其性能与安全性备受关注。其中,电磁兼容性(EMC)测试是净水器产品上市前不可或缺的一环,它直接关系到产品在复杂电磁环境中的稳定运行及不对其…...
SpeechCraf论文学习
Abstract 核心问题 挑战 语音风格包含细微的多样化信息(如情感、语调、节奏),传统基于标签/模板的标注方法难以充分捕捉,制约了语音-语言多模态模型的性能。 数据瓶颈: 大规模数据收集与高质量标注之间存在矛盾&…...
Work【2】:PGP-SAM —— 无需额外提示的自动化 SAM!
文章目录 前言AbstractIntroductionMethodsContextual Feature ModulationProgressive Prototype RefinementPrototype-based Prompt Generator ExperimentDatasetsImplementation DetailsResults and AnalysisAblation Study 总结 前言 和大家分享一下我们发表在 ISBI 2025 上…...
数据安全之策:备份文件的重要性与自动化实践
在信息化高速发展的今天,数据已成为企业运营和个人生活中不可或缺的重要资源。无论是企业的财务报表、客户资料,还是个人的家庭照片、学习笔记,数据的丢失或损坏都可能带来无法挽回的损失。因此,备份文件的重要性日益凸显…...
uniapp+Vue3 组件之间的传值方法
一、父子传值(props / $emit 、ref / $refs) 1、props / $emit 父组件通过 props 向子组件传递数据,子组件通过 $emit 触发事件向父组件传递数据。 父组件: // 父组件中<template><view class"container">…...
WebSocket生命周期和vue中使用
ing。。。晚点更新 进入页面,生命周期挂载后,window监听ws连接online 正常情况,心跳包检测避免断开 非正常情况,ws.onclose断开, 判断1000状态吗,触发重连函数。 定时器,重连,判断…...
blender使用初体验(甜甜圈教程)
使用blender 建模了甜甜圈,时间空闲了,但愿能创建点好玩的吸引人的东西...
