让树莓派进行wifi中继,最简单的方式是安装OpenWrt或者LEDE,然后通过Luci界面可以方便的进行操作,前提是你的无线网卡能够在OpenWrt下顺利驱动。
由于我需要中继5G信号,所以选购了一款支持双频的USB无线网卡,主控为RTL8812AU,Realtek实际上间接提供了Linux下网卡驱动的源码,在Github上可以搜索到很多,但是无奈这个驱动交叉编译完成后insmod到OpenWrt和LEDE并不能很好的驱动网卡,无奈之下只好使用Raspbian,通过相关配置来完成需求。

准备工作

  • 已经安装完Raspbian的树莓派,且能够通过串口、SSH或者显示器登陆
  • 网线
  • 电脑

这里我假设你已经在树莓派上安装好了系统,因为树莓派安装系统并不复杂,所以这里不过多赘述。

配置网桥

可能很多人会不解:添加网桥的作用是什么,通过树莓派的以太网口不是已经可以很好的通信了吗?
不知道你有没有想过一个问题,为什么你把网线插到路由器上随便一个lan口,都可以ping通192.168.1.1(假设你的网关是这个),那几个lan口也有IP吗?路由器的lan口到底有什么特殊之处?
学过计算机网络的童鞋应该知道,网桥是一个工作在二层的设备,目的是分离不同的碰撞域,设备之间直接通过mac地址通信。
在Linux系统中,假设我们有4个以太网卡,一个网桥,并且将这4个以太网卡设置为网桥的4个接口,同时将网卡设置为混杂模式,那么我们就得到了一个虚拟的网桥设备,如果再为网桥设置一个IP,那么这个网桥就是传说中的lan了。
实际上基于Linux系统的路由器正是这么做的,在OpenWrt的终端下使用ifconfig命令可以看到一个br-lan的接口,那就是虚拟网桥。

明白了原理,接下来只要知道如何创建网桥并分配接口,配置IP就行了,首先需要安装网桥配置工具:

sudo apt install bridge-utils

然后输入如下命令,即可完成配置,更详细的使用方法可以参考man手册。

brctl addbr br-lan
brctl addif br-lan eth0
ifconfig br-lan 192.168.1.1 up
ifconfig eth0 0.0.0.0 up

配置IP转发

一般的Linux发行版默认都不会开启ip_forward,因为正常的计算机都是作为终端,没有转发数据报的需求,因此需要手动打开。

第一种方式

echo 1 > /proc/sys/net/ipv4/ip_forward

第二种方式

vim /etc/sysctl.conf
+ net.ipv4.ip_forward = 1

第三种方式

sysctl net.ipv4.ip_forward = 1

配置iptables

如果我们中继的是运营商的wifi,那么可能会获得一个公网的IP,这种情况下想让内网的所有设备共享这一个公网IP,需要在wlan0网口启用nat。

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

安装DHCP/DNS服务器

作为一台准路由器,插在上面的设备最好能够自动获取IP,这里我选用的是dnsmasq,因为科学上网比较方便。

apt install dnsmasq
vim /etc/dnsmasq.conf
+ dhcp-range=192.168.1.50,192.168.1.150,255.255.255.0,12h

dnsmasq的功能很强大,这里我仅仅使用了基础的DNS/DHCP功能,你也可以根据自己的需求定制。

在树莓派上连接WiFi

通过图形界面连接wifi难度不大,这里主要说一下通过命令行连接wpa/wpa2加密的wifi。
在Linux发行版中,一般都会集成一套wireless-tools,但是在树莓派中,同时还提供了wpa_supplicant,它基于C/S模型,我们需要使用wpa_cli来和wpa_supplicant通信,完成相关设置。

wpa_cli

然后会出现下面这样的命令行界面

wpa_cli v2.4
Copyright (c) 2004-2015, Jouni Malinen <j@w1.fi> and contributorsThis software may be distributed under the terms of the BSD license.
See README for more details.Selected interface 'wlan0'Interactive mode>

既然是命令行,就可以敲命令,首先扫描一下wifi

scan

然后读取一下扫描的结果

scan_result

当看到你需要中继的wifi的SSID后,记下来,然后新建一个空网络

add_network

此时会显示新建的网络的编号,如果没看清,可以查看一下当前所有配置过的热点信息

list_network

下面我们需要配置网络了,假设新建的网络编号为0

set_network 0 ssid "OpenWrt"
set_network 0 psk "1234567890"

最后选择一个网络进行连接

select_network 0

如果正常的话,就可以连接成功,可以查看当前状态

status

后续

此时,将无线路由器的wan口与树莓派的lan口连接,并设置为自动获取IP,就可以上网了。
这样可以将中继的接收方与发送方通过网线连接,因此灵活性更高,前提是你能给树莓派找到一个不会被偷的地方(¬、¬)

