主要是我想用它来监视我的网络,如果它具有用于以太网的输入和输出,那就太好了,但是它没有,因此我想知道通过具有以太网输入然后使用USB软件狗作为Wi-Fi路由器来监视网络是否非常有效。有人做过这样的事情吗?它会大大减慢互联网速度吗?
#1 楼
我一直在使用模型B作为具有流量整形的路由器,仅使用它附带的一个以太网端口。以下是有关如何进行以下操作的简要说明:启用IPv4转发,因此您的Pi可以通过转发接收到的所有流量来充当路由器
使用静态网络配置来配置您的Pi,这样它就不会受到下面建议的DHCP更改的影响。以下是我的
/etc/network/interfaces
的内容,供您参考:皮。这可能意味着更改现有ADSL路由器盒上的设置。在上面的示例中,我的Pi的IP地址是192.168.1.1
。被发送给它。您的Pi会依次将所有流量中继到您的普通路由器。您可能需要先断开连接,然后重新连接设备才能使这些更改生效。现在,您可以创建或安装工具来为您进行监视,例如vnstat。
流量整形
关于流量整形,这是另一本快速入门指南,将使用我自己的Wondershaper变体。
对此有用您需要知道您的互联网连接速度。通常,您可以从(原始)路由器的Web界面中找到它,但是如果失败,您可以使用Speedtest进行估算。
/>
sudo apt-get install iptables
将显示流量整形的当前状态。显然,期望的状态是没有整形,这意味着有一个有效的规则,称为wget https://raw.github.com/meermanr/adsl/master/wondershaper/wondershaper
:sudo ./wondershaper eth0
是模型B上的有线网络适配器的名称。 pfifo_fast
(系统上的接口名称)# pi@flux:/home/pi/projects/adsl/rrdlogger (master *)
# cat /etc/network/interfaces
auto lo
iface lo inet loopback
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.1
netemask 255.255.255.0
gateway 192.168.1.254 # IP of my ADSL router box
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
eth0
,其中:ifconfig
是我的互联网连接的下行链路速度(千比特)。所以3Mbit == 3000kbit sudo ./wondershaper eth0 3000 370
是我的互联网连接的上行速度,再次以kbit为单位。 br /> # pi@flux:/home/pi/projects/adsl/wondershaper (master *)
# sudo ./wondershaper eth0
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 1908 bytes 15 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
您的出站网络流量现在受到Pi的影响,您的入站流量正在被稍微限制以确保Pi而不是您原来的路由盒可以控制流量。
要禁用整形,只需运行
3000
即可。您可以先更改上行链路速率和下行链路速率,而无需先清除,但这不会造成伤害。塑造发生。事实证明,Linux内核足够聪明,可以确定您家庭网络上的客户端可以直接与ADSL框进行通信,而不是通过Pi反弹流量,并且可以在任何机会告诉他们。然后,客户端将其流量直接发送到您的ADSL盒,而Pi则没有机会对其进行调整。立即禁用它(下次重新启动时丢失):# pi@flux:/home/pi/projects/adsl/wondershaper (master *)
# sudo ./wondershaper eth0
qdisc htb 1: root refcnt 2 r2q 10 default 0 direct_packets_stat 0
Sent 1858 bytes 9 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 40: parent 1:40 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec
Sent 1858 bytes 9 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 10: parent 1:10 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 20: parent 1:20 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 30: parent 1:30 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc ingress ffff: parent ffff:fff1 ----------------
Sent 768 bytes 12 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
class htb 1:1 root rate 370000bit ceil 370000bit burst 10Kb cburst 1599b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 3459453 ctokens: 540531
class htb 1:10 parent 1:1 leaf 10: prio 1 rate 370000bit ceil 370000bit burst 1599b cburst 1599b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 540531 ctokens: 540531
class htb 1:20 parent 1:1 leaf 20: prio 2 rate 246000bit ceil 246000bit burst 1599b cburst 1599b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 813000 ctokens: 813000
class htb 1:30 parent 1:1 leaf 30: prio 3 rate 74000bit ceil 74000bit burst 1599b cburst 1599b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 2702687 ctokens: 2702687
class htb 1:40 root leaf 40: prio 0 rate 100000Kbit ceil 100000Kbit burst 512Kb cburst 1600b
Sent 3486 bytes 15 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 15 borrowed: 0 giants: 0
tokens: 654609 ctokens: 1250
更新以下内容以在引导期间进行设置:
370
echo 0 | sudo tee /proc/sys/net/ipv4/conf/*/send_redirects
(感谢https://unix.stackexchange.com/a/58081/22537的提示)
您可能也对我的个人笔记感兴趣Linux网关:http://www.robmeerman.co.uk/unix/gateway
评论
如何设置其他设备可以连接的wifi网络名称和密码?
– Fommil
2013年9月2日上午11:35
很好的指南。不过,我确实有一个关于您的不可思议的建议的问题:每个客户或整个客户的限制?
–鲍勃
2013年9月6日上午11:15
@fommil:上面的指南假设您仍在使用ISP提供给您的调制解调器/路由器/ WiFi接入点,但是您对其进行了配置,以便所有连接的客户端都被告知“将流量发送到Pi”。这通常是通过在ISP框的DHCP设置中输入Pi的(静态!)IP地址来完成的。通常在名为“网关”,“默认网关”或“默认路由”的字段中。
–RobM
13年10月13日在12:15
@Bob:您输入的数字是您的Internet链接的总数。然后,Wondershaper脚本会尝试根据需求将其公平分享给所有客户。因此,如果只有一个客户端正在使用Internet,则应该获得100%的互联网。如果另一个客户端启动,他们将在经过一段时间的“稳定时间”(约10秒)后分别使用50%,依此类推。
–RobM
13-10-13在12:17
完善。只是对@fommil的注释,我的所有路由器(而且我想还有更多相同)都没有提供设置DHCP分配的网关的简便方法。我最终关闭了路由器上的DHCP并在Pi上设置了DHCP服务器-这是一个相当简单的过程(如果需要,请搜索指南)。
–鲍勃
13-10-13在12:27
#2 楼
具有一点网络背景,首先想到的是将其用作Snort框,然后您不必担心只有一个接口。您将设置交换机/路由器以将所有流量转发到Pi,也将其传递到终端设备。这称为切换端口监视器,但您的设备可能不支持它。您可能需要管理型交换机才能执行此操作。然后,Snort将分析流量并进行报告。有关Snort的更多信息,请访问http://www.snort.org/而不是与数据内联。如果您通过这种方式遇到软件故障,流量仍然可以畅通无阻。使用两个接口描述的内容,您的程序将崩溃,网络将崩溃。网络。#3 楼
我已经使用Raspberry Pi进行路由,并且运行良好。如您所说,由于Raspberry Pi仅具有一个以太网端口,因此至少需要一个以上的网络接口。您可以添加连接到USB端口的另一个接口。我使用了GSM调制解调器和Wi-Fi棒。注意事项:
使用有源USB集线器。 Wi-Fi和GSM设备所需的功率超过Raspberry Pi的USB端口所能提供的功率。
如果您购买Wi-Fi设备,请购买具有良好Linux支持的设备。您需要一个可以在接入点模式下工作的设备,但并非所有设备都可以。在linuxwireless.org上进行检查。
这是我的博客文章,内容涉及路由,另一篇关于设置Wi-Fi接入点。本指南帮助我进行了路由设置。路由的东西并不是Raspberry Pi特有的。一般而言,在Linux上运行的任何东西都应该可行。详细信息取决于您使用的发行版。
#4 楼
我已经使用Raspberry Pi作为路由器大约一个月了,没有任何问题。我有一个实际的商用Wi-Fi接入端口,而不是家用Wi-Fi路由器,因此我使用了它。我也有一个从Wii“借来”的USB到以太网转换器。这将到达家庭局域网,Raspberry Pi的内置以太网也将到达WAN / Internet。获得Raspberry Pi的IPFire副本。您需要ARM版本,而没有串行控制台和最新的稳定版本。单击“ ARM”选项卡。下载“ armv5tel体系结构映像”。
启动它。连接HDMI电视和键盘。回答前几个问题。其余的配置可以通过家庭网络上的浏览器完成,因此之后就不需要电视或键盘了。这是正式说明:https://wiki.ipfire.org/hardware/arm/rpi/threeplus
最后一件事。如果要使用USB供电的Wi-Fi加密狗,请检查Raspberry Pi的电源。 700 mA USB电源可能足以为Raspberry Pi供电,但为Wi-Fi供电的余地并不多。使用有源USB集线器或使用1至2 A USB电源为Raspberry Pi供电。
祝你好运!
#5 楼
(此附录遵循了我以前的回答,该指导是有关如何将Pi配置为LAN的互联网网关的指南)。我不满意监视整体Internet使用情况,因此编写了一个工具来监视局域网中每个设备的互联网使用情况。这使我可以在控制台窗口中查看瞬时使用情况,并生成历史使用情况图表,以便可以一夜之间看到发生的事情。
Rhodes,一种用于实时监视和LAN设备的历史网络使用情况(基于MAC地址):https://github.com/meermanr/adsl/tree/master/rhodes
控制台输出示例:
193 kiB/s TX 17 kiB/s RX 0004edbf98c0 home.gateway (Billion Electric Co.)
0 kiB/s TX 0 kiB/s RX 2002af18dc15 Samsung Galaxy Tab 10.1, Vicky
0 kiB/s TX 0 kiB/s RX 34af2c01197b Nintendo 3DS:XL, Robert
0 kiB/s TX 0 kiB/s RX 34af2c3af204 Nintendo 3DS:XL, Vicky
0 kiB/s TX 0 kiB/s RX 34af2c9cfffd Nintendo WiiU
0 kiB/s TX 0 kiB/s RX 6045bd9c9dbc Xbox360 Slim
0 kiB/s TX 0 kiB/s RX 745e1c56c297 Pioneer SX-LX57
13 kiB/s TX 109 kiB/s RX 7831c1be0c34 Az Pro (Macbook Pro)
0 kiB/s TX 0 kiB/s RX 80ea96e6214e Roberts-AirPort-Time-Capsule
0 kiB/s TX 0 kiB/s RX 88308a770370 Samsung Galaxy S3, Vicky
189 kiB/s TX 211 kiB/s RX b827eb8fc0f3 Flux (Raspberry Pi)
2 kiB/s TX 39 kiB/s RX b8e8563acb34 Macbook Pro, Vicky
0 kiB/s TX 0 kiB/s RX d022be2c26ef Samsung Galaxy Note 3, Rob
0 kiB/s TX 0 kiB/s RX f82fa89368ea
第一列显示正在传输的设备数量,这通常意味着要上传到Internet。唯一的例外是ADSL路由器本身(上面示例中的home.gateway),它将从ISP接收的数据传输到请求它的设备(即下载)。当然,它还会将上传的内容传输到Internet,但是它使用其ADSL调制解调器来完成此操作,该调制解调器不在LAN上,因此对该工具不可见。 “ Flux”本身),它当然会在两个方向上传输它管理的所有数据。 (接收)要下载的号码。第三列是设备的MAC地址(不带通常的“:”或“-”分隔符)。第四列显示了设备的可读名称(如果已知)。通过运行
./index.py
生成图表,该图表旨在从lighttpd
之类的Web服务器调用(添加了index.py
中的index-file.names
配置设置)。您可以手动运行它,它将生成一些图像并将HTML打印到STDOUT。因此,您需要将其重定向到可以在浏览器中打开的文件:./index.py > index.html
然后在首选的浏览器中打开index.html。
安装要求(都可以与
/etc/lighttpd/lighttpd.conf
一起安装):apt-get install
-命令行工具用于捕获和描述网络流量的信息tcpdump
-循环数据库工具,记录和图表时间序列数据rrdtool
-循环数据库缓存守护程序,该服务可减少工作时的开销并发多个RRD文件。是Python编程语言的替代实现,它可以进行即时(JIT)编译,因此长时间运行的脚本将使用较少的CPU周期,但需要更多的内存。)用法说明:该脚本使用的'tcpdump'工具需要root特权才能访问原始网络流量。这是通过在脚本启动时启动
rrdcached
来实现的,因此可能会提示您输入密码。就个人而言,我已向pypy-upstream
添加了NOPASSWD规则,因此从未提示我。
评论
取决于您的互联网连接速度。我的是100Mb,所以我很确定它会降低速度;)我有30Mbps的互联网连接,而此时的流量为5Mbps,我的带有snort的嵌入式树莓派正在消耗〜50-95%的CPU和85%的内存。我的设置尚未微调,但我想向您展示一些真实的人物。
没有人没有坏宽度分配如何与使用树莓派的定制路由器一起工作?像,我有3Mbps的互联网连接速度,我有10个用户。您能解释一下如何划分吗? 3Mbps的速度。谢谢。希望你能理解。 :)
你好,孩子们。请不要再问其他问题。而是使用页面顶部的“提问”链接打开一个新问题。谢谢。
也许这个吗? Learn.adafruit.com/…