本文是树莓派爱好者投稿文章,授权树莓派爱好者基地发放,请勿转载!否则承担相应法律责任!

本文作者 qq如下, 如果对作者有兴趣或者对本文有什么异议或者疑问可以直接与作者联系沟通,也可以加群和作者讨论。

也欢迎大家前来投稿!!!一起建设树莓派生态,一起玩转树莓派!!!投稿邮箱如下:

教程开始

一、给zero w写好一个官方系统,然后连接上无线网络,具体联网方式可以参考树莓派爱好者基地新手教程中的连接wifi教程

二、修改配置文件

sudo nano /boot/config.txt

在文件最后加入

dtoverlay=dwc2

然后再修改/boot/cmdline.txt文件,找到 rootwait,在后面插入

modules-load=dwc2,g_ether

插入后保存退出
重启后,即可连上USB RNDIS网络

三、联网成功后,开始更新安装软件

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install dnsmasq isc-dhcp-common

四、修改配置文件

修改 /etc/dhcpcd.conf文件

sudo nano /etc/dhcpcd.conf

在文件末尾添加这两句

interface usb0
static ip_address=192.168.253.1/24

然后再修改 /etc/network/interfaces文件

sudo nano /etc/network/interfaces

添加一下段落

auto usb0
iface usb0 inet static
address 192.168.253.1
netmask 255.255.255.0

五、修改完毕之后,重启dhcp服务

sudo service dhcpcd restart

六、修改网段配置文件

sudo nano /etc/udhcpd.conf

添加以下段落

nterface=usb0
bind-interfaces
server=180.76.76.76
server=114.114.114.114
server=223.5.5.5
domain-needed
bogus-priv
dhcp-range=192.168.253.2,192.168.253.254,1h

然后再修改文件dhcp规则文件之一的/etc/sysctl.conf

sudo nano /etc/sysctl.conf

在末尾添加以下内容

#Uncomment the next line toenable packet forwarding for IPv4
net.ipv4.ip_forward=1

七、添加完毕之后,设置转发规则

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -APOSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i usb0 -o wlan0 -j ACCEPT
sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"

八、再往/etc/network/interfaces末尾添加一下内容。

sudo nano /etc/network/interfaces

添加以下语句

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

然后保存退出
再编辑一下文件

sudo nano /etc/network/if-pre-up.d/iptables

往里面添加以下段落

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.ipv4.nat

保存退出之后,设置一下权限

sudo chmod 755 /etc/network/if-pre-up.d/iptables

我们需要新建空文件/lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat,

sudo vi /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat

然后输入 :wq 回车退出
再设置一下转发

sudo iptables-restore < /etc/iptables.ipv4.nat

九、重启一下dnsmasq服务

sudo service dnsmasq start

十、然后编辑域名服务器(DNS)文件

sudo nano resolv.conf

写入以下内容

#Generated by resolvconf
domain lan
nameserver 127.0.0.1
nameserver (路由器或者网关的IP)
nameserver 180.76.76.7

十一、然后再编写可执行的sh文件

sudo nano network .sh

文件如下

sudo cp /home/pi/resolv.conf /etc/resolv.conf
sudo /etc/init.d/networking restart
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -APOSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i usb0 -o wlan0 -j ACCEPT

然后赋予可执行权限

sudo chmod 0777 / home/pi/network.sh

十二、然后向开机运行脚本rc.local添加语句

sudo nano /etc/rc.local

在exit0之前添加一下语句:

sudo ifup wlan0
sudo ifconfig wlan0 up
sudo wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf  -B
sudo ifconfig wlan0 192.168.150.163(无线网卡参与的IP地址)
sleep 120
sudo cp /home/pi/resolv.conf /etc/resolv.conf
sudo /etc/init.d/networking restart
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -APOSTROUTING -o wlan0 -j MASQUERADEsudo iptables -A FORWARD -i wlan0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPTsudo iptables -A FORWARD -i usb0 -o wlan0 -j ACCEPT
sleep 120
sudo /home/pi/network.sh
sudo /home/pi/network.sh
sudo /home/pi/network.sh
sudo /home/pi/network.sh
sudo /home/pi/network.sh
sudo /home/pi/network.sh
exit 0

十三、然后重启树莓派。

这样在重启的四分钟之后,树莓派ZeroW就会作为RNDIS设备给电脑转发无线网络,若不能正确联网,就用ssh登录192.168.253.1,多次运行network.sh,就能正确连接网络。

若要连接其他wifi,需要修改的地方有三处
/etc/wpa_supplicant/wpa_supplicant.conf上面,wifi的ESSID和密码
/home/pi/resolv.conf 上面nameserver 192.168.150.1(路由器或者网关的IP)
/etc/rc.local 上面sudo ifconfig wlan0 192.168.150.163(无线网卡参与的IP地址)

