匿名
未登录
登录
丢石头百科
搜索
查看“Alphabot树莓派教程:变身路由器”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Alphabot树莓派教程:变身路由器
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
Raspberry Pi 3板载了无线网络适配器和陶瓷天线,不需要额外增加无线网卡就可以把它打造成一个无线路由器。 * 有一种方法是给Raspberry Pi刷上OpenWRT等路由器固件,这样它就变成了一个比较正宗的路由器。 * 另一种方法是开启树莓派无线网络适配器的AP功能,并且共享其有线网络。这样依然使用Raspbian系统,可以发挥Raspberry Pi作为一个微型服务器的优势。 以下描述如何开启树莓派无线网络适配器的AP功能,并且共享其有线网络,实现无线路由功能。 == 安装软件包 == 需要安装2个软件包: <pre> sudo apt-get install hostapd dnsmasq </pre> hostapd将开启无线适配器的AP功能,dnsmasq是DHCP和DNS服务器。 === 设置静态IP === 需要将无线接口wlan0的IP配置成静态地址。 首先让dhcpcd不再管理wlan0,避免设置冲突。 修改文件: <pre> sudo vi /etc/dhcpcd.conf </pre> 在文件开头增加一行: <pre> denyinterfaces wlan0 </pre> [[File:Alphabot树莓派教程:变身路由器-1.jpg|400px]] 接下来设置wlan0的静态IP,修改文件: <pre> sudo vi /etc/network/interfaces </pre> 把wlan0相关的内容修改成如下内容: <pre> allow-hotplug wlan0 #iface wlan0 inet manual # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface wlan0 inet static address 192.168.8.1 netmask 255.255.255.0 network 192.168.8.0 broadcast 192.168.8.255 </pre> 192.168.8.1 是给树莓派做路由器分配的网关IP,这个不能与局域网其他路由器网关IP重复,若重复此处可以修改IP地址为其他网关。 [[File:Alphabot树莓派教程:变身路由器-2.jpg|400px]] 重启服务和wlan0 <pre> sudo service dhcpcd restart sudo ifdown wlan0 sudo ifup wlan0 </pre> 通过ifconfig可以看到wlan0的IP已经设定好了。 === 安装hostapd === 输入命令安装,hostapd将开启无线适配器的AP功能。 <pre> sudo apt-get install hostapd dnsmasq </pre> 新建配置文件: <pre> sudo vi /etc/hostapd/hostapd.conf </pre> 添加如下代码 <pre> # This is the name of the WiFi interface we configured above interface=wlan0 # Use the nl80211 driver with the brcmfmac driver driver=nl80211 # This is the name of the network ssid=RaspberryPi # Use the 2.4GHz band hw_mode=g # Use channel 6 channel=6 # Enable 802.11n ieee80211n=1 # Enable WMM wmm_enabled=1 # Enable 40MHz channels with 20ns guard interval ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40] # Accept all MAC addresses macaddr_acl=0 # Use WPA authentication auth_algs=1 # Require clients to know the network name ignore_broadcast_ssid=0 # Use WPA2 wpa=2 # Use a pre-shared key wpa_key_mgmt=WPA-PSK # The network passphrase wpa_passphrase=raspberry # Use AES, instead of TKIP rsn_pairwise=CCMP </pre> 以上内容中,ssid=RaspberryPi是无线网络的名字,wpa_passphrase=raspberry是密码(8位及以上)。 然后测试配置是否正确: <pre> sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf </pre> 通过手机等设备应该可以搜到名为RaspberryPi的WiFi,还不需要连接。 如果没有问题,按Ctrl+C停止测试。 使上述设置生效: <pre> sudo vim /etc/default/hostapd </pre> 将#DAEMON_CONF=""修改为DAEMON_CONF="/etc/hostapd/hostapd.conf"。 [[File:Alphabot树莓派教程:变身路由器-3.jpg|400px]] === 安装DHCP服务 === 输入命令 <pre> sudo apt-get install isc-dhcp-server </pre> 备份配置文件 <pre> sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp.dhcpd.config.bak </pre> 编辑新的配置文件 <pre> sudo vi /etc/dhcp/dhcpd.conf </pre> 修改成如下内容: <pre> default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.8.0 netmask 255.255.255.0 { range 192.168.8.10 192.168.8.100; option routers 192.168.8.1; option broadcast-address 192.168.8.255; option domain-name-servers 8.8.8.8,8.8.4.4; default-lease-time 600; max-lease-time 7200; } </pre> 此处设置的IP与上面的IP网关对应。 [[File:Alphabot树莓派教程:变身路由器-4.jpg|400px]] 重新启动服务 <pre> sudo service isc-dhcp-server restart </pre> === 开启ipv4转发 === 修改文件: <pre> sudo vim /etc/sysctl.conf </pre> 去掉net.ipv4.ip_forward=1前面的“#”号。 [[File:Alphabot树莓派教程:变身路由器-5.jpg|400px]] 通过iptables做NAT转发: <pre> 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 ACCEPT </pre> 这些配置重启后就失效了,需要保存下来: <pre> sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" </pre> 设为开机自动加载: <pre> sudo vi /etc/rc.local </pre> 在exit 0上方增加: <pre> iptables-restore < /etc/iptables.ipv4.nat </pre> [[File:Alphabot树莓派教程:变身路由器-6.jpg|400px]] 启动服务: <pre> sudo service hostapd start<br> </pre> 到此所有的配置都完成了,重启: <pre> sudo reboot </pre> 等Raspberry Pi重启完成,就可以用手机等设备连接该WiFi上网了,名字和密码是之前在/etc/hostapd/hostapd.conf文件中设定的。 连接后设备会获取到192.168.8.10----192.168.8.100之间的IP,并且可以通过树莓派连接的有线网络连上互联网,起到了无线路由器的功能。 如果遇到问题,可以通过以下命令检查服务情况。 <pre> sudo service hostapd status </pre>
该页面使用的模板:
模板:Raspberry Pi Study
(
查看源代码
)
返回至
Alphabot树莓派教程:变身路由器
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志