什么是Raspberry Pi?
Raspberry Pi是一款针对电脑业余爱好者、教师、小学生以及小型企业等用户的迷你电脑,预装Linux系统,体积仅信用卡大小,搭载ARM架构处理器,运算性能和智能手机相仿。在接口方面,Raspberry Pi提供了可供键鼠使用的USB接口,此外还有快速以太网接口、SD卡扩展接口以及1个HDMI高清视频输出接口,可与显示器或者TV相连。它价格便宜,使用功率小,所以它很适合用于嵌入式项目。很多人已经能够把Pi用于各种项目,从针对小孩的一些简单项目到携有更高级功能的复杂项目,它可以被创造的像一个桌面PC那样用于制作电子表格、文字处理和玩游戏,它还可以播放高至1080p的高清视频。
所谓麻雀虽小五脏俱全, 用来形容树莓派( Raspberry Pi) 最好不过了 , 这块信用卡般大小的主板拥有和pc样的能力。USB, Ethernet, HDMI, RCA, 3. 5mm Stereo Jack, 还有无比强大的GPIO, 当然我很少能用到这个。
树莓派2采用了900MHz的四核ARM Cortex-A7处理器(性能是前代的6倍以上),1GB的LPDDR2 SDRAM(内存提升两倍),并完美兼容第一代树莓派。因为采用了ARMv7处理器,所以能够运行所有ARM GNU/Linux分支版本,包括Snappy Ubuntu Core和微软的Windows 10系统。
现在树莓派主要是做家庭影院,N基于Samba实现NAS系统,NFS和Airplay音频网关以及BT下载机
准备工作(外围部件)
安装之后,就迫不及待的想开机测试,少年,不要太冲动,冲动是魔鬼,我们还需要做一些准备工作:
- 必备:
- 树莓派板子(必备)
- 一张SD卡,4G以上(推荐8G),最好是 class10 的,读写速度快,因为要在卡里刷系统(必备)
- 一个电源(5V --- 2.5A的电源那就可以比较自由的接各种外设)和电源线,我用的是小米手机电源也可以,同样也可以通过电脑USB接口供电(必备)
- 一根RJ-45网线,联网(必备)
- 可选
- 一个USB鼠标、键盘 (用于输入,非必需)
- 读卡器(可选,用来连接电脑,烧录SD卡,可以利用手机代替)
- HDMI高清线,连接显示器或者电视(根据实际情况)
- 耳机音箱(根据实际情况)
- 移动硬盘(根据实际情况)
这是从网上找的连接图:
普及一下树莓派的基础知识。
如何启动?
系统引导必须使用SD卡,不过您可以指定引导之后从USB硬盘中读取操作系统,来“接管”启动过程。
如果不插SD卡,树莓派无法启动。
电源开关在哪里?
开机:插上电源插头
关机:拔下电源插头(不建议,推荐使用 shutdown -h now, 或 halt 关机)
特别提醒:树莓派毕竟是电脑!请先使用关机命令(halt或sudo halt),确保Linux停止对SD卡的一切读写后再切断电源!否则极易丢失数据。
为什么没有实时时钟?
树莓派没有实时时钟,关机后无法维持时钟的走时。没有连接网络的树莓派,每次开机时都需要手工设定时间。(连接网络的,开机时会自动联网获取时间)
树莓派能连接什么显示设备?
树莓派提供HDMI与复合视频两种输出。您可以将树莓派连接到任何电视机的A/V输入端子,或是新型电视的HDMI端子上。也可以使用廉价的HDMI转DVI线缆(转接头)连接支持DVI输入的显示器。
树莓派不支持VGA。如果要使用VGA或YPbPr色差,您需要一个相对贵一些的HDMI转VGA转换器。
最便宜的可靠的HDMI转VGA转换器,在淘宝上72元可以买到,介绍文档会稍后贴到论坛上。
当然,尽管对初学者可能有些难,但树莓派即使没有显示器,也可以通过 SSH 远程登录进行操作!
所需电源是?
树莓派工作电压为5V2.5A,从一个micro USB接口输入。经销商有售电源适配器。
有关SD卡和存储设备
建议SD卡选择速度等级为Class10的,可以用满树莓派对SD卡的读写能力,最大限度提高速度。
推荐SanDisk Ultra Class10 TF 8GB这张卡。销量大用的人多,便宜又成熟。
8GB是推荐的大小,肯定够用,并且备份恢复都方便。16或32GB就太大了不够灵活
但是,一个古老的说法一定要得到充分的重视。这个说法是当年玩相机的时候流传出来的,SD卡会有兼容性问题(SD卡里基本就是个闪存颗粒,读写全靠读卡器里的电路,所以匹配可能会有问题)。虽然好像我们没有在相机上发生过卡不兼容的问题,但是Raspberry Pi真的会发生这种兼容问题。所以在买SD卡前,一定要先搜一下看看这个卡是否能用。当然了,万一你买到的卡有兼容问题,不过就是开机十分缓慢或者根本无法开机而已,没什么大不了的,换一张卡即可。
操作系统下载和安装
就像每一个普通的个人计算机(PC)那样,树莓派只是提供了硬件环境,树莓派需要一个操作系统,最好是选择Linux。选择Linux是因为它免费,而且可支持ARM处理器,并且可以精简的足够小。但是要注意,并不是所有的Linux发行版都能运行于树莓派。因为有些Linux发行版不支持树莓派指定的ARM处理器。比如你不能在树莓派上安装Ubuntu Linux。
本文将安装最新的 Raspbian 发行版,整个安装过程与安装其它操作系统差不多。因此,必须创建或找到一个Linux发行包,并复制到SD卡上。最简单的方法是从Raspberry项目中下载。你可以下载 Debian wheezy,又或者是Arch Linux ARM,或者是Qton Pi,还有Bodhi Linux。而且有些牛人开始移植Google的Chrome OS。
- Debian wheezy完全支持树莓派的硬件,而且它自带了一套成熟的桌面UI,还有浏览器。另外,它还有一个功能强大的包管理器,可以用它安装更多的软件。下面,我们将学习怎样安装它。
- Arch Linux ARM是一个极简的操作系统,它适合那些非常熟悉Linux系统的人。Arch Linux没有使用多少资源,它有很好的包管理器。因此,如果你想把树莓派当作服务器的话,它是很好的选择。而对于桌面系统,Debian更适合。默认的Arch Linux没有桌面环境。你必须安装和配置它。
- 此外,还有很多系统,比如Android, Xbian (xbmc 与 debian的结合体)等,也可以下载安装玩玩。
现在使用的比较广泛的是Raspbian, 基于Debian wheey, 也是官方推荐的版本。得益于Debian的简单易用、稳定性好的特定,而且软件源也丰富。
树莓派官方 Raspbian 系统下载:https://www.raspberrypi.org/downloads/raspbian/
选择并下载操作系统只是第一步,下面你还需要安装它。
所谓“安装系统”其实不如说是“恢复”下载到的系统镜像到内存卡上,这个过程也没什么难度,就是看内存卡的速度,慢慢等而已。需要注意的是,市面上部分 4G 的内存卡,实际大小才 3.6G 多,会提示空间不足,所以还是直接购买 8G 吧,也差不了几块钱。 把操作系统安装到SD卡上比较麻烦。
制作可引导的SD卡
1)你需要一个带读卡器(或者利用手机代替)的PC,我是把内存卡插在手机上,然后连接在电脑上操作,当然也可以用读卡器
2)从官方下载页下载wheezy-raspbian映像文件。
3)用专门的工具将映像文件写入到SD卡。
Windows用户可以使用USB Image Tool(更强大) 或者 Win32DiskImager软件,Unix用户使用dd工具。
Linux / MAC 用户使用dd命令制作引导镜像:
下载完成后,先解压,会看到一个 img 镜像,然后我们需要通过 dd 命令把这个img 写入SD卡,使用dd命令将系统镜像写入,需要特别特别注意disk后的数字,不能搞错!
- dd bs=4M if=wheezy-raspbian.img of=/dev/sd? # 使用fdisk -l 查看内存卡的sd?
Windows用户专用:
Win32DiskImager ,很多新手教程都是使用这个软件来作为镜像写入工具的。但是这个工具不支持中文目录名(文件或目录有中文,会出现123错误),不支持压缩,必须先插好SD卡,再开软件。注意一定要选对正确的SD卡盘符。
安装实战
1.解压下载的操作系统镜像压缩文件,得到img镜像文件。
2.将SD使用卡托或者读卡器后,连上电脑。
3.解压并运行win32diskimager工具。
4.在软件中选择系统镜像(img文件),“Device”下选择SD的盘符,然后选择“Write”,期间出现对话框选择是。
等待安装完成,烧写结束后,在 windows 7下面显示 SD卡不足100M,我去,不会吧。。。其实不用担心,因为烧录的过程会将SD卡格式化为Linux的文件系统,我们能看到的这个分区只是Linux的boot分区,而其他的部分为LInux 的文件系统类型:ext4,所以我们的windows 是无法识别的。
HDMI-VGA转换器黑屏的排障方案
这个配置提供了HDMI的所有故障排除用的保守设置。请将SD卡插入电脑,将这些内容存为config.txt。(原来的config.txt可以备份一下。)在开机前需要对 config.txt 文件进行修改(我这边因为没有连接显示器,所以没有做这一步,大家如果需要可以参考)
首先,打开SD卡的boot分区,简而言之,修改如下:
1、使用 notepad++, 或者 sublime text 打开 boot 下的 config.txt 文件
2、 将 "hdmi_force_hotplug=1, hdmi_group=2, hdmi_mode=16, hdmi_drive=2, config_hdmi_boost=4, sdtv_mode=2, arm_freq=800" 这几项前面的注释符号“#”去掉。
- hdmi_force_hotplug=1
- config_hdmi_boost=4
- hdmi_group=2
- hdmi_mode=9
- hdmi_drive=2
- hdmi_ignore_edid=0xa5000080
- disable_overscan=1
解释:
hdmi_force_hotplug:强制使用HDMI输出(强行认为HDMI口已经插入了设备)
config_hdmi_boost:HDMI信号增强。
hdmi_group、hdmi_mode:决定分辨率。group=2, mode=9 代表800×600 @ 60Hz。
hdmi_drive:强制音频输出到HDMI口(注意,仅适用于带音频的HDMI-VGA转换器!!如果想让音频从模拟输出,则去掉此项!!)
hdmi_ignore_edid:强行按hdmi_group和hdmi_mode规定的分辨率输出。不检测显示器自身的分辨率。
disable_overscan:强行禁止保留黑边功能。
这个文件会命令树莓派:强制使用800×600分辨率,60Hz刷新率,并强制从HDMI输出。
请先尝试这样开机。如果开机能成功,就把hdmi_group和hdmi_mode,更改成自己显示器的分辨率即可。如果不行,请更改hdmi_mode的值更换以下其他分辨率:
- hdmi_mode=4 640x480 60Hz
- hdmi_mode=9 800x600 60Hz
- hdmi_mode=16 1024x768 60Hz
- hdmi_mode=17 1024x768 70Hz
- hdmi_mode=23 1280x768 60Hz
启动树莓派
OK, 把 SD 卡插在树莓派的菊花处?嘿嘿。如果你有HDMI线,并且显示器支持HDMI接口,接上显示器,接上电源即可。当然还有USB键盘,鼠标。如果是HDMI转VGA线,网上很多人说树莓派驱动不了(估计电压不够),所以你在买线的时候,就得买自带电源的HDMI转VGA线。(我个人感觉没有必要这么搞,要么远程,要么通过HDMI连接到高清智能电视)
并连接上网线,都连接好之后,然后接入电源,接通电源后树莓派会自动启动(树莓派没有开关机键,通电会自动开机),启动机器。 起来嗨。。。
树莓派LED指示灯状态的解释
启动树莓派,无显示器操作,通过SSH远程连接
老实说,我一直把树莓派定位为“一个扔在某个角落就可以自己跑得很欢的小电脑”,加上那仅有的4个 USB 口,一个插了 USB 无线网卡,另一个再拖个键盘或鼠标啥的,实在很不方便,那么最好还是能远程访问吧。一根网线,一根电源线,然后就可以把树莓派扔到角落里去,鼠标,键盘。who care ?
好在树莓派默认是有开启 SSH 的.
用户设置
如果你安装的是官方的 Raspbian 系统,那么默认的登录帐号为 pi ,密码是 raspberry
为了方便折腾,建议第一时间启用 ROOT 账号吧(为了安全,非常不建议这样做)~ 这个也很简单的,只需要执行一下两句命令即可:
- # 重新设置 pi 用户的密码
- passwd pi
- # 设置 root 账号的密码,会让你输入两次新密码
- sudo passwd root
- # 启用 root 账号登录
- sudo passwd --unlock root
- # reboot
- sudo reboot
执行完之后,用 reboot 命令重启就可以用 root 登录啦。这里仅仅是演示如何操作,个人强烈建议不要这么操作,为了安全,还是以普通用户登录,然后通过 su - root 来切换到root 用户工作。
使用raspi-config配置树莓派
Expand Filesystem 扩展SD卡可用空间
第一次用 root 登录,会自动弹出树莓派的高级设置面板(以后也可以通过 sudo raspi-config 命令进入):
首先:选择第一项 Expand Filesystem 扩展 SD 卡上可用的空间,不然以后会有很多大软件,不能安装(提示空间不足)。它的作用是将刚才写入到 Micro SD卡中的映像文件大小扩展到整张Micro SD卡中。
选中expand_rootfs选项,然后按下回车。你会看到如下提示,只需要再按一下回车就可以回到 raspi-config 主菜单中了。
扩展之后提示需要 reboot, 重启之后可以通过 df -h 命令看到效果~
Internatioanlisation Options 国际化设置
然后:选中第四项 Internationalisation Options 国际化设置,包括(locale, timezone, keyboard layout)
接下来我们更改键盘布局,确保我们的键盘能正常工作,Raspbian默认的是英国键盘布局,而我们在中国使用的键盘布局与美国相同,因此我们要对它进行更改才能正常使用。
选中 Change Keyboard Layout, 然后回车。选择键盘类型,我们选择 Generic 105-key(Intel) PC键盘类型。
选择了键盘类型之后,我们需要为它再选择一个键盘布局。刚开始显示的列表中,都只是英国的键盘布局,但是我们现在可以选择美国的键盘布局,因此我们选择(Other),然后再里面的列表中选择 English(US)即可。
然后你会被问到关于辅助键的问题, 选择默认的选项, 并且在下一个画面中选择No compose key选项。 同样, 如果你需要更改这个设置,可以使用raspi-config来更改。
Change User Password 更改默认用户 pi 的密码
前面我们已经提到,在命令修改密码,如果对命令行不熟悉的同学,可以在这里进行修改。 Change User Password, 按下回车,一个确认窗口弹出来,在屏幕下方会提示你输入一个新的UNIX密码。
Change locale 更改默认字符集
同样,如果你不想使用英国英语,那么你可以在这里更改这些设置。在演示中我们选择的是美国英语,因此我们选择en_US.UTF-8,并下翻列表将en_GB选项剔除。
再下一个对话框中会让你选择默认的区域,选择你刚才选的区域然后按回车继续。
回到raspi-config的主菜单,设置适当的时区。选中change_timezone选项然后按下回车。你会先看到一个地区列表。
更换软件源(apt-get sources)
树莓派的官方提供的源服务器访问起来实在太太太太太太慢了!会导致你安装一个几M的东西都要等大半天!肿么办!
好在树莓派官方有提供一个镜像列表:http://www.raspbian.org/RaspbianMirrors
- #大连东软信息学院(北方用户)
- deb http://mirrors.neusoft.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
- deb-src http://mirrors.neusoft.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
- #中国科学技术大学
- deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
- deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
- #清华大学
- deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
- deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
- #重庆大学(中西部用户)
- deb http://mirrors.cqu.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
- deb-src http://mirrors.cqu.edu.cn/raspbian/raspbian/ wheezy main contrib non-free rpi
- #前面几个都是教育网的
- #搜狐
- deb http://mirrors.sohu.com/raspbian/raspbian/ wheezy main contrib non-free rpi
- deb-src http://mirrors.sohu.com/raspbian/raspbian/ wheezy main contrib non-free rpi
- #阿里云
- deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main contrib non-free rpi
- deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main contrib non-free rpi
软件安装与卸载
apt-get
- 安装软件 apt-get install softname1 softname2 softname3……
- 卸载软件 apt-get remove softname1 softname2 softname3……
- 卸载并清除配置 apt-get remove -purge softname1
- 更新软件信息数据库 apt-get update
- 进行系统升级 apt-get upgrade
- 搜索软件包 apt-cache search softname1 softname2 softname3……
- 如果使用 apt-get 遇到速度慢或者源不存在等错误,可能需要更换源
dpkg
- 安装deb软件包 dpkg -i xxx.deb
- 删除软件包 dpkg -r xxx.deb
- 连同配置文件一起删除 dpkg -r -purge xxx.deb
- 查看软件包信息 dpkg -info xxx.deb
- 查看文件拷贝详情 dpkg -L xxx.deb
- 查看系统中已安装软件包信息 dpkg -l
- 重新配置软件包 dpkg-reconfigure xxx
常用命令
- apt-cache search # ------(package 搜索包)
- apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)
- sudo apt-get install # ------(package 安装包)
- sudo apt-get reinstall # -----(package - - reinstall 重新安装包)
- sudo apt-get -f install # -----(强制安装?#"-f = --fix-missing"当是修复安装吧...)
- sudo apt-get remove #-----(package 删除包)
- sudo apt-get remove --purge # ------(package 删除包,包括删除配置文件等)
- sudo apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
- sudo apt-get update #------更新源信息数据库
- sudo apt-get upgrade #------更新已安装的包
- sudo apt-get dist-upgrade # ---------升级系统
- sudo apt-get dselect-upgrade #------使用 dselect 升级
- apt-cache depends #-------(package 了解使用依赖)
- apt-cache rdepends # ------(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧...)
- sudo apt-get build-dep # ------(package 安装相关的编译环境)
- apt-get source #------(package 下载该包的源代码)
- sudo apt-get clean && sudo apt-get autoclean # --------清理下载文件的存档 && 只清理过时的包
- sudo apt-get check #-------检查是否有损坏的依赖
设置静态IP地址
回到前面刚刚提到的,不知道 IP 地址的问题,咱们要给树莓派设置一个静态 IP,省得 IP 变换又要重新找机器。还是用 nano 来编辑网络接口文件:
- sudo nano /etc/network/interfaces
- 默认网络配置:
- auto lo
- iface lo inet loopback
- iface eth0 inet dhcp
- allow-hotplug wlan0
- iface wlan0 inet manual
- wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
- iface default inet dhcp
如果你要设置的是有线网卡的 IP 地址,那么把 eth0 的 dhcp 改成 static 然后在下一行追加 IP 信息,结果大概如下:
- iface eth0 inet static
- address 192.168.3.200 # 设定的静态IP地址
- netmask 255.255.255.0 # 网络掩码
- gateway 192.168.3.254 # 网关
然后通过 /etc/init.d/networking 重启网卡.
挂载移动硬盘或U盘
树莓派外接U盘或移动硬盘时,默认不会自动挂载,需要手动 mount。
- fdisk -l
- mount /dev/sda1 /mnt/home
- #编辑fstab让移动硬盘开机自动挂载
- /dev/sda1 /mnt/home ext4 defaults,noatime 0 0
挂载NTFS格式的硬盘(读写方式挂载)
默认挂载NTFS格式的硬盘只有只读权限,需要借助其它工具实现。
- #安装所需软件包
- sudo apt-get install fuse-utils ntfs-3g
- #加载内核模块
- modprobe fuse
- #编辑fstab让移动硬盘开机自动挂载
- sudo nano /etc/fstab
- #在最后一行添加如下内容
- /dev/sda1 /mnt/myusbdrive ntfs-3g defaults,noexec,umask=0000 0 0
- #保存重启,即可生效
挂载FAT32格式的硬盘(U盘通常是这种格式)
- #创建挂载点
- sudo mkdir /mnt/myusbdrive
- #编辑fstab让移动硬盘开机自动挂载
- sudo nano /etc/fstab
- #在最后一行添加如下内容
- /dev/sda1 /mnt/myusbdrive auto defaults,noexec,umask=0000 0 0
- #保存重启,即可生效
树莓派作DNS服务器(dnsmasq)
将DNS公共查询服务器架设在树莓派上面,常用的DNS查询将会缓存到树莓派上,能起到DNS查询加速、提升上网体验的作用。本文将以开源的轻量级DNS转发服务程序 DNSMASQ 为基础实现这个功能。
DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析
1、首先安装 dnsmasq
- sudo apt-get install -y dnsmasq
2、配置
下面我们就需要配置DNSMASQ了,配置文件一般位于路径/etc/dnsmasq.conf。
这个是 dnsmasq 使用的配置文件。安装 dnsmasq 完后就会生成一个,里面有很详细的说明和例子,但是都是注释的,也就是等于这个是一个空的文件,你可以把这个文件做一个备份,然后新建一个空白的文件,只写你需要的配置就可以。这样看上去比较清晰一些,不然总是在一大堆 E 文里找你想要的东西也是很麻烦的,特别是英文不好的,看着头疼。
- listen-address=127.0.0.1
- strict-order
- #no-hosts
- #no-poll
- resolv-file=/etc/resolv.dnsmasq.conf
- #反电信劫持-114导航
- bogus-nxdomain=218.30.64.194
- #bogus-nxdomain=67.215.66.132
- # Set the cachesize here.
- cache-size=2048
- #国内指定DNS
- server=/cn/114.114.114.114
- server=/taobao.com/114.114.114.114
- server=/taobaocdn.com/114.114.114.114
- server=/tbcache.com/114.114.114.114
- server=/tdimg.com/114.114.114.114
- server=/weibo.com/114.114.114.114
- server=/weibo.cn/114.114.114.114
- server=/xunlei.com/114.114.114.114
- #国外指定DNS
- server=/google.com/42.120.21.30
- server=/twitter.com/42.120.21.30
- server=/facebook.com/42.120.21.30
- #host区段
- #本机
- address=/tp.set/192.168.2.1
- address=/dx.set/192.168.1.1
- #其他
- address=/t66y.com/184.154.128.246
- #address=/github.com/192.30.252.131
比较关键的几个参数:
resolve-file指定dnsmasq从哪里获取上行DNS Server, 默认是从/etc/resolv.conf获取。
addn-hosts指定dnsmasq从哪个文件中读取“地址 域名”记录, 默认是系统文件/etc/hosts;
listen-address默认是监控在所有网卡上的。
配置步骤:
- 配置 dnsmasq 的上游 dns 服务器;(dnsmasq是 dns 缓存服务器, 那么其还是需要有上游服务器进行域名解析的)
- 配置系统的 dns 服务器, 将 dnsmasq 设置在首位寻找
- 设置 dnsmasq 需要监听的 IP 地址, 让其他服务器能够找到它
在/etc目录下新建resolv.dnsmasq文件。 文件的内容为DNS服务器的地址,是真正的DNS服务器。
- resolv-file=/etc/resolv.dnsmasq
- strict-order 取消注释表示严格安装 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止。
- no-hosts, 默认情况下这是注释掉的, dnsmasq 会首先寻找本地的 hosts 文件,再去寻找缓存下来的域名, 最后去上游 dns 服务器寻找;
- addn-hosts 可以指定多个额外的hosts文件。
- listen-address=127.0.0.1 # 参数:例如, 我还需要让局域网内其他的服务器也能够首先访问这个 dnsmasq 来进行域名解析如何配置? listen-address=192.168.1.100 (dnsmasq 所在服务器局域网内 ip), 好吧, 这样你本机配置的 127.0.0.1 就没效果了… 如果设置为 listen-address=127.0.0.1 启用本地解析,那局域网内其他服务器就无法访问到这个 dnsmasq 了, 只有对本机才有效。其实应该这样设置 listen-address=192.168.1.100,127.0.0.1 这样你就能双方都满足了,既能为其他主机提供DNS解析服务,对自己也可以解析。定义 dnsmasq 监听的地址,一般写本地就可以,如果是需要共享给局域网的其他电脑,需要把本机的内网 IP 地址写进来,例如 listen-address=192.168.1.101,127.0.0.1
要在单台电脑上以守护进程方式启动dnsmasq做DNS缓存服务器,编辑/etc/dnsmasq.conf
,添加监听地址:
- listen-address=127.0.0.1
如果用此主机为局域网提供默认 DNS,请用为该主机绑定固定 IP 地址,设置:
- listen-address=192.168.x.x
- server=/cn/114.114.114.114 # 所有 cn 域名和子域名的解析都由 114.114.114.114 来处理,这样可以把国内国外的域名分别交给不同的 dns 服务器来处理。
- address=/domain.name/192.168.1.102 # 把 domain.name 这个域名解析到 192.168.1.102 。这个功能很好玩,有几个比较常用的场景,一个是做内网的域名解析,你可以把任意你想要的域名解析到局域网内的某个服务器上,这样局域网内的其他电脑就不需要手动输入难记的 IP 地址了。另外,你可以把一些广告商的域名解析到 127.0.0.1 ,这样你就不用被满屏的广告打扰了。当然,你可以把一些国外的网站指向一个没有被墙的 IP 上,这样也可以实现翻墙,虽然不一定有效。
- 基本上配置文件内容如下所示:
- # Dnsmasq.conf for raspberry pi
- # /etc/dnsmasq.conf
- # http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example
- # Set up your local domain here
- domain=raspberry.local
- resolv-file=/etc/resolv.dnsmasq
- min-port=4096
- server=8.8.8.8
- server=8.8.4.4
- # Max cache size dnsmasq can give us, and we want all of it!
- cache-size=10000
- # DHCP
- # Below are settings for dhcp. Comment them out if you dont want
- # dnsmasq to serve up dhcpd requests.
- # dhcp-range=192.168.0.100,192.168.0.149,255.255.255.0,1440m
- # dhcp-option=3,192.168.0.1
- # dhcp-authoritative
- # dhcp range 指定DHCP服务提供地址范围,以及租期为 1440m
- # dhcp-option 指定了默认网关
- # 在所有网卡上关闭 DHCP,用不着这个功能。如果有多个网卡那么一行一个。
- # no-dhcp-interface=eth0
如果你改动过设置,请重启服务:
- sudo service dnsmasq restart
这里的server
所指示的就是上级DNS服务器的地址,这里用的是Google的8.8.8.8
和8.8.4.4
,也就是说本地缓存查不到的域名将会发送给上级DNS服务器然后本地再缓存结果,可以改成你所需要的,一般就用谷歌的,我就不改了:-), 需要注意的是较老版本中这个使用的名字是nameserver
。
到这里基本上就配置完成了,你可以在树莓派上nslookup
或者dig
一下看看结果,当然如果找不到这些命令是因为你没有安装dnsutils
,直接通过下面的命令安装即可:
- sudo apt-get install dnsutils

评论