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

本文详述如何将树莓派3配置成无线路由器,通过有线网络分享无线信号,包括软件安装、IP地址设置、热点创建、DNS配置、网络转发等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接: 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
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值