ubuntu上网慢解决方案-配置dns

2023-05-16

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在ubuntu下用firefox等浏览器上网,往往比在windows下上网要慢好多,但细心的人会发现,慢的时间是花在DNS查找上面了。那么我们可以在本机缓存DNS,也就是在本机架设一个DNS代理服务器。常用的软件有bind、djbdns、dnsmasq和pdnsd。下面我们来说一下,用pdnsd来架设一个永久的DNS代理服务器,所谓“永久”,就是说,在系统重启以后,本机缓存的DNS仍然存在,不用再去查找真实DNS来重新建立缓存。

1、安装

sudo apt-get install pdnsd

安装的时候,它会问你选择什么配置,请选择“manual“。

2、配置pdnsd

sudo gedit /etc/pdnsd.conf

修改

server {

    label="resolvconf";

}

server {

    label="OpenDNS";

    ip=208.67.222.222;

    ip=208.67.220.220;

    timeout=30;

    interval=30;

    uptest=ping;

    ping_timeout=50;

    purge_cache=off;

}

label="OpenDNS";

其中“OpenDNS”可以随便写,一个标识而已,用于将来的诊断;

ip=208.67.222.222;

ip=208.67.220.220;

这两行也可以写成一行ip=208.67.222.222,208.67.220.220;代表真实的DNS服务器地址,可以有多个。

后面的参数采用默认就可以了。

sudo gedit /etc/default/pdnsd

修改START_DAEMON的值为yes。

3、向resolver添加DNS代理服务器

sudo gedit /etc/resolv.conf

在首行添加一句:nameserver 127.0.0.1

4、防止resolv.conf被覆盖

如果你启用了DHCP服务,那么要

sudo gedit /etc/dhcp3/dhclient.conf

去掉

#prepend domain-name-servers 127.0.0.1;

前面的“#“。

如果你是拨号上网,那么

sudo gedit /etc/ppp/peers/provider 

在 usepeerdns 前面增加# ,也就是把这条语句注释掉。 以防resolv.conf的设置被pppoe覆盖。

5、启动pdnsd

sudo /etc/init.d/pdnsd start

6、测试

dig www.baidu.com | grep time

结果显示:;; Query time: 1 msec

原来的结果:;; Query time: 845 msec


转载于:https://my.oschina.net/91jason/blog/330015

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu上网慢解决方案-配置dns 的相关文章

  • 如何在维护数据的同时升级 docker 容器中的 postgres? 10.3 到最新的 10.x 或 12.x

    我的生产和本地主机中有一个 10 3 postgres docker 容器 在之前的一个question https stackoverflow com a 62789347 80353 我必须恢复在 10 5 中存档的转储 感谢您的回答
  • 我如何公开我的IP,外部可以访问我的本地主机

    我只是想让我的IP公开 这样就可以从任何地方访问它 我正在使用ubuntu 18 04 已经安装了apache2和PHP 索引文件位于 var www html example com public html index php 在本地主机
  • 错误:NVIDIA-SMI 失败,因为无法与 NVIDIA 驱动程序通信

    NVIDIA SMI 抛出此错误 NVIDIA SMI 失败 因为无法与 NVIDIA 通信 司机 确保安装了最新的 NVIDIA 驱动程序并且 跑步 我清除了 NVIDIA 并按照提到的步骤重新安装了它here https askubun
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • 伪分布式模式下的 Hadoop。连接被拒绝

    P S 请不要将此标记为重复 Hi 我一直在尝试以伪分布式模式设置和运行 Hadoop 当我运行 start all sh 脚本时 我得到以下输出 starting namenode logging to home raveesh Hado
  • Amazon S3:静态网站:自定义域或子域

    Amazon com 刚刚宣布可以在 S3 存储桶中托管静态网站 我访问了他们的设置页面http docs amazonwebservices com AmazonS3 latest dev index html WebsiteHostin
  • Apache 反向代理的基本身份验证问题

    我想为在 Ubuntu 服务器 12 04 1 上运行的 Apache 反向代理站点添加基本身份验证 网络应用程序是Jenkins http jenkins ci org运行在 Java EE 容器上 我在中添加了以下配置httpd con
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 如何在不反编译的情况下更改已编译的.class文件?

    我想更改 class 文件方法 我安装 JD Eclipse Decompiler 并打开 class 文件 我添加了一些代码并保存 class 文件 但是 class 文件没有改变 我不知道如何使用反编译器 如果可能的话 如何在不使用反编
  • IIS 如何识别请求的是哪个站点?

    如果我在一台服务器上托管多个站点 并且 dns 服务器将不同的域名解析到同一地址 这是服务器的名称 那么 IIS 如何知道最终请求的是哪个站点 因此 客户端输入我的 1 站点地址 gt myrandomsite mydomain com 然
  • PostgreSQL - 致命:用户“myuser”身份验证失败[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我刚刚在我的 Ubuntu Box 中安装了 PostGreSQL 我想做的第一件事就是创建一个数据库 我读了文档 http www postgres
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • 卷曲选项 -:未知

    我运行此命令在 ubuntu 18 04 上安装更新版本的 nodejs curl sL https deb nodesource com setup 12 x sudo E bash 我收到错误 curl 选项 未知 我在多个系统上尝试过
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • CakePHP 多站点(如 WPMU + 域映射)...可能吗?

    所以我刚刚开始使用 CakePHP 想知道是否可以执行以下操作 一次安装 Cake 并使用超级管理员登录 然后 管理员有权访问指定的 子站点 并能够在这些子站点上创建 编辑内容和用户 最后 能够将域名 不是子域 而是唯一域 映射到路由 所以
  • Laravel 白名单域认证

    我正在寻找只允许某些域访问我的 laravel 应用程序的最佳方法 我目前正在使用 Laravel 5 1 并且如果引用域不在白名单域中 则使用中间件进行重定向 class Whitelist Handle an incoming requ
  • opencv_contrib编译错误:类没有成员

    我必须实现 SURF 算法来进行图像拼接 我在使用列出的库时遇到了问题here https stackoverflow com questions 33560251 opencv 3 0 0 ubuntu 14 04 nonfree non
  • 更改“/usr/bin/”的所有权:不允许操作

    我刚刚改变了我的所有者 犯了一个巨大的错误 usr bin from root对一个普通人user 每当我尝试执行时 sudo chown root usr bin这给了我 chown changing ownership of usr b

随机推荐