Steins;Lab

  • 项目
  • 折腾
  • 笔记
  • 图册
  • 杂谈
  • 文章索引 - 博主自荐博文
  • 关于/留言
Steins;Lab
某团的自留研究所
  1. 首页
  2. 折腾
  3. 正文

[趴会儿project]No.005 用一种“新思路”打造树莓派软无线路由器

2017年5月20日 13468点热度 1人点赞 14条评论

由于某些原因,用了一种新思路打造 Raspberry Pi 无线路由器。先将树莓派和一个usb有线网卡配置成有线路由器,再使用现成的无线路由(Router)提供无线信号。如果你的Raspberry Pi自带的无线网卡经常无法工作,可以试试这个思路。

关键词: Raspberry Pi , 无线路由

本项目隶属于趴会儿Project项目组,详见[企划]趴会儿Project–宿舍床上趴到底&解放双腿计划

项目编号005,分类为信息。

thumb

Table of Contents

  • 0.引言
    • 0.1我为什么不用树莓派3自带的板载wifi?
    • 0.2 为什么要用另一个无线路由器作为wifiAP?不是多此一举吗?
  • 1 清单与连接
  • 2 配置
    • 2.1 编辑网络配置
    • 2.2 安装isc-dhcp-server
    • 2.3 开启转发、配置路由表
    • 2.4 排查问题
  • 3.完成

 

0.引言

之前做了这个:

基于树莓派的ipv6+OpenVPN校园网免流量无线热点/路由器 -- https://steinslab.io/archives/1103

https://steinslab.io/archives/1103

 

结合一直以来应用出现的一些问题说一说我为什么要这么做。

0.1我为什么不用树莓派3自带的板载wifi?

因为某些未知的原因,我的树莓派(Raspberry Pi3 B)wifi经常断掉,切无法重启,必须切断电源才行。

结合系统的log,我尝试搜索了解决方案。在中文社区中没有发现报告wifi突然无效的帖子。不过在GitHub上发现了一个issue。

 

issue

wlan freezes in raspberry pi 3

https://github.com/raspberrypi/linux/issues/1342

issue中,有大量的人报告存在wifi模块突然失灵,无法重启服务,只能使用切断电源重启。大家的方法我都试了,发现并没有用。

原wifi AP大概5个小时就会中断死掉。这给我带来了极大问题。这样的话我的设备并不能持续稳定的工作,文件分享、openvpn相关等都突然无法使用。

所以,我选择使用另一个小路由器作为wifi源。

 

 

 

0.2 为什么要用另一个无线路由器作为wifiAP?不是多此一举吗?

是的,很有可能,在你的所在环境或者需求中,用另外一个无线路由器(Router)既增加成本又麻烦。

但是对于下列情况,使用一个额外的路由器可能是很好的选择。

 

  1. 树莓派3b(Raspberry Pi 3B)自带的wifi模块工作不稳定时。
  2. 树莓派1,2等不自带wifi模块,但是由讨厌配置usb无线网卡驱动相关。
  3. 板载网卡和usb网卡信号过弱。
  4. 需要在树莓派上爬梯子、ipv6免流等等,单纯地分享网络(理解成360wifi模式),不想买openwrt等智能路由器的

等等。使用的无线路由器不必太过昂贵。比如我就是在tb弄到的20块钱的洋垃圾。这可能都要比tb买一块兼容的usb无线网卡都要便宜,而且不用考虑驱动和供电问题。

 

 

 

 


1 清单与连接

需要这些东西:

1.树莓派 * 1  

约 ¥200。

2.usb有线网卡 * 1

约 ¥25。

建议:usb2.0即可,usb3.0对于树莓派意义不大。我之前有这个,试了试能直接兼容。

3.网线若干

约 ¥20。

CAT6意义不大,买速度稍微合适的就行。

4.无线路由器 * 1

约 ¥20。

买洋垃圾,二手即可。

 

附:我的路由器是在tb上找的一个洋垃圾,应该是日本AU电信过来的家庭送的路由。自带ipv6穿透。挺好用,有机会说说搞得这个玩意。

另外对速度显示感兴趣的可以看下这个

https://steinslab.io/archives/1164

 

连接大概是这个拓扑图:

 

 

Internet------(自带网卡,eth0)Raspberry Pi --------(usb网卡,eth1)Wireless Router

 

我是在上一篇文章直接改造的。因此我还有一个wlan0,不提了。可以按照本文直接添加eth1,不冲突。

 


 

2 配置

我是在上一篇文章,有无线AP情况下追加配置的。直接按照本章全新配置也可以。

基于树莓派的ipv6+OpenVPN校园网免流量无线热点/路由器 -- https://steinslab.io/archives/1103

 

2.1 编辑网络配置

sudo nano /etc/network/interfaces

插入的usb有限网卡是eth1,进行静态地址配置。

allow-hotplug eth1
auto eth1
iface eth1 inet static
 address 192.168.9.1
 netmask 255.255.255.0

保存重启,或使用

sudo ifconfig eth1 192.168.9.1 netmask 255.255.255.0

使eth1的静态地址立即生效。

这步请一定要做,重启或者使其立即生效,否则配置dhcp时将报错。

 

2.2 安装isc-dhcp-server

需要安装dhcp服务以分配地址

安装isc-dhcp-server

sudo apt-get install isc-dhcp-server

配置文件

sudo nano /etc/dhcp/dhcpd.conf

注释掉所有所有文字,输入(或者追加)

subnet 192.168.9.0 netmask 255.255.255.0 {
        range 192.168.9.10 192.168.9.25;
        option routers 192.168.9.1;
        option broadcast-address 192.168.9.255;
        option domain-name-servers 114.114.114.114,8.8.8.8;
        default-lease-time 600;
        max-lease-time 7200;
}

注意,网段如 192.168.9.X,应和上端配置的eth1静态地址一致。

以上内容建议手打并检查拼写和格式

开启服务

sudo service isc-dhcp-server start

 

一般情况下,之前的安装的服务,不需要在配置,已经可以开机自启动了。

2.3 开启转发、配置路由表

目的是让路由器以nat形式接入树莓派网络。

开启内核转发

sudo nano /etc/sysctl.conf

修改

net.ipv4.ip_forward=1

保存,用下列命令使命令生效

sudo sysctl -p

返回 net.ipv4.ip_forward=1

配置路由表

sudo iptables -A FORWARD -i eth1 -j ACCEPT
sudo iptables -A FORWARD -o eth1 -j ACCEPT
sudo iptables -t nat -A POSTROUTING ! -o eth1 -j MASQUERADE

此路由表的配置参考了

树莓派笔记(1) —— 无线路由器 - http://brieflyx.me/2015/raspberrypi/rpinote1-wifi/

以上规则配置openvpn后仍然有效。

可以加在/etc/rc.local 中,开机自动添加路由规则

!注意!:请一定在exit 0之前添加

sudo nano /etc/rc.local


#在exit 0之前加入
sudo iptables -A FORWARD -i eth1 -j ACCEPT
sudo iptables -A FORWARD -o eth1 -j ACCEPT
sudo iptables -t nat -A POSTROUTING ! -o eth1 -j MASQUERADE

现在,用网线连接usb网卡和无线路由器的wan口,设置路由器为动态ip。

 

至此,无线路由器作为一个子设备连接到树莓派上。无线设备作为子设备连接在无线路由器上。

 

2.4 排查问题

遇到任何问题,包括之前的服务配置,都可以使用

sudo nano /var/log/syslog

调到最后一行查看,分析原因

 

 

 

 


3.完成

总结一下,思路就是先将树莓派配置成有线路由器,然后再将无线路由器接入。避免使用不稳定的无线网络。

此时,树莓派上的smb服务等,在路由器的子网络中仍然可以直接使用。

我在ovpn绕了地球一圈之后,无线网络大概还有20Mbps的速度,要是本地会更快了。就树莓派这个吞吐能力,我觉得这个速度可以接受。

 

 

 

相关

标签: Raspberry Pi 无线路由器 校园网 趴会儿Project
最后更新:2017年5月25日

SPtuan

SPtuan 是一名普通的工程师,最大的愿望是度过平静的时光。 当前从事网络/CDN/对象存储研发。

点赞
< 上一篇
下一篇 >
0 0 votes
文章评分
Subscribe
Login
提醒
guest

guest

14 评论
最新
最旧 得票最多
Inline Feedbacks
View all comments
trackback
博客文章索引 - Steins;Lab
3 年 之前

[…] 2017-05-20 No.005 用一种“新思路”打造树莓派软无线路由器 […]

0
回复
eee
eee
6 年 之前

大佬好,我在按照这个方法配置完成后,发现这个树莓派本身无法连接互联网了,没办法安装别的软件,OPEN是挂着的,宿舍里别的设备连接路由器可以上网;请问应该怎么解决

0
回复
SPtuan
SPtuan
作者
Reply to  eee
6 年 之前

@eee 你试试本身能ping通互联网ipv4地址吗?还是只有ping域名的时候不同?我怀疑是DNS设置问题。欢迎提供故障信息跟进

0
回复
trackback
自建NAS,树莓派可还行? - Raspberry Pi 3B+ 开箱与实测对比 - Steins;Lab
6 年 之前

[…] [趴会儿project]No.005 用一种“新思路”打造树莓派软无线路由器 […]

0
回复
trackback
基于openvpn的校园网ipv6免流量方案 |ipv6|校园网|免流量 - Steins;Lab
7 年 之前

[…] [趴会儿project]No.005 用一种“新思路”打造树莓派软无线路由器 […]

0
回复
nl
nl
7 年 之前

想问下,你树莓pi是拨号就有ipv6是么,需要特别的配置么。
我openwrt从16年就连不上ipv6了

0
回复
SPtuan
SPtuan
作者
Reply to  nl
7 年 之前

@nl 我插上就有ipv6,什么都没动

0
回复
LiarOnce
LiarOnce
7 年 之前

我有个树莓派2,现在都吃灰了,都不知道拿来干嘛 :lol:

0
回复
SPtuan
SPtuan
作者
Reply to  LiarOnce
7 年 之前

@LiarOnce 不开发的话,当梯子路由器,离线下载玩具NAS都挺好,低功耗嘛。我前一段时间还拿它开原版minecraft服来着,虽然单核性能吃瘪

0
回复
LiarOnce
LiarOnce
Reply to  SPtuan
7 年 之前

@SPtuan 我试过拿它当VPS开博客,后来才发现家里的宽带不可能每天24小时开着,于是弃坑。 :lol:

0
回复
printempw
printempw
7 年 之前

不错诶,正好毕业了,我也想买个 Raspberry Pi 和 Arduino 回来玩 XD

看到你也在用粗粮家的台灯,我打算弄点有趣的东西来操控它(不想远程关个灯还要用那个米家 APP,也没有 HomeKit,很吃瘪):idea:

0
回复
SPtuan
SPtuan
作者
Reply to  printempw
7 年 之前

@printempw 这两个东西就是代码和现实世界入门级的纽带。其他行业用它们接触代码实现功能,写代码的用它们联系现实世界,很伟大的项目。
小米这个台灯,是我看够了美帝良心想的垃圾TN屏,眼睛快瞎时候,冲动消费的。觉得自己应该买个好台灯好好对待自己的眼睛,然而远控一次都没用过,他那个APP我也没动过。

0
回复
SPtuan
SPtuan
Reply to  printempw
7 年 之前

@printempw :evil: 对啦,我最近调查了一下这个米家台灯,发现是由yeelink提供的。yeelink还提供了一份详尽的控制使用文档,可以在各个平台上用。在这个node.js都能用来硬件编程的时代,相信你一定能很快掌握啦 :redface:

0
回复
printempw
printempw
Reply to  SPtuan
7 年 之前

@SPtuan 我后来也发现啦 :razz: 那个 Yeelight 有个「极客模式」,开启后就可以通过命令操控了

0
回复

SPtuan

SPtuan 是一名普通的工程师,最大的愿望是度过平静的时光。
当前从事网络/CDN/对象存储研发。

  • 0.引言
    • 0.1我为什么不用树莓派3自带的板载wifi?
    • 0.2 为什么要用另一个无线路由器作为wifiAP?不是多此一举吗?
  • 1 清单与连接
  • 2 配置
    • 2.1 编辑网络配置
    • 2.2 安装isc-dhcp-server
    • 2.3 开启转发、配置路由表
    • 2.4 排查问题
  • 3.完成
分类
  • Uncategorized
  • 图册
  • 学习笔记
  • 库
  • 折腾
  • 杂谈
  • 瞎**扯
  • 碎碎念
  • 项目跟踪
最近评论
SPtuan 发布于 2 个月前(03月22日) 书签: 关于 disk-io 的经验, 异步/同步 io 系统设计的经验 https://you...
SPtuan 发布于 2 个月前(03月21日) 如果公司不是对外提供这些服务的,这种岗位都是 infra 部门,平均年龄确实会大一些。尤其构建和维护...
HUA 发布于 2 个月前(03月19日) 想请问博主对于国内CDN行业,以及CDN调度、DNS托管类服务相关岗位的看法,以及是否还推荐校招新人...
SPtuan 发布于 3 个月前(02月03日) 2025 注: 长辈对于只身去深圳的担忧,更多地来自于 80s/90s 治安情况。近几年了解了严打...
SPtuan 发布于 4 个月前(01月16日) 哈哈,100就100吧,新年快乐!
热门主题 & 页面
  • 全球互联网拓扑探索 (1) : 互联网是如何工作的
  • 使用 WSL2 + X11 转发 - 在 Windows10 中打造 GNU/Linux 学习生产环境
  • 动手做!基于nRF24L01P的Arduino无线通信
  • [实验]VPS搭建ss服务中转实现纯ipv6访问网络-校园网免流量
  • PYNQ上手体验:以目标检测应用为例
归档
  • 2025 年 5 月
  • 2025 年 3 月
  • 2024 年 12 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 5 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 4 月
  • 2023 年 1 月
  • 2022 年 12 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2022 年 2 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 2 月
  • 2021 年 1 月
  • 2020 年 9 月
  • 2020 年 4 月
  • 2020 年 3 月
  • 2020 年 1 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 3 月
  • 2019 年 2 月
  • 2018 年 12 月
  • 2018 年 10 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 5 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 11 月
  • 2017 年 9 月
  • 2017 年 7 月
  • 2017 年 6 月
  • 2017 年 5 月
  • 2017 年 4 月
  • 2017 年 3 月
  • 2017 年 2 月
  • 2017 年 1 月
  • 2016 年 12 月
  • 2016 年 11 月
  • 2016 年 10 月
  • 2016 年 9 月
  • 2016 年 8 月
  • 2016 年 7 月
  • 2016 年 6 月
  • 2016 年 5 月
  • 2016 年 4 月
  • 2016 年 3 月
  • 2016 年 2 月
  • 2016 年 1 月
  • 2015 年 12 月
  • 2015 年 11 月
  • 2015 年 9 月

友情链接:

Blessing Studio hahaschool 绘枫和畅 魔法少女Fandy monsterx Clarke的博客 Luminous’ Home Shintaku's Blog
蓝黑的博客 haruhi.club Yida的博客 Bo2SS 涛叔 TangBao 同和君Hocassian

Steins;Lab 团子神社 zdfmc.net

steinslab.io built with ❤. Thanks for all 2015-2025.

Theme Kratos Made By Seaton Jiang

wpDiscuz