ubuntu dnsmasq问题
在很多ubuntu开启wifi热点的教程中,配置比较繁琐的是hostapd+dnsmasq,很多教程都给出了dnsmasq的安装过程,其实在ubuntu桌面版系统下,已经集成到NetworkManager了,不过这个软件包叫dnsmasq-base。以下内容中的dnsmasq指的是dnsmasq-base。
如果你用sudo apt-get install dnsmasq会把这两个软件包都安上。
- sudo dpkg -l dnsmasq*
结果
- 期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
- | 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
- |/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
- ||/ 名称 版本 Architecture 描述
- +++-==============-============-============-=================================
- un dnsmasq <none> <none> (无可用描述)
- ii dnsmasq-base 2.68-1 i386 Small caching DNS proxy and DHCP/
可以看到集成到NetworkManager的dnsmasq安装包是dnsmasq-base,不是dnsmasq
这里再引用官网的一段话https://help.ubuntu.com/community/Dnsmasq
Note that the package "dnsmasq" interferes with Network Manager which
can use "dnsmasq-base" to provide DHCP services when sharing an
internet connection. Therefore, if you use network manager (fine in
simple set-ups only), then install dnsmasq-base, but
not dnsmasq. If you have a more complicated set-up, uninstall network
manager, use dnsmasq, or similar software (bind9, dhcpd, etc), and
configure things by hand.
简单的翻译一下吧
Network
Manager下使用的dnsmasq软件包名字为dnsmasq-base,用来提供DHCP服务和网络共享。因此如果你使用Network
Manager,那么你应该安装dnsmasq-base,而不是dnsmasq。如果你需要完整的配置,那么你需要卸载Network
Manager,使用dnsmasq或类似的软件如bind9,dhcpd等来手动配置它
这里涉及到NetworkManager和network两种网络配置管理的问题,由于hostapd需要禁用Network Manager,所以network管理的方式下dnsmasq-base不知道还能不能用
很多教程给出的配置文件是/etc/dnsmasq.conf,如果没有这个配置文件,也可以通过命令来配置它,kde-nm-connection-editor和自带的ap-hoc模式都没有/etc/dnsmasq.conf,都是通过命令来配置的
查看以下dnsmasq能干什么吧
- man dnsmasq
dnsmasq - A lightweight DHCP and caching DNS server.
dnsmasq is a lightweight DNS, TFTP, PXE, router advertisement and DHCP
server. It is intended to provide coupled DNS and DHCP service to a
LAN.
dnsmasq是一个轻量级的DHCP和DNS缓存服务器。
dnsmasq是一个轻量级的DNS, TFTP, PXE, 通告路由器和DHCP服务器。它的目的是提供局域网内DNS服务器和DHCP服务器的耦合。
一个简单的配置文件
- cat /etc/dnsmasq.conf
例子
- default-lease-time 600; #默认的租约时间,单位秒
- max-lease-time 7200; #最大的租约时间,单位秒
- subnet 10.10.10.0 netmask 255.255.255.0 { #设置子网声明
- range 10.10.10.10 10.10.10.100; #设置分配的地址池范围
- option routers 10.10.10.1; #路由器地址
- option domain-name-servers 8.8.8.8; #DNS服务器地址
- option broadcast-address 10.10.10.255; #路由器的广播地址
- }
打印的系统日志信息看看dnsmasq的工作过程
- cat /var/log/syslog
- Sep 20 15:19:23 Lenovo-B470 NetworkManager[734]: <info> Starting dnsmasq...
- Sep 20 15:19:23 Lenovo-B470 NetworkManager[734]: <info> (wlan1): device state ch
- ange: ip-config -> secondaries (reason 'none') [70 90 0]
- Sep 20 15:19:23 Lenovo-B470 NetworkManager[734]: <info> Activation (wlan1) Stage
- 5 of 5 (IPv4 Commit) complete.
- Sep 20 15:19:23 Lenovo-B470 dnsmasq[15540]: started, version 2.68 cachesize 150
- Sep 20 15:19:23 Lenovo-B470 dnsmasq[15540]: compile time options: IPv6 GNU-getop
- t DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth
- Sep 20 15:19:23 Lenovo-B470 dnsmasq-dhcp[15540]: DHCP, IP range 10.42.0.10 -- 10
- .42.0.100, lease time 1h
- Sep 20 15:19:23 Lenovo-B470 dnsmasq[15540]: reading /etc/resolv.conf
- Sep 20 15:19:23 Lenovo-B470 dnsmasq[15540]: using nameserver 202.199.128.6#53
- Sep 20 15:19:23 Lenovo-B470 dnsmasq[15540]: using nameserver 202.96.64.68#53
- Sep 20 15:19:23 Lenovo-B470 dnsmasq[15540]: 清除缓存
上面这段可以看出来,NetworkManager里的dnsmasq并没有读取/etc/dnsmasq.conf,而是通过命令指定了地址范围为10.42.0.10 -- 10
.42.0.100,租约时间为1小时
下面是DHCP分配IP地址的过程
- Sep 20 15:20:14 Lenovo-B470 dnsmasq-dhcp[15540]: DHCPDISCOVER(wlan1) 80:e6:50:74:2e:d4
- Sep 20 15:20:14 Lenovo-B470 dnsmasq-dhcp[15540]: DHCPOFFER(wlan1) 10.42.0.70 80:e6:50:74:2e:d4
- Sep 20 15:20:14 Lenovo-B470 dnsmasq-dhcp[15540]: DHCPDISCOVER(wlan1) 80:e6:50:74:2e:d4
- Sep 20 15:20:14 Lenovo-B470 dnsmasq-dhcp[15540]: DHCPOFFER(wlan1) 10.42.0.70 80:e6:50:74:2e:d4
- Sep 20 15:20:15 Lenovo-B470 dnsmasq-dhcp[15540]: DHCPREQUEST(wlan1) 10.42.0.70 80:e6:50:74:2e:d4
- Sep 20 15:20:15 Lenovo-B470 dnsmasq-dhcp[15540]: DHCPACK(wlan1) 10.42.0.70 80:e6:50:74:2e:d4 iPad
- Sep 20 15:20:16 Lenovo-B470 dnsmasq-dhcp[15540]: DHCPREQUEST(wlan1) 10.42.0.70 80:e6:50:74:2e:d4
- Sep 20 15:20:16 Lenovo-B470 dnsmasq-dhcp[15540]: DHCPACK(wlan1) 10.42.0.70 80:e6:50:74:2e:d4 iPad
dnsmasq如何禁用呢
方法一.删除NetworkManager配置信息
- sudo vim /etc/NetworkManager/NetworkManager.conf
删除下面的内容,然后保存
- dns=dnsmasq
方法二.卸载dnsmasq-base软件包
- sudo apt-get remove dnsmasq-base
ubuntu dnsmasq问题的更多相关文章
- ubuntu dnsmasq
/var/run/NetworkManager/resolv.conf 而你真实的dns服务器地址,是被这个服务管理维护着的/ local process -> local dnsmasq -& ...
- ubuntu下安装加装DNS
感觉在ubuntu下网速特别的慢,所以网上找了下解决方案,本地缓存域名解析相关信息. 首先,安装dns服务 命令: sudo apt-get install dnsmasq 编辑dnsmasq的配置文 ...
- Install Docker on Ubuntu
Install Docker on Ubuntu Estimated reading time: 17 minutes Docker is supported on these Ubuntu oper ...
- VirtualBox Ubuntu Server 16.04 手动设置 网络(IP, DNS, 路由)
1. VirtualBox 设置全局网络 在virtualBox点击菜单管理->全局管理 配置NAT网络 参考下图配置, 依次点击相应的按钮并设置网络(其中DHCP任意, 将来我们都会使用固定I ...
- Ubuntu 14.10 创建虚拟网卡实现桥接网络
目标需求:在Ubuntu主机创建一张虚拟网卡,使得搭建在VirtualBox中的其他主机能借助虚拟网卡构建的局域网进行相互间的通讯 步骤一:准备工具包 安装 uml-utilities 以及 brid ...
- Ubuntu 配置AP总结
1.这个是使用别人写的一个GUI来配置,:http://hi.baidu.com/lexiangtaotao/item/5d4e87f22db132c70cd1c86f 2.使用hostapd配置:h ...
- Ubuntu apparmor何方神圣
AppArmor 是一款与SeLinux类似的安全框架/工具,其主要作用是控制应用程序的各种权限,例如对某个目录/文件的读/写,对网络端口的打开/读/写等等. 来之Novell网站的引用: AppAr ...
- ubuntu网络配置
本文介绍ubuntu中的网络配置方法. ubuntu需要在/etc/network/interfaces文件中设置网络配置,基本的格式如下: auto <网卡名> iface <网卡 ...
- 整合Open vSwitch与DNSmasq为虚拟机提供DHCP功能
继上文<Ubuntu14.04安装配置Open vSwitch>安装好Open vSwitch后,这里我们将要创建两个KVM虚拟机,并通过DNSmasq来为这两个虚拟机自动分配私网IP地址 ...
随机推荐
- oracle学习笔记:字符串替换 replace、regexp_replace、translate函数
1.replace 函数 语法:replace(char, search_string, replacement_string) --针对字符串替换 功能: 将char中的字符串替换. 当re ...
- vue 2.0 + 如何实现加入购物车,小球飞入的动画
github源码地址:https://github.com/13476075014/node-vue/tree/master/mynodeproject/13.sell/sell 在移动端经常会有加入 ...
- Postman如何进行参数化
前言 Postman作为一款接口测试工具,受到了非常多的开发工程师的拥护. 那么做为测试,了解Postman这款工具就成了必要的了. 这篇文章就是为了解决Postman怎么进行参数化的. 全局变量 全 ...
- perl自定义简易的面向对象的栈与队列类
perl中的数组其实已经具备了栈与队列的特点,下面是对数组经过一些封装的stack,queue对象 1.Stack类 创建一个Stack.pm文件 package Stack; sub new{ $s ...
- Bind Mounts and File System Mount Order
When you use the bind option of the mount command, you must be sure that the file systems are m ...
- fwrite、write、fread、read
1. write和read 1.1 write: 头文件:#include<unistd.h> 原型: ssize_t write(int fd,const void*buf,size_t ...
- C#中两个List<TModel>中根据指定条件--判断并获取不同数据的数据集合2
方式一:Linq List<Test> list = new List<Test>(); list.Add(new Test { score = 10, name = &quo ...
- Linux学习笔记(十)shell基础:历史命令、命令补全、输出重定向、输出重定向
一.历史命令 history [选项] [历史命令保存文件] -c 清空历史命令 -w 吧缓存中的历史命令写入历史命令保存文件~/.bash_history中 系统会默认将上次注销登录(正确退出)之前 ...
- Windows与Linux之间文件传输
(1).使用WinSCP工具,实现将Windows的文件上传到Linux指定目录下 (1).输入主机名.用户名.密码,选择登录,成功连接至Linux系统 (2).在左侧列表,选择要上传文件,单击右键选 ...
- Css案例整理
1.实现两个div并排显示 案例:checkbox的标题和内容需要并排显示,checkbox竖向排列 <head> <style type="text/css"& ...