VOIP服务器-树莓派电话系统

利用 Asterisk 来实现一个低成本的电话系统

在研究了一些为小企业提供VoIP(Voice over Internet Protocol)和IP电话服务,包括支持新趋势 UC(统一通信)的技术解决方案之后,我个人认为用树莓派提供一个非常低成本的解决方案是完全可行的。相对于100美元的投资和一个专用的 VoIP/UC 服务器解决方案,树莓派和相应配件在成本方面的优势是无法比拟的。

树莓派的解决方案是通过在 Raspbian 系统上运行 Asterisk VoIP/UC 软件来实现的。这个开源解决方案提供了高度灵活的配置项,当然也可以用于许多不同的领域和应用。

本文说明了 VoIP/UC 的解决方案并不一定是高风险的,在实施的时候也不一定是需要很高投入的。

简介

在过去的几十年中,电话技术发展迅速,从模拟通信迁移到了基于VoIP的数字通信和IP电话。这也让统一通信成为了可能,统一通信是对实时通信服务,例如即时消息(聊天),电话,数据共享,视频会议,语音识别等和非实时通信服务,例如语音信箱,电子邮件、短信和传真等的集成。统一通信并不是指某一个单一的产品,而是一系列提供了一致的,统一的,跨多个设备和媒体类型的用户界面和用户体验的产品。(http://en.wikipedia.org/wiki/Unified_communications)

VoIP 是利用某个网络协议,比如SIP协议 (Session Initiation Protocol) 和 RTP协议 (Real-time Transport Protocol) 等,从而实现通过因特网来传输声音。

基础

要实现一个 VoIP/UC 解决方案,系统必须满足各种行业标准,而且网络设备也必须能够区分出对语音视频数据和其他类型数据的使用。

基本组件

本方案对硬件和软件的要求很简单。你需要做的可能只是下载软件而已。

硬件:

  • 树莓派B或者B+
  • 4 GB SD卡 (最低配置)
  • 1A 电源
  • 网线
  • 可选的 SIP 电话或者 SIP适配器(本文使用 Dlink DPH-150SE)

软件:

  • Raspbian
  • Asterisk 通信软件
  • LinPhone 虚拟电话软件 (支持 iOS, Android, Blackberry, Linux, Windows and OSX)。你可以通过下面链接下载。 http://www.linphone.org

安装

初始安装设置的时候,你可能需要使用一个USB键盘和鼠标连接到 Raspberry Pi 上,再连上一个显示器。配置成功以后,树莓派就可以不需要这些而自己运行了。

获取 Asterisk 软件最好的和最容易的方法是从这个网站 (http://www.raspberry-asterisk.org/downloads)下载最新的 SD 卡映像文件,它是一个预装了 Asterisk 通信软件和 FreePBX 图形用户界面的 Raspbian 系统。该映像文件是通过在这个网页上(http://www.raspberrypi.org/documentation/installation/installing-images/)的步骤被写到SD卡上的。

当系统启动后,用 root 身份和 raspberry 密码登陆。如果愿意,你也可以远程登陆树莓派系统。在 Windows 上安装 PuTTY SSH 客户端并用 root@raspbx 连接树莓派。如果是苹果的 Mac,只需简单的打开终端,输入命令 SSH root@raspbx.local 。你可能以后会想禁止通过 SSH 登陆 root 用户,因为这有可能造成一个安全漏洞。当你登录系统以后,你需要运行的第一个命令是:
raspbx-upgrade

这个命令将更新所有的软件到最新版本,包括 Raspbian 和 Linux 内核。

接下来你需要做的是配置静态IP地址。你需要在你的路由器或者猫上指定你想使用的静态IP地址,网络掩码和网关。命令:
ifconfig

将提供你当前的IP地址,网络掩码。你的新的静态IP地址的前三个字节应该跟你当前的IP相同,最后一个字节必须在你的路由器当前已使用的动态IP地址范围之外。如果想查找网关地址,请输入:
netstat -r

通过下面的命令编辑 interface 文件:
nano /etc/network/interfaces

编辑好的 interface 文件应该看起来跟下面截图中的一样。

注意你需要将 eth0 那一行上的 “dhcp” 替换为 “static”, 并确保你使用的是 <Tab> 键来达到需要的缩进。

保存这个文件以后,重启树莓派让新的网络设置生效。现在开始,你就可以使用新的静态IP或者 raspbx 主机名了。例如我现在就可以使用 PuTTY 通过静态IP来连接树莓派: root@172.31.15.11 。

Asterisk的配置

我们现在要通过 FreePBX 的图形用户界面来配置 Asterisk 软件。这样可以让整个配置过程变得简单和容易。 FreePBX 是已经在我们下载的那个映像文件里预装好了的软件。
如下所示的是一个示例架构图:

要运行 FreePBX, 请打开浏览器并在地址栏输入 http://raspbx 或者树莓派的静态 IP 地址。(对于苹果的 Mac,你需要输入 http://raspbx.local)。这样就打开了 FreePBX 的管理界面。

这里有三个选项:

  1. FreePBX Administration 用于配置 Asterisk
  2. User Control Panel 供用户调整他们的个人设置
  3. Get Support 将打开 FreePBX 的官方网站

点击 FreePBX Administration, 默认的登录名是 admin,登陆密码也是 admin。这个软件的菜单有多种选项,包括分机(Extensions),会议(Conferences)和响铃组(Ring Groups)等。请点击分机(Extensions)。

由于当前没有分机存在,所以你将添加一个新的分机。Device 选项请选择 Generic SIP Device,然后点击提交(Submit)进入下一个页面。这个页面也有很多的选项,但我们只需要设置用户分机号码为 300,显示名称为 Walberto 和密码为 ext300。单击 Submit 添加该扩展。

在屏幕的右边,点击 300 来查看你刚刚添加的分机。验证端口(port)选项被设置为 5060。点击 Submit 提交,然后点击那个红色的 Apply Config 按钮来保存所做的更改。

重复这个过程添加其它你需要的分机号,在这里我添加了 301 和 302 分机。

现在,我们需要配置 IP 电话。这个过程根据你的电话设备的型号而不同,在这里我们将使用 Dlink DPH-150SE 作为一个示例。最重要的设置是禁用 DHCP 选项,确认 SIP 电话端口号为 5060,还有注册的服务器是你的树莓派的 IP 地址。在后面的章节中,我们将通过 Proxy 选项来启用服务器注册。

对于 SIP Account 设置选项,我们需要输入之前通过 FreePBX 添加分机时使用的数据。Authentication User Name 就是之前添加的分机号码,而 Authentication Password 就是我们之前设定的那个密码(即ext300)。

虚拟电话配置

启动 Linphone 并在 Options 菜单中选择 Preferences。确认网络设置如下图所示。

在 Multimedia settings 选项中, 确认 Echo cancellation 被选上。在 Manage SIP Accounts 选项中输入你的显示名称。在我的例子中,虚拟电话的分机号为302, 所以用户名也为 302。由此而生成的 SIP 地址为<sip:302@172.31.15.7>。单击 Add 按钮在 Asterisk 上注册该分机的帐号。

按照下图所示,输入你的 SIP identity 和 SIP Proxy address(即你的树莓派的 IP地址)。

然后你将被要求输入密码。对于302分机,我设定的密码是 ext302。单击确定,注册就完成了。

通过 FreePBX 和 Asterisk 可以实现各种服务,如会议室,IVR(交互式语音应答),呼叫组等,还可以通过普通的PSTN电话,SIP中继线或互联网进行呼入和呼出。

未来

VoIP和互联网通讯的发展正在推动统一通信系统融合成一个整体的系统和环境。 FreePBX 和 Asterisk 是一个非常好的例子,它演示了如何用很低的成本来实现复杂的通讯系统。

作者:树莓派杂志中文版
链接:https://www.jianshu.com/p/4789d030fee3
來源:简书

树莓派3刷LEDE(OpenWRT)打造便携个人无线上网

前往 LEDE 官网下载固件并验证:

https://downloads.lede-project.org/releases/17.01.4/targets/brcm2708/bcm2710/lede-17.01.4-brcm2708-bcm2710-rpi-3-ext4-sdcard.img.gz

注:bcm2710 是专为树莓派3准备的。

淘宝购买树莓派硬件:

刷机软件:

SD卡烧录工具:Win32DiskImager (windows)

SSH连接工具:MobaXterm (windows)

刷入LEDE系统

使用 Win32DiskImager 烧录 LEDE 系统镜像到 SD卡

安装SD卡到树莓派,开机。

网络配置

用一根网线连接笔记本和树莓派,设置电脑的IP为自动获取。树莓派的默认IP为192.168.1.1

SSH 登陆,并修改 root 密码

ssh root@192.168.1.1

passwd

修改 /etc/config/network 配置文件,调整 lan IP为和路由器不冲突的其他IP,增加 wan 设置

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'
config globals 'globals'
        option ula_prefix 'fdd4:e89f:6414::/48'
config interface 'lan'
        option type 'bridge'
#       option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.88.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config interface 'wan'
        option proto 'dhcp'
        option ifname 'eth0'

修改 /etc/config/wireless 配置文件,开启无线 AP

config wifi-device 'radio0'
        option type 'mac80211'
        option channel '11'
        option hwmode '11g'
        option path 'platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
        option htmode 'HT20'
        option disabled '0'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'LEDE-WiFi'
        option encryption 'psk2'
        option key 'abc12345'

重启树莓派

reboot

用一根网线连接树莓派和路由器的 LAN 口,WiFi 连接到 LEDE-WiFi 网络,重新连接 SSH

更新软件包安装LuCI web界面

opkg update 
opkg install luci-ssl

浏览器访问 https://192.168.88.1 进入管理界面

安装软件包

安装中文包

opkg install luci-i18n-base-zh-cn 
opkg install luci-i18n-firewall-zh-cn

安装主题包

opkg install luci-theme-material

进入System > Software 搜索 luci-theme-material 主题包并安装

本文转自:小莱沃

用 Ncdu 分析树莓派的磁盘用量

使用树莓派部署、下载了很多软件和文件之后,你可能经常需要清理一下,这时要去搜索占用 SD 卡空间的都是哪些东西。树莓派 Raspbain 系统有一个很有用的工具叫 Ncdu,可以列出可以清理的磁盘空间占用。下面树莓派实验室给大家介绍。

安装 Ncdu 磁盘分析器

Ncdu 已经被 Raspbian 默认安装好了,如果没有则需要手工安装,可以用下面的命令。

sudo apt-get update
sudo apt-get install -y ncdu

运行 Ncdu

终端输入命令运行:

ncdu

它会给出当前目录下的磁盘占用情况。

你可以切换到你想清理的目录下面运行 ncdu 命令,或者像下面这样指定某个路径查看:

ncdu /home/pi
ncdu /

建议在指定目录时尽量选择一个比较合理的目录结构,如果目录下文件和子目录太多则需要等待 Ncdu 分析很久。

你可以使用方向键、回车键选择或进入下一层目录。

Ncdu 快捷键

这里提供了快捷键列表。按下“?”可进入。

快捷键划重点:

  • ? – 显示帮助界面
  • up, down j, k – 上下移动光标
  • right, enter, l – 打开所选目录
  • left, <, h – 返回上层目录
  • n – 按照文件名排序(再按一下倒序排列)
  • s – 按照文件大小排序(再按一下倒序排列)
  • C – 按照项目数排序(再按一下倒序排列)
  • a – 切换磁盘用量显示
  • d – 删除所选的文件或目录
  • i – 显示所选项的更多信息
  • r – 刷新/重新计算当前目录
  • b – 在当前目录下打开 shell

这里列出了界面上符号的释义:

总而言之,用了这个工具之后,手动清理磁盘空间不再繁琐了,希望对您有所帮助。

原文,翻译:树莓派实验室,转载本译文请保留此声明。

本文来自:树莓派实验室

这个人改造了自己的桌子,让自己的 Google Home 用上 “实体专辑”

相信,还在买 CD 或者黑胶的用户其实还有不少。

爱范儿(微信号:ifanr)在之前谈黑胶的时候就已经提到,现在有不少年轻用户还会追黑胶唱片。他们的着眼点并不在体验传统的味道上,而是觉得收集黑胶或者其他实体专辑是一种支持歌手出唱片或提升“仪式感”的行为。

 

虽然不怎么听,但买起来也不会少。

确实,现在要听个实体专辑确实也不容易。黑胶的话经不起折腾,听 CD 也不方便。而且现在的人已经习惯了那种以单曲、EP 为主的音乐消费模式,很少人能够坚持把一张专辑完完整整听完的。

OLYMPUS DIGITAL CAMERA

所以在声音体验也没有差太多的前提下,与其去不断切歌、换碟,倒不如直接用流媒体来得方便。

但其实,现在有人还想去玩“实体专辑”。GitHub 上有一位用户,就通过树莓派做了一个识别感应器,让自家的 Google Home 用上“实体专辑”。

 

根据 The Verge 的报道,这位来自 GitHub 上的用户叫“hoveeman”,他将一个射频识别读卡机和树莓派 Raspberry Pi Zero 连接起来,并开发了一套专用的程序。安装上这套程序后,树莓派能够给家中的 Google Home 发出指令,让它播放相应的专辑。

在这套组合中,射频识别读卡器 RFID 模块的任务就是用来识别“实体专辑”。

这些“实体专辑”,其实是 hoveeman 自己做的一些小卡片。小卡片的表面印着专辑封面、名称和表演者,卡片内部则呆在了一块小型识别芯片。当用户将芯片放到 RFID 模块上,模块就能够识别出相应的信息,传输到 Raspberry Pi Zero 上。电脑处理后,就会发送的 Google Home 上,让它播放相应的专辑。

这个模块能够隐藏在家居产品当中,不管是木桌还是凳子,只要不阻碍 RFID 识别的,都能够藏在里面。虽然这套设备带来的解决方案有点“多此一举”,但现在看起来有点意思。至少,它比你经常换 CD 来得方便。

现在,Hoveeman 将这套解决方案都上传到 GitHub 上。你可以在这个主页上查到它用过的设备和代码,自己做一套相同的出来。

(Hoveeman 整套方案的内容物)

这个其实有点像之前在那个用 RFID 来控制 Spotify 的方案,那个方案也是用识别卡片来让智能设备播放 Spotify 中的专辑或特定播放列表,做法和实现目标基本上没有什么大分别。

这些方案对于开发者来说,也都是自娱自乐的东西而已。

毕竟,现在的人确实也不怎么喜爱这种消费方式。他们只需要一个简单的听歌方案,而流媒体服务正好能够给他们最简单直接的体验,有这个来确保基本需求之后,其他东西也不重要。

 

赛普拉斯为树莓派3B+ IoT单板计算机提供稳定的无线连接能力

3月15日,赛普拉斯宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3 Model B+)IoT单板计算机提供强大稳定的无线连接能力。赛普拉斯CYW43455单芯片combo解决方案提供速度更快的高性能802.11ac Wi-Fi 网络连接、用于音频和视频流媒体播放等蓝牙和蓝牙低功耗(BLE)同步运行的高级共存算法,以及与智能手机、传感器和蓝牙Mesh网络的低功耗BLE连接能力。该combo的高速802.11ac传输能力,可实现出众的网络性能、更快的下载速度和更好的覆盖范围,并借助快速深度睡眠模式实现更低的功耗。树莓派 3 B+型板卡基于已经大获成功的采用赛普拉斯的CYW43438 802.11n Wi-Fi和蓝牙combo芯片系统(SoC)的树莓派解决方案。

基于802.11ac的Wi-Fi网络可同时实现低时延和高传输速度,还具有安全设备通信的特性,从而使其成为理想的将设备直接连接到云端的无线技术。内置高度集成的赛普拉斯CYW43455  combo SoC的树莓派3 B+板卡,使开发人员能够快速构建工业物联网系统和能够发挥802.11ac优势的智能家居产品原型。

树莓派首席执行官Eben Upton表示:“在拥挤的频段中实现可靠的无线连接是工业物联网和智能家居系统开发人员关心的首要问题,因此我们为树莓派3 B+板卡选择了赛普拉斯的802.11ac  combo SoC。我们的新板卡将高性能、可互操作和高度可靠的802.11ac Wi-Fi广泛用于各种物联网产品。”
赛普拉斯物联网事业部营销副总裁Brian Bedrosian表示:“树莓派采用赛普拉斯连接产品,创造出领先的物联网开发板,迄今已售出数百万台,新型树莓派3 B+板卡将赛普拉斯802.11ac Wi-Fi的优势带给更多物联网开发人员并广泛的覆盖了各种应用。我们的802.11ac combo SoC能使物联网产品在拥挤的2.4-GHz频段中轻松应对共存挑战,为音频、视频和语音控制数据提供更干净的环境,同时提升多用户环境下的网络性能。”
树莓派3 B+板卡配备1.4GHz 64位四核处理器,1GB RAM,全尺寸HDMI和4个标准USB端口、USB2上的千兆以太网、以太网供电功能、CSI摄像头连接器以及DSI显示连接器。该平台的资源及其802.11ac无线局域网和蓝牙/ BLE无线连接,可为所连接的设备提供紧凑的智能解决方案。
赛普拉斯CYW43455 SoC采用2.4和5 GHz双频段,提供20、40和80 MHz信道,性能最高可达433 Mbps。802.11ac的高速吞吐量使设备能够更快连接网络,避免网络拥塞,并通过延长设备深度睡眠模式时间延长电池续航。SoC包括带企业和工业功能的Linux开放源代码全媒体访问控制(FMAC)驱动程序支持,具有安全性、漫游、语音和定位等功能。
赛普拉斯CYW43455 SoC和其他解决方案支持蓝牙Mesh网络,通过简单、安全和无处不在的蓝牙连接实现低成本、低功耗的设备mesh网络,使设备能够彼此之间,以及与智能手机、平板电脑和语音控制家庭辅助设备之间相互通讯。蓝牙Mesh使网络中的电池供电设备能够相互通信,即使在最大的住宅也能轻松覆盖,从而使得用户可以将所有设备掌控在手中。赛普拉斯综合全面的一站式嵌入式设备无线互联网连接(WICED®)软件开发套件(SDK)支持基于该SoC的开发,从而简化了物联网开发人员的无线技术集成工作。
转自集微网

纯手工打造树莓派3双无线网卡应用无线热点

一直想入手树莓派玩玩,最后受到一位大神的启发(懒人在思考)琢磨了另一种树莓派WIFI的用法。使用树莓派本身的系统,添加一个外置无线网卡,使其成为可移动的无线解决方案,当然主要还是为了能够安装某些S类的软件。

从淘宝购入硬件设备,下面开始折腾。

配置网络

安装 dnsmasq 和 hostapd

sudo apt-<span class="hljs-keyword">get</span> install dnsmasq hostapd udhcpd

将无线接口wlan0的IP配置成静态地址。外置无线网接口wlan1默认DHCP配置并接入因特网。在树莓派系统中,默认是DHCPCD配置网络接口。所以要告诉系统我们给wlan0分配静态IP地址,操作是打开配置文件并增加配置参数指令。

sudo vi /etc/dhcpcd.conf
interface wlan0
static ip_address=192.168.88.1/24

修改 /etc/network/interfaces 设置wlan1为 DHCP 并自动连接WIFI,wlan0<span> </span>为固定IP

# 表示使用localhost
auto lo 
iface lo inet loopback

# wlan1 自动获取IP
auto wlan1
iface wlan1 inet dhcp
pre-up wpa_supplicant -Dwext -i wlan1 -c /etc/wpa_supplicant/wpa_supplicant.conf -B

# wlan0 为静态IP
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.88.1
netmask 255.255.255.0

重启树莓派

sudo service dhcpcd restart
sudo reboot

UDHCP

编辑配置文件/etc/udhcpd.conf

start 192.168.88.100 #配置网段
end 192.168.88.150
interface wlan0 # The device uDHCP listens on.
remaining yes
opt dns 192.168.1.1 8.8.8.8
opt subnet 255.255.255.0
opt router 192.168.88.1 # 无线lan网段
opt lease 864000 # 租期10天

HOSTAPD

创建hostapd.conf

<span class="hljs-attribute">sudo</span> vi /etc/hostapd/hostapd.conf

添加如下配置

interface=wlan0
driver=nl80211
ssid=H-Pi
hw_mode=g
channel=6
wmm_enabled=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=abc12345
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

修改 /etc/default/hostapd ,让系统每次启动都自动加载AP模式下的配置。

<span class="hljs-attr">DAEMON_CONF</span>=<span class="hljs-string">"/etc/hostapd/hostapd.conf"</span>

设置开机启动

sudo <span class="hljs-keyword">update</span>-rc.d hostapd <span class="hljs-keyword">enable</span>

DNSMASQ

备份默认配置文件

<span class="hljs-attribute">sudo</span> mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak

添加以下内容

interface=wlan0
bind-interfaces
server=218.2.2.2
server=114.114.114.114
server=8.8.8.8
domain-needed
bogus-priv
dhcp-range=192.168.88.2,192.168.88.254,12h

设置IPV4转发

打开系统配置文件sysctl.conf,去掉IPV4转发那一行的#注释

<span class="hljs-attribute">sudo</span> vi /etc/sysctl.conf
 # Uncomment the next line toenable packet forwarding for IPv4
net.ipv4.ip_forward=1

外置无线接口共享给wlan0上网,需要配置NAT:

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -APOSTROUTING -o wlan1 -j MASQUERADE
sudo iptables -A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT

保存以上防火墙规则

<span class="hljs-attribute">sudo</span> sh -c <span class="hljs-string">"iptables-save> /etc/iptables.ipv4.nat"</span>

/etc/network/interfaces末尾增加一行,设置为开机启动

up iptables-restore < <span class="hljs-regexp">/etc/i</span>ptables.ipv4.nat

编辑 /etc/network/if-pre-up.d/iptables
添加下面两行代码:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.ipv4.nat

保存退出,然后修改 iptables 权限:

sudo <span class="hljs-keyword">chmod</span> <span class="hljs-number">755</span> /etc/network/<span class="hljs-keyword">if</span>-pre-up.d/iptables

通过获取DHCPCD来运行NAT需要创建一个新文件

sudo vi /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat
sudo iptables-restore < /etc/iptables.ipv4.nat

重启服务及树莓派

sudo service hostapd start
sudo service dnsmasq start
sudo reboot

其他配置

设置 wlan1 自动连接区域内WIFI

<span class="hljs-attribute">vi</span> /etc/wpa_supplicant/wpa_supplicant.conf

在文件的末尾添加WIFI网络的名称以及密码,将要连接的wifi名称和密码替换即可。

network={
 ssid="SSID"
 psk="wifi_password"
}

使用sudo wpa_cli reconfigure命令启动连接

pi@raspberrypi:~ $ sudo wpa_cli reconfigure
Selected interface 'wlan0'
OK

本文来自:小莱沃

安装Pi-hole,让树莓派为你过滤家中广告

最近在使用DietPi这个魔改版Raspbian系统时意外的发现了这个神奇的软件(软件主页:https://pi-hole.net/,正如标题所说,它可以帮你过滤整个家中的广告,但不需要繁琐地针对每台设备进行设置,算是对非智能路由及低性能路由无法过滤广告的一种解决方案。

下面就讲解一下具体的安装方法咯。

注:同样适用于其他Linux设备

0.开始之前

首先你需要为你的树莓派安装好系统,然后你可能需要针对自家的网络环境为你的树莓派设置好静态IP,不同的路由器设置方法有一定差别,具体方法自行百度(关键词:路由品牌 静态IP)。

例如我刷了LEDE的路由器的设置在这里:

不过近几年的路由器大多会针对不同的设备设置固定的IP地址,所以如果你确定自己树莓派的IP地址不会变动,不设置也是OK的。

1.安装Pi-hole

Pi-hole的安装过程比较简单,只需在终端中输入一条命令即可:

curl -sSL https://install.pi-hole.net | bash

安装过程中你可以喝杯咖啡,看会儿书,刷会儿微博,直到你进入这个界面:

一路Enter,直到这里:

选择其中一个DNS提供商,或者选择最后一项自定义:

选好之后接着一路Enter,然后你继续可以喝杯咖啡,看会儿书,刷会儿微博,直到这里:

这时就已经安装完成了,访问上面给出的网址,输入密码即可进入后台。

如果需要修改密码,在终端中输入:

pihole -a -p newpassword

 

2.配置路由

光设置好树莓派是没卵用的,毕竟我们要过滤的是整个局域网的广告,所以我们要针对路由器进行配置。

Pi-hole采用的是使用本地DNS服务器的方式在局域网中进行过滤,所以我们需要设置Pi-hole为当前网络的DNS。

方法1
这种方法适用于大部分路由器,直接将DNS设置在路由器上。但需要注意的是,应当将DNS设置在LAN接口上(区别于WAN),在我这里是这样的:

 

方法2(推荐)
这种方法适用于一些刷了OpenWRT(LEDE),DD-WRT,Tomato等自定义程度较高固件的路由器,推荐使用该方式

在DHCP选项中填入:6,树莓派IP地址

 

注:若使用该方式,建议将上游DNS设置为路由器

方法3
如果这些选项在你的路由器里都没有,Pi-hole也内置了一个DHCP服务器,具体设置方法不多阐述。

方法4
如果你愿意的话,你也可以针对每一台设备进行设置,方便针对不同的设备进行过滤,具体设置方法不多阐述,自行百度。

不管你使用的哪一种方式,设置完之后都建议重启一下路由器或开关一下飞行模式,让设备使用新的DNS。

3.配置Pi-hole

实际上进行完上面的步骤就已经可以使用了,下面就针对一些常用的功能进行说明。

过滤规则
过滤的规则在这里,可以看到已内置了一些规则:

实际上,Pi-hole使用的是hosts方式对广告进行过滤(类似AdAway),默认的规则对于国内环境不太友好,下面就附上适用于国内环境的一些hosts:

  • yhosts:可以说是国内比较不错的hosts,定期有更新,奈何作者的唯我主义连带屏蔽了一些非广告网站,可以在终端中手动添加白名单:
pihole -w `curl -sSL https://raw.githubusercontent.com/vokins/yhosts/master/data/moot/cps.txt https://raw.githubusercontent.com/vokins/yhosts/master/data/moot/error.txt https://raw.githubusercontent.com/vokins/yhosts/master/data/moot/hate.txt | sed '/^@/d; /^#/d; s/127.0.0.1 //' | tr "\n" " "`
  • neoHosts:比较小众的hosts,看介绍貌似是不满于上面那位而弄出来的。
  • MWSL-hostslist:恶意网站实验室可能没多少人知道,不过其提供的OneDNS可就算是比较有名的了,这个hosts正是OneDNS中所用于屏蔽恶意网站的规则。
  • AdAway:也就是安卓上的AdAway所使用的规则,不过针对中国误杀现象严重,慎用。

如果还有哪些不错的去广告hosts,欢迎在评论区中留言。

相较于通常的过滤方式(如Adblock Plus、KoolProxy等),利用hosts过滤有自己的优缺点。优点是不会拖累网速(甚至可能有一定提升),缺点是过滤效果不尽如人意。

不过如果你要是想要利用这个做一些有违我国国情的事情,放心,那样的话就相当于在你家里再上了一道防火长城(Pi-hole只能将规则中的网站解析到自身以进行屏蔽)。

黑白名单

 

顾名思义就是对过滤规则的手动调整,黑名单分为匹配和通配两种,建议那些整天说退游的同学可以试试。白名单主要是针对一些有防过滤广告或被误杀的网站。

隐私设置

 

在这里你可以设置让一些不想在日志中出现的网站或设备隐藏起来,至于有什么用嘛……那各位自己心里的B数都很清楚啊……

Pi-hole上的一些其他高级功能这里就不多赘述了,有待自行探索。

4.Enjoy it!

到这里关于Pi-hole的全部设置就完成了,打开浏览器访问一些广告较多的网站,看看广告是否被屏蔽了、仪表盘上的数字是否增加,如果没有再仔细按照上面的步骤检查一遍,尤其是关于DNS设置的部分。

好了,和广告Say Goodbye吧!

本文来自:树莓派实验室

 

树莓派 Zero USB/以太网方式连接配置教程

树莓派 Zero 之所以成为一款非常棒的单板计算机并不全因为它小巧的尺寸和便宜的价格,还得益于它便捷、易用的特性。在加装了 Zero Quick Plug 或 microUSB/USB 转换头之后,将树莓派 Zero 和电脑连接起来。树莓派 Zero 即可配置成 USB/以太网设备,这时仅需要一个 USB 接口就实现给树莓派供电的同时将它接入因特网。不再需要携带额外的电源适配器、 USB HUB和无线网卡。可以说这是迄今为止连接树莓派最简单、方便的方式!
对于 Raspbian 2016-10-5 之后的系统镜像,你只需要在系统 SD 卡上修改几处配置文件即可将树莓派配置成一个 USB/以太网设备。
这个教程基于 Windows 平台,在连接树莓派之前,你可能需要在电脑上安装 Bonjour。它允许你的电脑自动识别 USB/以太网设备,例如打印机、扫描仪以及我们需要的树莓派。Bonjour 被包含在 iTunes 与 Adobe CS 软件中,所以很可能你已经装有这个软件,如果没有,你可以在这里单独下载安装。

一、配置 CONFIG.TXT 和 CMDLINE.TXT 文件

开始刷入系统,请确认你下载的系统镜像是 2016-10-5 之后的版本。在电脑上将系统镜像写入 micro SD 卡,可以使用 Win32 Disk Imager 这个工具(这里下载)。

完成之后,在电脑上打开这个 micro SD 卡的根目录 (例如. boot(E:)) 并打开 config.txt 文件。在文件末尾添加一行 dtoverlay=dwc2。

保存并关闭 config.txt 文件。

再打开 cmdline.txt 文件,请确认你的编辑器已关闭“自动换行”。编辑这个文件的时候不需要插入任何换行符,所有字符都在同一行。找到 rootwait,在后面插入 modules-load=dwc2,g_ether。

保存并关闭 cmdline.txt 文件。

最后在根目录创建一个名为 ssh 的文件或目录。

好了,可以从电脑上弹出 SD 卡了。把 SD 卡插入树莓派 Zero,用 Zero Quick Plug 或 microUSB/USB 转换头将树莓派 Zero 和电脑连接起来。

图中用到的这款连接部件是树莓派 Zero 多功能 USB 插头(Zero Quick Plug),详见下图。

这时 Windows 会自动识别到树莓派,并尝试安装驱动。

到这里,打开 PuTTY(这里下载)并尝试通过 SSH 连接树莓派的地址 raspberrypi.local。

如果你发现可以正常连接和登录树莓派,恭喜你!下面“安装 RNDIS 驱动”的步骤可以跳过了!直接从下面“设置共享互联网连接”开始阅读。

如果在这里遇到错误提示 “Unable to open connection to raspberrypi.local. Host does not exist”, 那么你需要在电脑上安装 RNDIS 驱动。

二、安装 RNDIS 驱动(酌情跳过)

保持树莓派与电脑的连接,打开 Windows 的“设备管理”,在“其他设备”中找到“RNDIS/Ethernet Gadget”, 右键选择“更新驱动程序”。

再选择“Browse my computer for driver software”。

选择“Let me pick from a list of device drivers on my computer”。

选择“Network adapters”,下一步。

在 “Manufacturer” 列表中选择 “Microsoft”。在 “Network Adapters” 列表中选择“Remote NDIS Compatible Device”,下一步。

在弹出的对话框中选择“Yes”。

安装完驱动之后,你将看到这个窗口。

现在尝试用 PuTTY 连接地址 raspberrypi.local。

三、设置共享互联网连接

为了将电脑的互联网连接共享给树莓派,我们需要允许共享你电脑上的一个网络连接。打开“Network Connections”。

你的树莓派在里面显示为 “RNDIS/Ethernet Gadget” 的设备类型,在上图示例中,名字是“Ethernet 2”。

现在你要确定用哪一个连接给树莓派访问用 (WiFi 或以太网)。这里我选择让树莓派通过电脑的“Wi-Fi”这个连接去访问互联网,所以我启用这个连接之后在右键“属性”中进行设置。

选择“共享”标签。

勾选“Allow other network users to connect through this computer’s Internet connection”,在下拉菜单中找到树莓派的连接名称(这里选择 Ethernet 2)。

WiFi 网络这时出现“Shared”标注了。

现在可以重启你的树莓派并重新用 PuTTY 登录了。

登录树莓派之后,用 ifconfig 命令查看 usb0 连接可以看到网络上行和下行的流量。

Ping 一下某些网站域名,确认互联网连接是否正常。

如果你用的是 Raspbian 桌面版,你可以安装一个 RDP(远程桌面协议)客户端然后在电脑上通过远程桌面( “Remote Desktop Connection” )客户端连接到树莓派,连接地址同样是raspberrypi.local。(具体方法

将你的树莓派 Zero 配置成 USB/以太网设备,可以仅需要一个 USB 接口就实现给树莓派供电的同时将它接入因特网。不再需要携带额外的电源适配器、 USB HUB和无线网卡。可以说这是迄今为止连接树莓派最简单、方便的方式!

另有 macOS 平台下使用这一功能的教程,移步这里阅读

本文来自:树莓派实验室

 

Mozilla更新“物联网网关”框架 大幅提升易用性

本文转自:cnBeta

Mozilla 刚刚为 Things Gateway 发布了一个更新,以方便大家在一台树莓派上构建服务。实际上,“互联网网关”是更大的“Project Things”项目的一个组成部分,其旨在为人们提供一套软件和服务的框架,在设备间搭起一座沟通的桥梁。Mozilla 在公告中称:“今日更新后,树莓派用户可以轻松搭建自己的互联网网关”。

“除了基于 Web 的命令和控制之外,我们还加入了一项试验性的功能,展示了使用基于语音的命令的能力和易用性。我们相信,这将是用户与智能家居最自然的互动方式”。

本次更新主要包含了如下功能:

● 支持通过计算机上的麦克风来发起语音命令;

● 引入 IFTTT 设置规则引擎,阐明设备间如何相互作用的逻辑;

● 可显示你家中设备布局的一张平面图;

● 附加设备支持,比如智能插座、调节灯泡亮度和颜色、多级开关和传感器等;

● 全新的附加组件系统,支持新协议和设备;

● 一套安全授权第三方应用程序的新系统(借助 OAuth)。

[编译自:Neowin , 来源:Mozilla]

 

 

给树莓派 Zero 添加一个RCA视频输出插头

你知道吗?树莓派 Zero 也是有集成视频输出接口的。

如果你希望用老式的电视作为树莓派 Zero 的显示器,往下阅读吧……

 

没错,正如图上这么简单就可以搞定。树莓派 Zero 并没有限制视频只能通过 HDMI 接口输出,同之前的树莓派1代B型一样,只需要自己将 RCA 给 DIY 接上即可。

首先你需要准备:
树莓派 Zero 主板
RCA 端子 1 个
2Pin 排针 1 个
母对母杜邦线2根

按照图上所示,将排针焊接到树莓派 Zero 的这个位置。

 

这样之后,树莓派会自动检测视频接口并选择从 HDMI 或 RCA 接口输出。如果到这一步并没有效果,请继续阅读按照下面的配置来让它正常工作。

配置软件

先备份 config.txt 文件,以备遇到故障时可以随时恢复。

sudo cp /boot/config.txt /boot/config.txt_backup

然后修改 config.txt。

sudo nano /boot/config.txt

有两行需要修改,去掉这几行前的注释符号“#”。

sdtv_mode=2
hdmi_force_hotplug=1

保存之后关闭树莓派、通过 RCA 接口接上显示器、再启动树莓派,看看显示器是不是正常工作了吧!

本文来自:树莓派实验室