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
    +关注

    关注

    81

    文章

    5296

    浏览量

    203578
  • 树莓派
    +关注

    关注

    116

    文章

    1706

    浏览量

    105609
收藏 人收藏

    评论

    相关推荐

    使用树莓实现远程控制的技巧

    树莓是一款功能强大的微型计算机,其体积小巧、价格低廉,非常适合用于各种DIY项目。其中,远程控制是树莓应用中非常受欢迎的一个领域。通过
    的头像 发表于 11-11 11:37 435次阅读

    树莓与Arduino的区别是什么

    Pi): 树莓最初是作为教育工具设计的,旨在帮助学生学习计算机编程和电子工程。随着时间的推移,它已经发展成为一个多功能的微型计算机,可以用于各种项目,包括但不限于: 家庭媒体中心 游戏机 网络服务器 IoT(物联网)设备 教
    的头像 发表于 11-11 11:14 664次阅读

    树莓gpio有什么用,树莓gpio接口及编程方法

    /Output,通用输入/输出)是树莓提供的一组可编程的引脚,是树莓与外部世界进行交互的重要桥梁。通过GPIO,用户可以控制外部电路,读
    的头像 发表于 10-22 18:09 776次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国“Raspberry Pi 慈善基金会”开发的一款为学习计算机编程教育而设计的微型电脑。
    的头像 发表于 10-22 17:33 786次阅读

    树莓和单片机的优缺点是什么

    (Raspberry Pi) 优点: 强大的处理能力 :树莓配备了高性能的CPU和GPU,可以运行复杂的操作系统,如Linux和Windows 10 IoT Core。 丰富的扩展性 :通过GPIO(通用输入输出
    的头像 发表于 08-30 18:21 1618次阅读

    树莓搜不到wifi是人为修改的吗

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的信用卡大小的单板计算机,广泛应用于教育、DIY项目和物联网等领域。然而,有些用户在使用
    的头像 发表于 08-30 17:36 1149次阅读

    树莓4B的WiFi配置过程

    和需求。 一、准备工作 在开始配置WiFi之前,请确保你已经拥有了以下物品: 树莓4B 适用的电源适配器 装有Raspbian或其他兼容操作系统的SD卡 无线网络名称(SSID)和密
    的头像 发表于 08-30 17:10 1805次阅读

    树莓gui开发用什么ide

    ,非常适合树莓开发。 安装 :可以通过树莓的软件包管理器apt安装VS Code。 优点 :界面简洁,启动速度快,支持
    的头像 发表于 08-30 16:49 850次阅读

    树莓装ubuntu和raspbian哪个更好

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的单板计算机,广泛应用于教育、科研、物联网等领域。树莓
    的头像 发表于 08-30 15:41 1276次阅读

    【Raspberry Pi 5开发板试用】树莓5---家庭多媒体和控制中心

    一项革命性的网络功能。用户现在可以通过树莓的主机名结合.local后缀直接访问设备,这一改变极大地提升了用户体验。 简化访问流程 :mDNS服务意味着你不再需要记住或查询
    发表于 08-01 17:40

    树莓5,Raspberry Pi 5 评测

    型号的零售价分别为60美元和90美元,树莓4相同内存容量的型号多5美元,性价比看来非常高。 树莓5在外观上与
    发表于 06-19 14:51

    新手入门如何选择Arduino与树莓

    树莓2的主频速度和内存量两个主要方面都远高于Arduino。树莓可以被看作一台完全独立的计算机,可以直接运行Linux和Windows 10操作系统,支持
    发表于 04-28 14:56 618次阅读
    新手入门如何选择Arduino与<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    佰维存储microSD卡通过树莓AVL认证

    设备,存储卡性能和兼容性直接影响树莓的整体性能。 佰维存储TF200系列microSD卡通过树莓(Raspberry Pi 4B)AV
    的头像 发表于 01-23 17:19 423次阅读
    佰维存储microSD卡<b class='flag-5'>通过</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>AVL认证

    树莓主板如何连接电脑

    连接树莓派到电脑是一个非常有用的功能,它可以让我们在电脑上进行树莓的操作和管理。本文将详细介绍如何连接树莓主板到电脑。我会从准备工作开始
    的头像 发表于 01-07 15:40 1941次阅读

    基于树莓的环境监测系统

    作为环境监测系统的核心 树莓是一款低成本的单片机计算机,支持各种操作系统,如Linux等。它具有强大的处理能力和丰富的输入输出接口,使得它成为一个理想的环境监测系统的核心。树莓可以
    的头像 发表于 01-04 15:15 2534次阅读