26255| 10
|
[教程] 随身钥匙扣服务器——树莓派 Zero W |
前言 原创文章,转载引用务必注明链接。水平有限,如有疏漏,欢迎指正。 由于最近比较忙,就不详述介绍了,直奔主题,想要更多了解zero_w的可以查看别人的分享。 1、 What Do I Want?前段时间例行重装系统,突然发现,不管如何过了一段时间电脑里面就会出来一堆软件残留或者系统垃圾,作为一个有轻度洁癖的强迫症电脑使用者,突发奇想,可不可以把一些软件放在随身小服务器上,即插即用。如此想了一下,列出大致需求: 随身服务器要求:
明确了对随身服务器的硬件要求,查阅市面上常见的开发板目录,最后筛选出以下几块开发板:
注:以上价格仅供参考。 喜好程度:RPi > NanoPi > Edison>OrangePi。原本准备从DFRobot买块基板配合Edison使用,优点在于功耗低、性能强、接口丰富;缺点在于体积稍大、有排针不方便、操作系统只有官方的Yocto比较完善,但是软件包较少。 恰在此时,想起云汉社区有Zero W的试用活动,就抱着试试看的态度申请了一下,没想到次日知会我通过了,第三天就寄到了我手上,很是惊喜。 3、项目方案
基本就是Zero W上电之后,与主机自动零配置组网,首选蓝牙BLE,适用性强,通过主机共享上网。其次通过Wifi或者MicroUSB数据线与主机连接。 4.1、Bluetooth PANBluetooth Personal Area Networking,蓝牙个人区域网。W与主机蓝牙组网,通过主机共享网络连接。分为主机使用Linux和Windows两种情况,实现过程中遇到了问题,待完成后补充。 4.2、Wifi需要解决的问题包括W连接路由与主机形成局域网;Zero连接主机共享的无线网;Zero连接路由,主机通过Zero联网。Station->STA指连接其他设备的工作模式,比如手机、电脑连接路由器;Access Point->AP指可以被其他设备连接的模式,如路由器。 更多信息可以参考我的博客UP Board USB无线网卡选购指南。 4.2.1、Zero W连接路由器 要处理三个问题,一是首次上电如何自动连接无线网;二是如何在多网络自动切换;三是如何连接隐藏网络。 既往初次设置无线网络,我一般使用dietpi系统,烧录之后修改boot分区里的dietpi文件。 现在新版的Raspbian提供了另外的选择,根据树莓派官网的更新日志:
至此,我们使用WiFi config generator小工具生成一个wpa_supplicant.conf文件,放在/boot分区下即可。 参考WPA supplicant | ArchWiki 、 wpa_supplicant.conf | manual 以及《Linux无线网络设置(wpa_supplicant的使用)》,我们可以增加priority字段和scan_ssid=1字段实现多网络切换与连接隐藏ssid的无线网络。 network={ ssid="home" scan_ssid=1 priority=5 key_mgmt=WPA-PSK psk="very secret passphrase"}
除此之外可用wicd连接隐藏无线网,我之前讲过。 对于dietpi,不知道是否自动处理boot分区的wpa配置文件,我之前是使用/etc/network/interfaces文件移动至/boot分区,创建软链接的方法。 4.2.2、Zero W连接主机虚拟热点。这里使用绿色版软媒Wifi助手,比猎豹免费wifi和360wifi功能略少,但是起码够用,最重要的是没有广告啊!!! 4.2.3 主机通过Zero W联网我们通过执行iw list命令,可以看到Zero板载的无线网卡支持多种工作模式(不支持monitor监听模式): 此外,支持同时开启多种模式: 所以设想Zero连接Wifi,然后建立热点为其他设备提供上网服务理论上是可行的。参考这篇帖子,同时开启STA和AP模式,方法参考博士的帖子。参考这里让连接Zero热点的设备联网。
RaspAP项目使用网页控制hostapd所建立的热点。 4.3、OTG数据线直连参考我之前写的文章:《一根数据线玩转Zero》,通过常用的MicroUSB数据线连接W与主机,共享主机网络,方便但是偶尔不稳定。 5、随身服务器我们这里使用个人强烈推荐的DietPi发行版,当然你也可以使用树莓派基金会推荐的Raspbian Lite以及优秀的Armbian发行版。简介以及基本安装使用请参考我的博客文章,不再赘述。 5.1 广告屏蔽既往使用过AD Safe净网大师/ADM阿呆喵,最初用的是前者,但是使用过程中有种不祥的预感,直觉告诉我这软件可能会侵犯隐私,而且体积越发臃肿,所以弃用换了ADM,甚是满意,只是开启https广告拦截配合chrome浏览器会提示证书错误,无法正常访问网页,然后现在https广告还是很多的。 这里我们使用Pi-Hole项目来屏蔽广告。
最早是在Reddit树莓派讨论区(相当于国外版百度贴吧)看到Pi-Hole(注册商标)项目,开发活跃,讨论热烈,而且现在越来越完善了。 Pi-Hole号称A Black Hole for Internet Advertisements,是一个支持多平台、全网范围的广告拦截工具,本质是提供DNS解析服务,因此所有设备都能获得广告拦截效果。此外它还有一个易于管理的网页控制界面。 要想实现去广告及加速网址解析,只需要把设备的DNS设置为Zero的地址即可。此外还可以结合SS服务器增加一些设置如防DNS投毒。 5.2、Scientific 上网更新Pi-hole的过程中从外网下载更新文件失败,再加上一些网站打不开,所以准备让Zero W作为二级代理连接我位于太平洋彼岸的VPS服务器,并为局域网提供指路服务。 由于墙越来越厉害,国外搭建OpenVPN特征流量会被识别,根本无法连接,所以你看国内免流服务都是租用国内服务器搭建OV。
SSR-libev项目地址:https://github.com/shadowsocksr/shadowsocksr-libev 由SS-libev fork而来,安装教程未更新请参考原版。 这里使用的Raspbian|DietPi基于Debian 8(Jessie),根据教程我们添加jessie-backports软件源,并执行apt -t jessie-backports install shadowsocks-libev安装相应软件包,然而无论运行什么命令都会提示Illegal instruction,搜索之后怀疑是软件仓库里的预编译包虽然是armhf架构,但是不兼容Zero W。最后选择下载源码进行编译安装。 https://github.com/tennfy/shadowsocks-libev/blob/master/debian_shadowsocks_tennfy.sh 5.2.2 交叉编译 使用过程中发现使用ARM编译软件包还是很慢,所以准备用x86小主机进行交叉编译。 pass 参考:http://blog.csdn.net/xukai871105/article/details/24932611 http://shumeipai.me/archives/59.html http://www.cnblogs.com/xieyajie/p/4699724.html arm-linux-gnueabihf-gcc 5.2.3 ss-local与ss-redirpass 测试socks5代理是否成功: curl --socks5 127.0.0.1:1080 www.google.com由于正常情况下谷歌是无法访问的,如果代理成功则会返回内容。 5.2.4 Privoxy:socks5转http代理默认情况下,ss是socks代理,而有些情况下,我们需要http代理。 curl -x 127.0.01:1080 www.google.com默认-x参数使用http代理,此时无法返回内容。我们参考shadowsocksR for windows,看到一个名为privoxy的工具,实现了一个端口同时兼容socks4/5、http协议,好在Linux下也有该工具。但是由于我们使用的ss-local并不支持该特性,所以要使用privoxy额外占用一个端口,当然privoxy作用不止于此,这是后话,按下不表。可用参考linux下使用privoxy将socks转为http代理 。 [mw_shl_code=bash,true]# 安装privoxy apt install privoxy # 更改配置文件,实现socks5转http echo 'forward-socks5 / 127.0.0.1:1080 .' >> /etc/privoxy/config echo 'listen-address 0.0.0.0:8118' >> /etc/privoxy/config # 重启服务并测试是否成功开启http代理 systemctl restart privoxy.serivce curl -x 127.0.01:8118 www.google.com[/mw_shl_code] 把地址改为 0.0.0.0:8118,表示外网也可以通过本机IP作http代理。 至此,我们实现了Zero W开机自动连接SS服务器,并对局域网提供socks5/http代理,可选透明代理。 本文使用Markdown写成,为获得更好的阅读体验和正确的格式显示,请访问我的博客原文: http://www.cnblogs.com/sjqlwy/p/zero_w_server |
txm派瑞深山锹 发表于 2020-5-6 16:11 原文链接,这个是当时论坛不支持markdown时复制过来的,链接点不开。其他相关的设置啥的可以参看:
|
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed