原文链接: https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=268398

树莓派3自带有线网卡和无线网卡,手里暂时没有路由器使用,就想着用树莓派配置成一个无线路由器。原理就是把无线网卡作为热点,把入网的有线网分享出来。当然,这样无线网卡就只能发网络信号,不能用来连接其他WiFi信号了。之前参考其他网上教程要不就是写的不够详细,要不就原本是错误的,或者是与我的系统版本不对应。本教程会把我配置过程中网上其他教程中错误指出,避免大家走弯路
工具/原料:树莓派Raspb Pi 3、系统版本:stretch、用ssh软件工具连接树莓派

一、树莓派stretch版本系统的下载及安装、设置就不啰嗦了,大家自行百度。
先下载软件包:
sudo apt-get install hostapd dnsmasq
hostapd的功能是创建热点,dnsmasq功能是实现网址自动分配和域名解析功能,不过这里只是使用它的网址分配功能。

二、设置IP地址
这一步骤是最容易出错的了,网上教程也多为错误的。
修改配置文件:sudo vim /etc/network/interfaces
我的配置如下:
  auto lo
  iface lo inet loopback
  auto eth0
  iface eth0 inet dhcp
  #    address 192.168.0.197
  #    netmask 255.255.255.0
  #    gateway 192.168.0.1
  #    dns-nameservers 223.5.5.5 
  auto wlan0
  allow-hotplug wlan0
  iface wlan0 inet static
      address 192.168.2.1 
      netmask 255.255.255.0
      broadcast 192.168.2.255
      network 192.168.2.0
说明:
1. auto eth0,auto表示开机自动加载eth0有线网卡,有的教程没有写上auto eth0,导致eth0未启动。
2.eth0上网方式是dhcp,若要设置成静态上网,就将dhcp改成static,其内容参考图中#注释掉的部分(IP地址改成自己路由器的)。静态方式配置中,有些教程未写上dns-nameservers,导致不能上外网。233.5.5.5是阿里云的解析服务,当然也可以改成其他的。
3.有教程提示要在 /etc/hdcpcd.conf 文件中配置静态网卡,经多次检验后,这样会带来问题:重启后 eth0 和 wlan0 只有一个起作用(通常是eth0不起作用,表现为eth0加载不了,或者没有被分配到IP地址),即使用ifdown和ifup命令也解决不了问题。
4.配置完成,不着急往下走。
  sudo reboot  重启树莓派后,用 ifconfig 命令查看 eth0 和 wlan0 网卡是否都在,且被分配了IP地址。若都正确,可继续往下一步骤操作。
5.若重启后,无法ssh连上树莓派,说明出错了,可能是eth0没启动或未配置好(前提是你使用了正确的IP地址连接的,注意检查下)。这样的话,可参考 https://zhidao.baidu.com/question/1865922724521505427.html    ;当然不也可以重装系统,重新操作。

三、编辑  sudo vim /etc/dhcpcd.conf
在首行 添加 
denyinterfaces wlan0

四、编辑  sudo vim /etc/hostapd/hostapd.conf
添加下面横线里内容,不包括横线。
interface=wlan0
driver=nl80211
# 设置无线网络名
ssid=raspberryA
hw_mode=g
# 设置信道
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
# 是否隐藏无线网络名
ignore_broadcast_ssid=0
# 使用WPA2
wpa=2
wpa_key_mgmt=WPA-PSK
# 设置无线网络的密码
wpa_passphrase=12345678
rsn_pairwise=CCMP
说明:无线网络名和密码 改为想要的。

五、编辑  sudo vim /etc/default/hostapd
将 #DAEMON_CONF=" “所在行的内容改为:
DAEMON_CONF="/etc/hostapd/hostapd.conf"

六、配置DHCP服务
我们先备份下dnsmasq的原配置文件
sudo mv /etc/dnsmasq.conf   /etc/dnsmasq.conf.bak
编辑   sudo vim /etc/dnsmasq.conf
#使用网卡接口
interface=wlan0
#监听地址
listen-address=192.168.2.1
#绑定接口
bind-interfaces
#dns服务器地址
server=223.5.5.5
domain-needed
bogus-priv
#地址范围,从50-150、租用时间为12小时。
dhcp-range=192.168.2.50,192.168.2.150,12h

七、配置网络转发
首先我们来开启内核的IPv4包转发,编辑 sudo vim /etc/sysctl.conf:
在最后一行添加
net.ipv4.ip_forward=1
然后执行sudo sysctl -p让其生效
接下来,执行下面命令设置转发规则:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#下面两个命令是为了防止pi默认开启了防火墙,若无不执行也可以。
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

八、执行完上面命令后,我们要想开机就能够让其生效,还需要将其加入开机启动。
我们编辑sudo vim /etc/rc.local
在rc.local 文件中的  exit  0  所在行的前面添加(第二和第三命令可选,我是只添加了第一个命令):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEP

九、
sudo reboot
大功告成!!!!!!

------------------------------------------------------------------------------------

<1>

pi@raspberrypi3:~ $ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

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

exit 0

<2>

