博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用树莓派做无线路由器
阅读量:5354 次
发布时间:2019-06-15

本文共 3035 字,大约阅读时间需要 10 分钟。

原理:Pi使用有线连入网络,然后接USB无线网卡作为热点,提供Wifi接入。

1、有线网络,如果是自动获取IP的,直接接上网线即可。

2、关于USB无线网卡驱动问题。

如果接上USB无线网卡,使用ifconfig命令,能直接看到wlan0,那么恭喜你,可以直接跳过这一步。
官方推荐的无线网卡是TL-WN725N,我上淘宝买了,很不幸,买到的是2.0版的。而官方的驱动只支持1.0,好在有爱好者做了第三方驱动。
如果你淘宝上买到的也是2.0版的,看我的这篇文章安装驱动

3、修改wlan0为静态IP

sudo vim /etc/network/interfaces
把原来关于wlan0的注释掉:
#allow-hotplug wlan0 #iface wlan0 inet manual #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #iface default inet dhcp
添加下面的:
iface wlan0 inet static address 192.168.10.1 netmask 255.255.255.0

4、安装hostapd

sudo apt-get install hostapd
编辑hostapd 默认配置文件
sudo vim /etc/default/hostapd
找到#DAEMON_CONF= "",修改为:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
然后编辑:
sudo vim /etc/hostapd/hostapd.conf
添加
# 把无线网卡wlan0 作为接入点 interface=wlan0 # 使用nl80211驱动 driver=nl80211 #共享网络的SSID是RaspberryPi ssid=RaspberryPi # 网卡工作在802.11G模式 hw_mode=g #无线网卡选用11信道 channel=11 # WPA2 配置 wpa=2 #wpa密码是raspberry wpa_passphrase=raspberry #认证方式为WPA-PSK 加密方式为CCMP wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP rsn_pairwise=CCMP beacon_int=100 auth_algs=3 wmm_enabled=1
保存退出,然后重启服务:
sudo service hostapd restart

如果你使用的也是TL-WN725N v2.0,那么,很显然,你这一步不会成功的。

出现的应该是这样的错误:

$ sudo hostapd /etc/hostapd/hostapd.conf Configuration file: /etc/hostapd/hostapd.conf nl80211: 'nl80211' generic netlink not found Failed to initialize driver 'nl80211' rmdir[ctrl_interface]: No such file or directory

不是说了么,官方的是支持1.0版的,不支持2.0的。那么,还是要使用第三方的hostapd。

首先,要删除原来的hostapd

sudo apt-get autoremove hostapd
再下载第三方驱动并安装
wget https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz tar -zxvf v1.1.tar.gz cd RTL8188-hostapd-1.1/hostapd sudo make sudo make install
然后再重启服务,应该提示成功:
$ sudo service hostapd restart [ ok ] Stopping advanced IEEE 802.11 management: hostapd. [ ok ] Starting advanced IEEE 802.11 management: hostapd.

5、安装DHCP服务

sudo apt-get install isc-dhcp-server
备份配置文件
sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
编辑配置文件:
sudo vim /etc/dhcp/dhcpd.conf
复制粘贴如下内容:
default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.100; option routers 192.168.10.1; option broadcast-address 192.168.10.127; option domain-name-servers 8.8.8.8,8.8.4.4; default-lease-time 600; max-lease-time 7200; }
保存退出,然后重启服务:

sudo service isc-dhcp-server restart
6、配置路由转发
sudo iptables -F sudo iptables -X sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo bash iptables-save > /etc/iptables.up.rules exit
编辑:
sudo vim /etc/network/if-pre-up.d/iptables
添加下面两行代码:
#!/bin/bash /sbin/iptables-restore < /etc/iptables.up.rules
保存退出,然后修改iptables权限:
sudo chmod 755 /etc/network/if-pre-up.d/iptables
开户内核转发:
sudo vim /etc/sysctl.conf
找到下面两行:
# Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1
把net.ipv4.ip_forward 前面的#去掉,保存退出。
然后
sudo sysctl -p

7、服务自启动

到第6步,如果没什么问题,用手机接Wifi,应该可以上网了。但是如果Pi断电了,hostapd和dhcp服务还是要手动来启动。这样比较麻烦,所以我们要添加这两个服务的自启动,以便Pi断电再上电后,wifi能自动连上。

$ sudo chkconfig --add hostapd $ sudo chkconfig --add isc-dhcp-server

转载于:https://www.cnblogs.com/craftor/p/3811627.html

你可能感兴趣的文章
[工具] Sublime Text 使用指南
查看>>
Web服务器的原理
查看>>
常用的107条Javascript
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
mysql统计一张表中条目个数的方法
查看>>
ArcGIS多面体(multipatch)解析——引
查看>>
css3渐变画斜线 demo
查看>>
JS性能DOM优化
查看>>
HAL层三类函数及其作用
查看>>
Odoo 去掉 恼人的 "上午"和"下午"
查看>>
web@h,c小总结
查看>>
java编程思想笔记(一)——面向对象导论
查看>>
Data Structure 基本概念
查看>>
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>