首先这玩意很不实用,不建议各位拿来实际使用,因为树莓派启动转发服务需要两分钟时间,所以在rc.local的语句中,有sleep 120(延时120秒启动后面服务项的语句),而且每次重启之后,那些转发设置、DNS服务器,会全部重置,需要额外开机启动设置,所以特别麻烦,只适合有嵌入式无线设备开发的玩家,算是给各位一个思路。要是openwrt的gadget_ether能用的话,实用性会比现在的raspbian强太多,不过就是软件层面分配IP地址有问题,请各路大神指教

用树莓派 ZeroW 做一个无线网卡相关推荐

  1. 用树莓派PICO做一个桌面时钟超详细教程!

    用树莓派PICO做一个可显示时间和温湿度的桌面时钟 一.概述 二.材料准备 1.树莓派PICO 2.DHT11温湿度传感器 3.DS1302时钟模块(选用) 4.SSD1306屏幕 5.其他材料 三. ...

  2. 用树莓派 + aria2 做一个下载机

    用树莓派 + aria2 做一个下载机 用树莓派做下载机很久了,在此记录下来,免得忘记. 0x00 配置aria2 安装aria2c sudo apt-get install aria2 新建aria ...

  3. 【树莓派】做一个备份镜像

    在做树莓派镜像时候,遇到了一点问题,参考这篇文章,再重试一下. Adafruit的树莓派教程第一课福利:做一个备份镜像 04/08/2014 Boyd Wang Adafruit树莓派教程 , 树莓派 ...

  4. 使用树莓派摄像头做一个监控小车

    最近在网络上看到一句话,让我感触颇深: "你看那些,牵着手说着笑,通往厕所的身影,看那一堆人抱怨着,畅想着.看几个人大笑着吃着泡面的场景,你看,那是我们回不去的青春." 游戏手柄, ...

  5. 在树莓派上做一个远程控制的小车(基于Python)

    自制基于树莓派3B的WIFI控制小车 所需材料 开发环境搭建 实现的功能 系统架构 效果 客户端实现代码 标题服务端实现代码 总结 所需材料 1.履带式底盘及电机:能适应大多数地形 2.L298N步进 ...

  6. 树莓派3B+做一个带智能语音的树莓派魔镜

    先上图

  7. w怎么接显示 树莓派zero_别出心裁——无显示器初次配置ssh连接树莓派zeroW的另类方法...

    前言 raspberrypi出过一款很小巧的板子,就是树莓派zero,后来在其中有添加了WiFi和Bluetooth,是为raspberrypi zero w,即树莓派zero w,这个板子做的非常紧 ...

  8. 树莓派怎么作为无线服务器,教大家用树莓派做一个无线路由器

    使用树莓派来做无线路由器,首先需要确认的是USB无线网卡已经安装了正确的驱动并能工作,其次所使用的无线网卡需要支持AP功能,否则即使正确配置了无线路由器,有软件也无法正常工作.配置无线路由器需要安装 ...

  9. 用树莓派做一个alibaba-guest

    听说你去过阿里巴巴,那你一定连过Alibaba-guest. 想不想把Alibaba-guest带回家?给家里来做客的客人也用一用,顺带炫一下技术实力?(zhuangbility) now,教你用树莓 ...

最新文章

  1. SpringBoot下文件上传与下载的实现
  2. echart折线图,柱状图,饼图设置颜色
  3. 线程被中断跟被阻塞有什么区别_宠物加盟店跟自营店有什么区别
  4. rono在oracle的作用_Oracle中间件的优势有哪些
  5. C++实现二维码扫码登录
  6. 《Docker技术入门与实战》——3.5 创建镜像
  7. Spring源码分析——读取Xml过程
  8. 自媒体是什么?三大媒体平台详细介绍,不了解的赶紧看着吧!
  9. 论文笔记:UCTransNet: Rethinking the Skip Connections in U-Net from a Channel-wisePerspective with Transf
  10. 平面波法用于一维光子晶体
  11. 如何保存google的壁纸
  12. python的range函数用法和实例
  13. CDN是什么?CDN的作用
  14. PowerBuilder篇(2)——如何连接Oracle数据库
  15. AlarmManager用法的注意事项
  16. Mysql学习宝典(二) -- 从更新语句执行流程引出的Mysql各种日志
  17. 惠普(hp)3803tx xp 驱动程序 安装教程
  18. ISTP(CPCI)会议论文出版都经常有那些刊物?
  19. 乔布斯生母不知儿子去世
  20. python软件下载安装百度网盘-python网盘下载

热门文章

  1. 程序员成长之路(四)之有用的网址
  2. 安卓实现老虎机抽奖的案例
  3. 【多校训练】2021牛客多校第二场
  4. HEVC 常用之 CU、PU、TU分析
  5. SAP QM初阶之事务代码QC51为采购订单创建Quality Certificate
  6. 孙陶然:不要轻易开始创业
  7. 太棒了 | 辞职之后,去了一趟新疆!
  8. 面向商业市场,华为式“抢滩登陆”
  9. 信创环境下RSA解密时的中文字符乱码问题
  10. 感知机算法(一)PLA