pi@raspberrypi3:~ $ cat /etc/iptables.ipv4.nat 
# Generated by iptables-save v1.6.0 on Mon Jul  8 05:59:14 2019
*filter
:INPUT ACCEPT [5:600]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [9:1521]
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
COMMIT
# Completed on Mon Jul  8 05:59:14 2019
# Generated by iptables-save v1.6.0 on Mon Jul  8 05:59:14 2019
*nat
:PREROUTING ACCEPT [1:79]
:INPUT ACCEPT [1:79]
:OUTPUT ACCEPT [8:493]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Jul  8 05:59:14 2019

[转载]用树莓派3配置成无线路由器相关推荐

  1. 树莓派上手实战之把Raspberry Pi 配置成无线路由器

    原文 上 中 下 http://www.raspicn.com/thread-83-1-1.html http://www.raspicn.com/thread-84-1-1.html http:// ...

  2. [玩转树莓派]树莓派配置成路由器

    现在手头上正好有一个树莓派3b+的板子,想折腾一下,用树莓派搞个简单的路由器玩玩. 树莓派3B+ / 4B板载了无线网络适配器,不需要额外增加无线网卡就可以把它打造成一个无线路由器.有一种方法是给树莓 ...

  3. 树莓派 Raspberry Pi 3B+ 无线路由器, WEB 服务器(Nginx,PHP,Sqlite3),UART 串口数据采集

    目标: 测试四核 A53 树莓派 Raspberry Pi 3B+ 无线路由器, 轻量级WEB 服务器(Nginx,PHP,Sqlite3),UART 串口数据采集性能 初始配置,部分选项需要sudo ...

  4. 【树莓派入门】实验一 树莓派基本配置(基于Python)

    [树莓派入门]初学树莓派(实验一 树莓派基本配置(基于Python) 一 格式化 SD 卡 二 下载官方镜像 三 烧录 SD 卡 四 Putty 连接 4.1 设置网络共享 4.2 查询树莓派的 IP ...

  5. 将Windows7电脑改造成无线路由器

    一.将Windows7电脑改造成无线路由器 在平常上网过程中,难免会遇到一些网络方面的问题,这时候我们就需要查看网络连接的状态,查找问题根源. 在Windows XP中,大家这时候都会从开始菜单或控制 ...

  6. Catlyst 6509告警信息--把trunk口配置成access

    Catlyst 6509告警信息--把trunk口配置成access. Catlyst 6509核心交换告警信息处理--把trunk口配置成access. 2008-12-28    (jj) 1.  ...

  7. 树莓派 4b 配置 USB 网络连接

    树莓派 4b 配置 USB 网络连接 树莓派镜像: 2022-09-22-raspios-bullseye-arm64.img 电脑: windows 10 1 打开树莓派的 USB 网络 在 /bo ...

  8. 新手学习实记(二、树莓派环境配置)

    目录 [前言] 树莓派环境配置 一.树莓派镜像的烧写 二.获取树莓派 IP 地址(仅记录有效的方法) 1.ipscan22 2.静态ip 2.动态ip 三.putty远程登录树莓派 四.开启 VNC远 ...

  9. 关于在树莓派内存卡配置上遇到的坑

    关于在树莓派内存卡配置上遇到的坑 配置树莓派的内存卡尽量选择不超过64G的,也就是格式为FAT32的,超过64G的格式为exFAT,比如128G的内存卡,所以在格式化时要注意格式类型,但是并不是这样就 ...

最新文章

  1. 剑指offer(19): 顺时针打印矩阵
  2. MySQL还原数据库提示Unknown MySql server host
  3. can a select block a truncate (ZT)
  4. java rsa ssh2_给定两个SSH2密钥,如何检查它们是否属于Java中的同一密钥对?
  5. python阿里巴巴排名_python使用urllib模块和pyquery实现阿里巴巴排名查询
  6. 深入理解Struts2
  7. python如何输入多组数据_Python 中如何实现多组的输入输出
  8. qrcode生产带logo_比亚迪换新标?新Logo的含义你了解吗?
  9. opencv函数制作的秒针模型
  10. 【eclipse】解决:eclipse或STS运行maven工程出现Missing artifact jdk.tools:jdk.tools:jar:1.7问题
  11. MySQL DELETE语句和TRUNCATE TABLE语句的区别
  12. Xposed框架未安装解决方法
  13. 不同vlan实现互通
  14. 李宏毅机器学习课程自测练习题
  15. Html+css怎样实现纯文字和带图标的按钮
  16. PLS-PM with R 偏最小二乘路径建模 (R语言)
  17. scJoint integrates atlas-scale single-cell RNA-seq and ATAC-seq data with transfer learning
  18. H5如何与原生App(ios,安卓,RN)通信?
  19. 支付宝2023集齐五福攻略技巧 五福卡全获取途径方法
  20. Ubuntu系统修复

热门文章

  1. UIToolBar实现高斯模糊
  2. ipad怎么和mac分屏_将Mac屏幕扩展到iPad有多好用?我甚至有了入手iPad Pro的冲动...
  3. 网络原理之TCP/UDP协议
  4. [AH2017/HNOI2017]抛硬币
  5. 微信支付-企业付款到零钱问题集锦
  6. 计算机简历800字,我的简历作文800字
  7. Unity Content Size Fitter 刷新不及时
  8. 【开源】我们和童年的距离,就是一台游戏机-用FPGA DIY一个NES游戏机
  9. 快速寻找勾股数算法的实现和优化
  10. 雷诺手表怎么换电池?雷诺手表更换电池的方法