上一篇我们在树莓派上运行了一下目标检测中的yolo系列,这篇先介绍树莓派上VPN以外的外网访问方式。在物联网的项目中,这些技术也可用于解决内外穿透,负载平衡和远程控制等需求。
代理服务器充当着你的电脑和另一台计算机之间的联络人,当你使用代理连接到互联网时,你需要通过代理服务器请求连接。当你在计算机上执行的所有操作也称为客户端,将转发到代理服务器,该代理收集你的要求信息,随之将其返送给你。
VPN或虚拟专用网络允许你将计算机连接到远程网络,VPN通常专门用于连接到本地intranet或外部链接不可访问的内容。许多工作场所允许他们的员工使用VPN远程连接,以便,以便从办公室外部访问公司的本地Intranet上的数据。
简而言之,VPN将构建一个隧道来构建虚拟局域网,而代理服务器只是做一个中间人转发数据,就安全性和匿名性来说,代理服务器一般会弱一些。代理的方式有很多,包含了各种HTTP代理服务、Socks服务、VPN服务,其中以 ssh tunnel 的方法比较有代表性。
1 下载源码
大名鼎鼎的“小飞机”,使用Socks5协议来做ssh代理,拆分了server端和clinet端,隐藏了ssh的数据特征。
由于太出名了,最终在github上只留下一个空白页...
git clone https://github.com/shadowsocks/shadowsocks
cd shadowsocks
# 切换到 master
git checkout master
直接通过 sudo apt-get install shadowsocks 安装的版本比较老,不支持 aes-256-gcm 加密,推荐官网源码编译的方式安装。需要 checkout 到 master 版本选择最新的版本。
python3 setup.py build # 编译
sudo python3 setup.py install # 安装
3 配置信息设置shadowsocks客户端配置
sudo nano /etc/shadowsocks.json
修改远程服务器的配置信息
{
"server": "XXX.XXX.XXX.XXX",
"server_port":999,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"PASSWORD",
"timeout":600,
"method":"aes-256-gcm",
"fast_open": false,
"workers": 1
}
4 运行程序
# 启动
sudo /usr/local/bin/sslocal -c /etc/shadowsocks.json -d start
# 停止
sudo /usr/local/bin/sslocal -c /etc/shadowsocks.json -d stop
5 设置开机启动
sudo nano /etc/rc.local
在最后的exit之前添加
sudo /usr/local/bin/sslocal -c /etc/shadowsocks.json -d start
查看运行服务
sudo systemctl status rc-local.service
客户端安装完成。
6 配置服务器端(linux服务器端)
编译安装过程如上,服务器端运行程序
ssserver -p 999 -k password -m aes-256-gcm
# 后台运行
sudo ssserver -p 443 -k password -m aes-256-cfb --user nobody -d start
# 停止
sudo ssserver -d stop
设置 shadowsocks 服务器配置
sudo nano /etc/shadowsocks.json
修改服务器的配置信息
{
"server": "0.0.0.0",
"server_port":999,
"password":"PASSWORD",
"method":"aes-256-gcm"
}
7 配置成服务(linux服务器端)
sudo nano /etc/systemd/system/shadowsocks.service
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json
[Install]
WantedBy=multi-user.target
systemctl enable shadowsocks
systemctl start shadowsocks
//查看服务启动状态
systemctl status shadowsocks -l
服务器端部署成功。
前面说到,通过 Shadowsocks 的数据是socks5的,本身不支持http和https的协议,所以还需要安装插件,我们给chromimum安装SwitchyOmega插件。
1 下载插件
先到以下网址,下载最新版本的.crx格式文件
https://github.com/FelisCatus/SwitchyOmega/releases
现在的chromimum不支持拖入安装,所以需要更改.crx为.zip或者.rar解压到文件夹之后,在chromimum插件页面导入整个文件夹。
2 配置插件
进入SwitchyOmega,在proxy页面配置ss,协议选socks,代理服务器127.0.0.1,端口1080
可以配置auto switch, 默认直连,代理规则选刚配置完的proxy,规则列表格式选AutoProxy,网址写入
https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt
3 验证网页
访问一下 www.google.com,一切顺利的话,就能看见网页了。不过这个代理只在浏览器中有效,如果要在树莓派的shell 或是其他软件中使用代理,还需要安装Polipo。
1 安装软件
sudo apt-get install polipo
2 修改配置文件
sudo nano /etc/polipo/config
将下面的内容整个替换到文件中并保存:
logSyslog = false
logFile = /var/log/polipo/polipo.log
socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5
chunkHighMark = 50331648
objectHighMark = 16384
serverMaxSlots = 64
serverSlots = 16
serverSlots1 = 32
proxyAddress = "0.0.0.0"
proxyPort = 8123
3 重启Polipo
sudo /etc/init.d/polipo restart # 重启
sudo /etc/init.d/polipo start # 启动
sudo /etc/init.d/polipo stop # 停止
4 查看服务状态
ps -e|grep polipo
5 设置http_proxy环境变量
sudo nano /etc/profile
写入
export http_proxy="http://127.0.0.1:8123/"
export https_proxy="https://127.0.0.1:8123/"
6 验证代理是否正常工作
curl www.google.com
至此,我们梳理一下流程:
树莓派客户端通过Polipo代理本地的 8123 端口访问 web 服务
连接到本地shadowsocks的 1080 端口转换成 socks5 协议
连接到远端服务器 ss 的 999 端口
请求到外部网站的数据
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
Sipeed k210 RISC-V AI+lOT ESP32视觉听觉开发套装的开发环境搭建。
随着深度学习的飞速发展,已经创建了完整的神经网络体系结构主机,以解决各种各样的任务和问题。 尽管有无数的神经网络架构,但对于任何深度学习工程师来说,这里有11种必不可少的知识,它们分为四大类:标准网络,递归网络,卷积网络和自动编码器。
勘智K210采用RISC-V处理器架构,具备视听一体、自主IP核与可编程能力强三大特点,支持机器视觉与机器听觉多模态识别,可广泛应用于智能家居、智能园区、智能能耗和智能农业等场景。
在人工智能(AI)日益影响生活的今天,让孩子们从小接触AI并学习相关知识,不仅能够帮助他们理解现代科技的发展,也能提升他们的逻辑思维、创造力和问题解决能力。
《人工智能基础(高中版)》是面向高中学生的教材。讲授人工智能的发展历史、基本概念以及实际应用,使学生理解人工智能的基本原理,特别是数据、算法与应用之间的相互关系。