0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何制作仅通过树莓派传输猫图片的WiFi网络

454398 来源:网络整理 作者:网络整理 2019-12-03 17:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这是一个常见的用例场景:您想广播一个公共WiFi网络供任何人使用,但是您有严格的要求,只允许使用猫图像。好消息:您的Raspberry Pi是完美的 transmoggification 机器。感兴趣吗?继续阅读。

您需要什么

Raspberry Pi模型B (Raspberry Pi的新功能?这是初学者需要了解的一切,都以视频形式)

4GB或更大容量的SD

以太网电缆

兼容的WiFi适配器

MicroUSB电源线和适配器

理论

该项目的开始与几周前我们建造的洋葱路由器相同。首先,我们将Raspberry Pi变成标准的WiFi网络,然后在中间放置一个代理。代理将通过Perlscript过滤帖子,它将用TheCatAPI.com的cat GIF替换每个HTTP请求上的图像。看着困惑的用户既极度沮丧,又异常镇定。这是BBC,事后修改。

如何制作仅通过树莓派传输猫图片的WiFi网络

建立WiFi网络

由于本教程的这一部分完全相同作为DIY OnionRouter,请按照此处的说明进行操作,直到安装Tor 。

我们唯一需要做的小更改就是广播一个开放的WiFi网络而不是一个安全的WiFi网络。使用WPA。完成此处的设置后,请更改/etc/hostapd/hostapd.conf ,并粘贴以下配置。重新开始应用更改。

interface=wlan0

driver=nl80211

ssid=Kittens

hw_mode=g

channel=6

auth_algs=1

wmm_enabled=0

您现在应该在Raspberry Pi上广播一个可以公开访问的无线网络。本指南的其余部分将重点放在使有趣的事情发生上。

如果事情不起作用,请键入:

ifconfig -a

,然后查找wlan0上的IP地址。如果重新启动时未分配,请尝试以下操作:

sudo nano /etc/default/ifplugd

更改以下行:

INTERFACES=“auto”

HOTPLUG_INTERFACES=“all”

至:

INTERFACES=“eth0”

HOTPLUG_INTERFACES=“eth0”

重新启动,并确认您能够连接到WiFi网络并访问Internet。

Squid Proxy and IPTables

从安装先决条件开始,然后创建一个新的路由表。稍后我们将从Raspberry Pi提供图像,因此我们还将需要Apache Web服务器。

sudo apt-get install squid3 bridge-utils apache perl

nano iptables.sh

粘贴以下内容:

iptables -t nat -A POSTROUTING -j MASQUERADE

iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.42.1:3128

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

保存,然后退出。

chmod +x iptables.sh

sudo cp iptables.sh /etc/init.d/

sudo update-rc.d iptables.sh start 99

忽略警告,仅表示我们还没有遵守某些Debian规则(但没有破坏任何东西)。最后,我们仍然在引导时使用旧的 iptables 规则,因此从/etc/network/interfaces

up iptables-restore 《 /etc/iptables.ipv4.nat

(删除或注释掉)

然后重新启动。接下来,我们将删除默认的Squid代理配置,然后重新制作一个。

sudo rm /etc/squid3/squid.conf

sudo nano /etc/squid3/squid.conf

将以下内容粘贴到空白文件中:

cache_mgr pi

cachemgr_passwd pi all

redirect_program /home/pi/cats.pl

acl manager proto cache_object

acl localhost src 127.0.0.1/32 ::1

acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl localnet src 192.168.42.0/24 # RFC1918 possible internal network

acl SSL_ports port 443

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

http_access allow manager localhost

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localnet

http_access allow localhost

http_access deny all

http_port 3128 transparent

umask 022

cache_mem 128 MB

cache_dir ufs /var/spool/squid3 1500 16 256

coredump_dir /var/spool/squid3

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern -i (/cgi-bin/|?) 0 0% 0

refresh_pattern 。 0 20% 4320

保存并退出。使用以下命令初始化缓存目录,然后编辑用于分类所有图像的脚本:

sudo squid3 -z

nano /home/pi/cats.pl

粘贴:

#!/usr/bin/perl

$|=1;

$count = 0;

$pid = $$;

open (DEBUG, ‘》》/tmp/cats.log’);

autoflush DEBUG 1;

print DEBUG “######################################################################## ”;