【树莓派】在Raspbian下将wifi中继为有线网络相关推荐

  1. Qt 在Windows下设置Wifi连接和有线连接

    Wifi连接-自动获取IP 实现程序如下: // 设置网络为DHCP QProcess cmd; cmd.start(QString("netsh interface ip set addr ...

  2. ubuntu 22.04右上角找不到wifi图标,有线网络也失效

    起因是我将显示驱动由默认的nouveau换成了nvidia,然后重启后在右上角就看不到wifi图标了. 执行`sudo lshw -c network`显示: *-network UNCLAIMED ...

  3. Windows8 WiFi共享,让手机通过WiFi借用电脑有线网络上网

    实际上win8取消了无线临时网络(Ad-Hoc)的功能,但虚拟WiFi这个功能还是有的.虚拟WiFi需要网卡支持承载网络功能,要确认自己的无线网卡是否支持承载网络功能,首先以管理员身份运行命令提示符, ...

  4. 品味树莓派:Raspbian系统配置说明远程访问(无显示器使用)

    文章目录 目的 设置方式 通过菜单设置 配置工具 config.txt文件 其它设置方式 远程访问 将树莓派连接到网络 无显示器连接无线网 获取树莓派IP地址 通过SSH访问终端 无显示器开启SSH ...

  5. 树莓派 for Raspbian

    树莓派 for Raspbian 经过昨天的悲催折腾树莓派安装Ubuntu后,无奈选择放弃. Ubuntu真心不适合这种低水平硬件,即使这玩意比我的入门级VPS强多了.但是作为家庭娱乐中心,使用Ubu ...

  6. 树莓派命令行下登陆校园网

    树莓派命令行下登陆校园网 转载注明出处:http://blog.csdn.net/github_37603222/article/details/78968887 笔者是某理工大学的学生,我们学校的校 ...

  7. 树莓派配置IP地址和wifi方法

    作者:吴业亮 博客:wuyeliang.blog.csdn.net 1.配置静态IP地址 在/etc/dhcpcd.conf文件 最下面 最底部 添加下面代码 (最下面 最底部 回车一行) inter ...

  8. (非usb方式)树莓派4BCentos系统下使用SIM7600G-H进行GPS(直接插在树莓派上使用)

    (非usb方式)树莓派4BCentos系统下使用SIM7600G-H进行GPS(直接插在树莓派上使用) GPS接受天线必须放在能看到天空的地方 1.下载设置官方示例 1.将模块直接插入树莓派中:wge ...

  9. (非usb方式)树莓派4BCentos系统下使用SIM7600G-H进行4G上网(PPPD模式)(直接插在树莓派上使用)

    树莓派4BCentos系统下使用SIM7600G-H进行4G上网(PPPD模式)(直接插在树莓派上使用) 1.更改ttyAMA0端口变为UART端口 因为SIM7600官方给的教程是基于树莓派Rasp ...

  10. 树莓派Centos系统下通过EC20模块进行4G上网

    树莓派Centos系统下通过EC20模块进行4G上网 1.连接硬件 2.lsmod 3.通过ls /dev |grep ttyUSB查看当前系统下挂载的USB设备数 4.进一步通过dmesg | gr ...

最新文章

  1. ecos代码分析(2)
  2. DCMTK:OFStandard类中的ASCII /双转换方法的测试代码
  3. 【Java】命令行下的Java包结构编译与执行
  4. Python中的星号:用途及使用方法(下篇)
  5. 查看器_「图」Firefox 70将启用全新证书查看器 允许关闭画中画图标
  6. word 软换行与硬换行
  7. 开传奇需要什么技术要什么条件
  8. 分类算法 -- 决策树ID3算法
  9. xh2.54母头转换为杜邦线母头
  10. css3实现图片旋转木马效果
  11. 阿里、华为和微软等多家国内外厂商组团搞OpenJDK,Oracle为啥不参加?
  12. 根据列表id封装删除某条数据后刷新列表
  13. 谷俊丽分享之基于深度学习的大数据挖掘
  14. js中RGB与十六进制颜色转换
  15. 油猴(tampermonkey)脚本安装及使用教程
  16. 智捷教育关东升老师Java视频
  17. refrain from caffeine
  18. 时光倒流:业务支撑那些事(四)
  19. 没有任何绘画基础的人如何自学绘画?
  20. ROS之socket通信---TCP/UDP

热门文章

  1. 微信跳wap php_微信跳转wap外部浏览器接口如何实现
  2. 安国主控AU6989SN-GTC/AU6998SN [F500] - F/W FD04 U盘量产工具无法识别方法
  3. Ubuntu 9.04安装永中Office 2009
  4. 江苏省计算机三级理论考试,春江苏省计算机三级偏硬考试真题及答案
  5. 怎么查看计算机办公软件版本的,怎样查看电脑用的什么办公软件
  6. UE4实时渲染需要注意的点——RTR(Real Time Rendering)
  7. 安装32位oracle客户端下载,windows 7下安装32位的oracle客户端
  8. JQuery blockUI 的使用方法
  9. 发票分类代码地区代码列表
  10. WebService简单案例实例