[转载]用树莓派3配置成无线路由器
原文链接: 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配置成无线路由器相关推荐
- 树莓派上手实战之把Raspberry Pi 配置成无线路由器
原文 上 中 下 http://www.raspicn.com/thread-83-1-1.html http://www.raspicn.com/thread-84-1-1.html http:// ...
- [玩转树莓派]树莓派配置成路由器
现在手头上正好有一个树莓派3b+的板子,想折腾一下,用树莓派搞个简单的路由器玩玩. 树莓派3B+ / 4B板载了无线网络适配器,不需要额外增加无线网卡就可以把它打造成一个无线路由器.有一种方法是给树莓 ...
- 树莓派 Raspberry Pi 3B+ 无线路由器, WEB 服务器(Nginx,PHP,Sqlite3),UART 串口数据采集
目标: 测试四核 A53 树莓派 Raspberry Pi 3B+ 无线路由器, 轻量级WEB 服务器(Nginx,PHP,Sqlite3),UART 串口数据采集性能 初始配置,部分选项需要sudo ...
- 【树莓派入门】实验一 树莓派基本配置(基于Python)
[树莓派入门]初学树莓派(实验一 树莓派基本配置(基于Python) 一 格式化 SD 卡 二 下载官方镜像 三 烧录 SD 卡 四 Putty 连接 4.1 设置网络共享 4.2 查询树莓派的 IP ...
- 将Windows7电脑改造成无线路由器
一.将Windows7电脑改造成无线路由器 在平常上网过程中,难免会遇到一些网络方面的问题,这时候我们就需要查看网络连接的状态,查找问题根源. 在Windows XP中,大家这时候都会从开始菜单或控制 ...
- Catlyst 6509告警信息--把trunk口配置成access
Catlyst 6509告警信息--把trunk口配置成access. Catlyst 6509核心交换告警信息处理--把trunk口配置成access. 2008-12-28 (jj) 1. ...
- 树莓派 4b 配置 USB 网络连接
树莓派 4b 配置 USB 网络连接 树莓派镜像: 2022-09-22-raspios-bullseye-arm64.img 电脑: windows 10 1 打开树莓派的 USB 网络 在 /bo ...
- 新手学习实记(二、树莓派环境配置)
目录 [前言] 树莓派环境配置 一.树莓派镜像的烧写 二.获取树莓派 IP 地址(仅记录有效的方法) 1.ipscan22 2.静态ip 2.动态ip 三.putty远程登录树莓派 四.开启 VNC远 ...
- 关于在树莓派内存卡配置上遇到的坑
关于在树莓派内存卡配置上遇到的坑 配置树莓派的内存卡尽量选择不超过64G的,也就是格式为FAT32的,超过64G的格式为exFAT,比如128G的内存卡,所以在格式化时要注意格式类型,但是并不是这样就 ...
最新文章
- 剑指offer(19): 顺时针打印矩阵
- MySQL还原数据库提示Unknown MySql server host
- can a select block a truncate (ZT)
- java rsa ssh2_给定两个SSH2密钥,如何检查它们是否属于Java中的同一密钥对?
- python阿里巴巴排名_python使用urllib模块和pyquery实现阿里巴巴排名查询
- 深入理解Struts2
- python如何输入多组数据_Python 中如何实现多组的输入输出
- qrcode生产带logo_比亚迪换新标?新Logo的含义你了解吗?
- opencv函数制作的秒针模型
- 【eclipse】解决:eclipse或STS运行maven工程出现Missing artifact jdk.tools:jdk.tools:jar:1.7问题
- MySQL DELETE语句和TRUNCATE TABLE语句的区别
- Xposed框架未安装解决方法
- 不同vlan实现互通
- 李宏毅机器学习课程自测练习题
- Html+css怎样实现纯文字和带图标的按钮
- PLS-PM with R 偏最小二乘路径建模 (R语言)
- scJoint integrates atlas-scale single-cell RNA-seq and ATAC-seq data with transfer learning
- H5如何与原生App(ios,安卓,RN)通信?
- 支付宝2023集齐五福攻略技巧 五福卡全获取途径方法
- Ubuntu系统修复
热门文章
- UIToolBar实现高斯模糊
- ipad怎么和mac分屏_将Mac屏幕扩展到iPad有多好用?我甚至有了入手iPad Pro的冲动...
- 网络原理之TCP/UDP协议
- [AH2017/HNOI2017]抛硬币
- 微信支付-企业付款到零钱问题集锦
- 计算机简历800字,我的简历作文800字
- Unity Content Size Fitter 刷新不及时
- 【开源】我们和童年的距离,就是一台游戏机-用FPGA DIY一个NES游戏机
- 快速寻找勾股数算法的实现和优化
- 雷诺手表怎么换电池?雷诺手表更换电池的方法