while (《》) {

chomp $_;

if (m/nosquid/) {

print DEBUG “Input NOSQUID: $url ”;

print “$_ ”;

print DEBUG “Output NOSQUID: $_ ”;

}

elsif ($_ =~ /(.*.jpg)/i) {

$url = $1;

print DEBUG “Input: $url ”;

system(“/usr/bin/wget”, “-q”, “-O”,“/var/www/images/$pid-$count.gif”, “http://thecatapi.com/api/images/get?format=src&type=gif&nosquid”);

chmod 0777,“/var/www/images/$pid-$count.gif”;

print “http://127.0.0.1/images/$pid-$count.gif ”;

}

elsif ($_ =~ /(.*.gif)/i) {

$url = $1;

print DEBUG “Input: $url ”;

system(“/usr/bin/wget”, “-q”, “-O”,“/var/www/images/$pid-$count.gif”, “http://thecatapi.com/api/images/get?format=src&type=gif&nosquid”);

chmod 0777,“/var/www/images/$pid-$count.gif”;

print “http://127.0.0.1/images/$pid-$count.gif ”;

}

elsif ($_ =~ /(.*.png)/i) {

$url = $1;

print DEBUG “Input: $url ”;

system(“/usr/bin/wget”, “-q”, “-O”,“/var/www/images/$pid-$count.gif”, “http://thecatapi.com/api/images/get?format=src&type=gif&nosquid”);

chmod 0777,“/var/www/images/$pid-$count.gif”;

print “http://127.0.0.1/images/$pid-$count.gif ”;

}

elsif ($_ =~ /(.*.jpeg)/i) {

$url = $1;

print DEBUG “Input: $url ”;

system(“/usr/bin/wget”, “-q”, “-O”,“/var/www/images/$pid-$count.gif”, “http://thecatapi.com/api/images/get?format=src&type=gif&nosquid”);

chmod 0777,“/var/www/images/$pid-$count.gif”;

print “http://127.0.0.1/images/$pid-$count.gif ”;

}

else {

print “$_ ”;

}

$count++;

}

使脚本可执行,我们还希望为其创建一些目录以供使用。

sudo chmod +x cats.pl

sudo mkdir /var/www/images

sudo chmod 777 /var/www/images

sudo usermod -a -G www-data proxy

sudo chown www-data:www-data /var/www

sudo chown www-data:www-data /var/www/images

touch /tmp/cats.log

chmod 777 /tmp/cats.log

您可以随时使用以下内容尾注日志:

tail -f /tmp/cats.log

尝试登录Pinterest,然后突然发现所有这些愚蠢的DIY盆栽植物项目和男士时装精选会更加吸引人。

如果您愿意倒置图片(原始脚本为Ex-Parrot,我只修改为处理一些权限错误),创建 upsidedown.pl 并粘贴以下内容。

#!/usr/bin/perl

$|=1;

$count = 0;

$pid = $$;

while (《》) {

chomp $_;

if ($_ =~ /(.*.jpg)/i) {

$url = $1;

system(“/usr/bin/wget”, “-q”, “-O”,“/var/www/images/$pid-$count.jpg”, “$url”);

system(“/usr/bin/mogrify”, “-flip”,“/var/www/images/$pid-$count.jpg”);

chmod 0777,“/var/www/images/$pid-$count.jpg”;

print “http://127.0.0.1/images/$pid-$count.jpg ”;

}

elsif ($_ =~ /(.*.gif)/i) {

$url = $1;

system(“/usr/bin/wget”, “-q”, “-O”,“/var/www/images/$pid-$count.gif”, “$url”);

system(“/usr/bin/mogrify”, “-flip”,“/var/www/images/$pid-$count.gif”);

chmod 0777,“/var/www/images/$pid-$count.gif”;

print “http://127.0.0.1/images/$pid-$count.gif ”;

}

elsif ($_ =~ /(.*.png)/i) {

$url = $1;

system(“/usr/bin/wget”, “-q”, “-O”,“/var/www/images/$pid-$count.png”, “$url”);

system(“/usr/bin/mogrify”, “-flip”,“/var/www/images/$pid-$count.png”);

chmod 0777,“/var/www/images/$pid-$count.png”;

print “http://127.0.0.1/images/$pid-$count.png ”;

}

elsif ($_ =~ /(.*.jpeg)/i) {

$url = $1;

system(“/usr/bin/wget”, “-q”, “-O”,“/var/www/images/$pid-$count.jpeg”, “$url”);

system(“/usr/bin/mogrify”, “-flip”,“/var/www/images/$pid-$count.jpeg”);

chmod 0777,“/var/www/images/$pid-$count.jpeg”;

print “http://127.0.0.1/images/$pid-$count.jpeg ”;

}

else {

print “$_ ”;;

}

$count++;

}

按照上面的其他步骤,更改文件名,使脚本可执行,然后修改Squid配置,使其指向 upsidedown.pl 而不是 cats.pl 。最后,您需要使用以下命令重新启动Squid:

sudo service squid3 restart

无论哪种情况,结果都很棒。如果您对这些脚本进行了其他修改或改进,使其具有其他功能,请在评论中让我输入,并在您的脚本中添加一个Pastebin链接。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WIFI
    +关注

    关注

    82

    文章

    5468

    浏览量

    212012
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109711
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于树莓(RaspberryPi)构建高效实时监控系统

    由于树莓体积小、可开发性强等特性,常被用于视频监控场景中,结合 ZeroNews,可实现用户在任意位置都能实时安全得访问视频监控系统。 先决条件:树莓正常连接
    的头像 发表于 09-22 15:14 859次阅读
    基于<b class='flag-5'>树莓</b><b class='flag-5'>派</b>(RaspberryPi)构建高效实时监控系统

    如何使用树莓与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓和OpenCV的连载专题。使用树莓与OpenCV实现姿态估计和面部特征点追踪使用树莓
    的头像 发表于 08-14 17:45 962次阅读
    如何使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>与OpenCV实现面部和运动追踪的云台系统?

    如何搭建高效的树莓NAS?完整安装与配置指南!

    树莓网络附属存储网络附属存储(NAS)是一种专用设备或系统,它为网络内的数据存储和管理提供了一个集中位置。与传统通常直接连接到单台计算机的
    的头像 发表于 08-13 17:45 1367次阅读
    如何搭建高效的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>NAS?完整安装与配置指南!

    树莓操作系统:版本、特性及设置完整指南!

    树莓操作系统是什么?树莓操作系统是由树莓基金会专为树莓
    的头像 发表于 07-28 18:26 829次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>操作系统:版本、特性及设置完整指南!

    树莓6 传闻:发布日期与规格!

    每当我想再为我的收藏增添一款树莓时,总会在是立即购买还是等待硬件更强大的下一代之间犹豫不决。但新树莓型号的发布往往容易被错过,尤其是在你的信息流被病毒式传播的猫咪视频占据时。因此,
    的头像 发表于 07-11 16:21 1352次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>6 传闻:发布日期与规格!

    树莓WiFi设置终极指南:分步方法与故障排除技巧!

    树莓主板的一大关键特性是其能够连接无线网络,这使得无需物理网线即可实现远程访问、数据传输和互联网连接,从而提升了树莓
    的头像 发表于 07-10 16:18 1823次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>WiFi</b>设置终极指南:分步方法与故障排除技巧!

    树莓小技巧:无需键盘或显示器,如何通过WiFi设置树莓

    树莓是一款小巧便携的USB供电计算机,可以隐藏起来用于小型项目,如网络服务器或家庭自动化。通常,设置树莓需要键盘和显示器来编辑和查看
    的头像 发表于 06-26 15:41 1044次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>小技巧:无需键盘或显示器,如何<b class='flag-5'>通过</b><b class='flag-5'>WiFi</b>设置<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    树莓分类器:用树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是树莓
    的头像 发表于 06-13 16:39 994次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    树莓“揪出”家里的耗电怪兽!

    在本应用中,我们将使用树莓设置一个CE电流监测器,并通过网页界面显示电路的电流读数。本项目使用的组件硬件组件树莓2ModelBx112通
    的头像 发表于 06-04 15:33 1145次阅读
    用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>“揪出”家里的耗电怪兽!

    树莓“吉尼斯世界记录”:将树莓的性能发挥到极致的项目!

    树莓是一款功能强大、体积小巧且高度可定制的设备,多年来,我们见证了它被应用于众多领域。无论是将其装入3D打印的经典游戏机外壳,还是简单地将它隐藏起来作为家庭文件服务器,我们都报道过在社区里用树莓
    的头像 发表于 05-22 16:53 1200次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“吉尼斯世界记录”:将<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的性能发挥到极致的项目!

    搭建树莓网络监控系统:顶级工具与技术终极指南!

    树莓网络监控系统是一种经济高效且功能多样的解决方案,可用于监控网络性能、流量及整体运行状况。借助树莓
    的头像 发表于 05-14 15:32 1215次阅读
    搭建<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>网络</b>监控系统:顶级工具与技术终极指南!

    树莓 Zero 打造的智能漫游车!

    使用PXFMini和树莓Zero打造您自己的自主漫游车。本项目所用组件硬件组件ErleRoboticsPXFmini×1树莓Zero×1树莓
    的头像 发表于 05-13 16:39 870次阅读
    用 <b class='flag-5'>树莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游车!

    解锁树莓集群:一步步打造你的超级计算阵列!

    树莓集群简介树莓集群是由多台联网的树莓计算机组成的网络
    的头像 发表于 04-25 16:17 1940次阅读
    解锁<b class='flag-5'>树莓</b><b class='flag-5'>派</b>集群:一步步打造你的超级计算阵列!

    超酷的树莓智能镜项目,快来了解!

    ,这些树莓智能镜项目都非常值得一看。制作一个能够显示实时天气、新闻、旅行信息等内容的魔镜是一个热门项目。学习如何使用RaspberryPi单板计算机以极低的成本制作
    的头像 发表于 03-25 09:33 1261次阅读
    超酷的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>智能镜项目,快来了解!

    关于DLPDLCR230NPEVM与树莓4B的几个问题求解

    有关于DLPDLCR230NPEVM与树莓4B的以下几个问题,望大佬解答: 1、如何用DLP投影出树莓4B的桌面,按照官方提供的步骤一直有问题 2、如何利用DLP显示自定义的
    发表于 02-18 07:06