`
vfate_linux
  • 浏览: 243911 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Ubuntu linux下保存dns查询记录/缓存到hosts实现网络加速

阅读更多
主要目的是网络加速,因为"伟大"的防火墙要对所有的dns查询进行监控检查过滤丢弃...必然导致缓慢的dns查询... 尤其是国外的网站...慢死...

思路如下
1.通过tcpdump命令抓取所有dns查询的53端口udp的数据包
sudo tcpdump -lvi any 'udp port 53' |tee  dns-record.log

-lvi中 -l对终端更友好 -v是详细的包信息 -i是网卡 any代表所有的网卡数据包
'udp port 53'是表达式代表抓取udp包仅仅包括53端口,dns查询的默认端口
当然你要刷新页面才会出现dns查询的udp包
2.分析过滤具体的dns记录
grep ' A ' dns-record.log |sed -e's/.\+\/[0-9] //g' -e's/\. .*A/ /g' |awk '{print $2" "$1" #tcpdump-hosts"}' 

其中' A '代表过来ipv4的dns查询结果 假如你是ivp6环境就要改成' AAAA '
#tcpdump-hosts是为了方便修改删除添加的注释,下面会用到

可以把tcpdump的dns记录单独保存下来:
grep ' A ' dns-record.log |sed -e's/.\+\/[0-9] //g' -e's/\. .*A/ /g' |awk '{print $2" "$1" #tcpdump-hosts"}' |sort |uniq |tee -a mydns-hosts

sort 和uniq是排序去掉重复的dns记录

3.最后把mydns-hosts记录导入到/etc/hosts
cat mydns-hosts |sudo tee -a /etc/hosts

假如你想删除tcpdump查询到的dns非常简单
sudo sed -i '/#tcpdump-hosts/ d' /etc/hosts

这就就不会影响到你自己以前添加的hosts了

重要说明:/etc/hosts文件中有多个重复多个host的时候 前面的优先级高,后面添加了也是白加...要删除前面的或者添加到/etc/hosts的第一行
例如
sudo sed -i '1 i 192.30.252.128 github.com' /etc/hosts

网站的域名和ip不是永远不变的,dns改变的时候你需要删除hosts的dns如下快速删除:
比如删除github.com
sudo sed -i '/ github.com/ d' /etc/hosts

当然之后你要清除浏览器的dns缓存,ubuntu linux上直接重启网络即可sudo service network-manager restart
或许你需要配合dnscrypt,把dns结果都加入hosts将大大改善dnscrypt的压力和速度

后记,假如你是android手机,也是可以这样来做的,请自行谷歌andorid tcpdump安装方法.之后:
电脑上执行
echo "su -c 'tcpdump -i any -p -s 0 -w /sdcard/udp-capture.pcap udp port 5'" >> caputure.sh
adb push caputure.sh /sdcard/

手机终端执行
cd /sdcard/
sh caputure.sh


运行了几个小时或者一天后把udp-capture.pcap文件复制到电脑
电脑上执行
adb pull /sdcard/udp-capture.pcap .
tcpdump -i any -lvvv -r udp-capture.pcap |tee andorid-dns.log 

稍等一会就能看到当天抓取的的udp包具体信息

后面就是过滤获取具体的dns结果和上面的类似了....

参考:http://unix.stackexchange.com/questions/27246/how-to-gather-dns-a-record-requests
http://www.kandroid.org/online-pdk/guide/tcpdump.html#other
0
0
分享到:
评论

相关推荐

    操作系统安全:配置etchosts.allow及etchosts.deny.docx

    /etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。 比如SSH服务,我们通常只对管理员开放,那我们就可以禁用不必要的IP,而只开放...

    设置UbuntuDNS缓存linux服务器应用-电脑资料.pdf

    设置 Ubuntu DNS 缓存 Linux 服务器应用 - 电脑资料设置 Ubuntu DNS 缓存 本文档主要介绍了如何在 Ubuntu 系统中设置 DNS 缓存服务器,提高 DNS 解析速度。下面是该文档中的知识点总结: 1. 安装 dnsmasq 软件包:...

    ubuntu网络重启后或主机重启后,_etc_resolv.conf恢复原样的解决办法 - 正风三才的博客 - CSDN博客1

    标题中的问题涉及到Ubuntu系统下 `/etc/resolv.conf` 文件在重启后被自动恢复原状的情况。这个文件在Linux系统中是用于配置DNS(域名系统)服务器的,它包含了系统进行域名解析所需的DNS服务器地址。当网络接口配置...

    ubuntu linux入门到精通

    《Ubuntu Linux从入门到精通》这本书是为那些对Linux系统特别是Ubuntu版本感兴趣的初学者准备的。Ubuntu Linux是一款基于Debian的开源操作系统,以其用户友好、稳定性强和丰富的应用软件库而受到全球用户的喜爱。它...

    ubuntu dkpg及依赖安装文件

    1、vlc播放rtp说明: ...2、linux vlc安装: sudo apt-get install vlc dkpg默认保存路径:/var/cache/apt/archives 安装包下载路径: http://cn.archive.ubuntu.com/ubuntu/pool/universe/libc/libcddb/ ...

    Linux 下的DNS服务配置

    总结,配置Linux下的DNS服务涉及多个步骤,理解其工作原理和配置文件至关重要。通过合理配置,不仅可以为本地网络提供高效、安全的域名解析服务,还可以作为权威DNS服务器为其他网络提供服务。在实践中,应不断学习...

    linux下的DNS服务器

    在Linux操作系统中,DNS(Domain Name System)服务器是网络服务的核心组件之一,它负责将人类可读的域名转换为IP地址,以便网络通信。这里我们关注的是基于Linux平台的DNS服务器,具体来说,我们将探讨使用BIND...

    Ubuntu下DNS服务器的搭建

    在Ubuntu操作系统中搭建DNS服务器是一项基础且重要的网络管理任务,它可以帮助我们管理和解析域名,确保网络服务的稳定运行。本文将详细介绍如何在Ubuntu系统上设置DNS服务器,主要涉及DNS服务器软件 Bind9 的安装与...

    ubuntu linux 网络设置详解

    ### Ubuntu Linux 网络设置详解 Ubuntu Linux作为一款广泛使用的开源操作系统,在网络配置方面提供了丰富的功能和选项,本文将详细介绍几种常见的网络设置方法:网卡通过DHCP自动获取IP地址、网卡静态分配IP地址、...

    ubuntu linux镜像下载

    Ubuntu Linux 是一款基于Debian的开源操作系统,深受开发者和服务器管理员的喜爱。它的用户界面友好,且提供了丰富的软件包,使其成为个人电脑、服务器甚至嵌入式设备的理想选择。Ubuntu 的发行版按照每六个月发布一...

    ubuntu 下displayLink usb转VGA/hdmi驱动

    在Ubuntu操作系统中,DisplayLink技术是一种通过USB接口连接显示器,实现VGA或HDMI显示输出的方式。DisplayLink驱动程序使得用户能够轻松扩展或镜像他们的桌面到额外的显示器,而无需依赖于内置的显卡接口。这篇教程...

    SwitchHosts for linux

    是一款强大的Linux hosts管理工具,它的存在极大地简化了用户在不同网络环境下的域名解析工作,无论是开发调试还是日常使用,都能提供极大的便利。通过熟练掌握其使用方法,用户可以更高效地控制网络流量,提高工作...

    UbuntuLinux操作系统与实验教程--概述.pdf

    本文档主要介绍 Ubuntu Linux 操作系统与实验教程概述,涵盖了虚拟机的安装、配置、网络类型、快照等知识点,同时也简单介绍了 Linux 操作系统的基本概念和 dpkg 软件包管理器。 一、虚拟机安装 虚拟机可以在一台...

    Ubuntu Linux 从初学到精通

    Ubuntu Linux 从初学到精通

    ubuntu 16.04LS 上WEB/DHCP/DNS的搭建

    本文档是本人大学所撰写的一次作业,涉及了WEB/DHCP/DNS server 的搭建,平台为Ubuntu16.04LS ,内容丰富,注释详细,欢迎大家参考

    LINUX下的DNS服务器设置.rar_dns _dns linux_linux_linux DNS_linux 服务器

    在Linux系统中,DNS(Domain Name System)服务器是网络服务中的关键组件,它负责将域名转换为IP地址,使得用户可以方便地通过域名访问互联网资源。这篇教程将深入讲解如何在Linux环境下设置DNS服务器,包括基本概念...

    UBUNTU linux学习手册教程集合

    本教程集合旨在帮助初学者快速入门Ubuntu Linux,并逐步掌握其核心概念和常用命令,实现从新手到精通的过渡。 一、Ubuntu Linux基础知识 Ubuntu Linux采用GNOME桌面环境,提供直观的图形化界面。其系统更新频繁,每...

    linux /unix/centos/ubuntu/redhat常用命令大全/手册/下载

    4. `nslookup`或`dig`:查询域名系统(DNS)记录。 5. `netstat`:显示网络连接、路由表、网络接口统计等信息。 六、系统信息和管理 1. `top`或`htop`:实时显示系统资源使用情况。 2. `df`:查看磁盘空间使用情况...

    Ubuntu Linux 轻松入门PPT

    学习如何手动配置网络,包括静态IP地址分配和DNS设置,对于特定环境下的使用非常实用。 8. **开发环境**: 对于开发人员,Ubuntu提供了丰富的开源工具和开发环境。例如,可以使用集成开发环境如Eclipse或Visual ...

    ubuntu12.10配置dns

    在本文中,我们将深入探讨如何在Ubuntu 12.10上配置DNS服务器,使用BIND (Berkeley Internet Name Domain),这是最广泛使用的DNS协议实现。BIND不仅提供了域名服务器(named)的功能,还包含了DNS解析库函数和用于...

Global site tag (gtag.js) - Google Analytics