分享好友 系统运维首页 频道列表

基于树莓派的无线路由器改造

Linux系统  2016-10-31 11:110

家里的渣渣路由罢工了,只能链接却无法上网。本来打算上网淘一个回来,结果昨晚收拾东西的时候发现大学买来做人脸识别的树莓派在墙角吃灰很久,于是打算对其进行改造。

太久没动树莓派,上电没有正常跑起来,干脆直接从第一步刷系统开始操作。

一、系统设置

1、刷系统的操作前人已经介绍了很多,这里参考@王登科:  http://www.linuxidc.com/Linux/2016-10/136258.htm 实现Putty远程连接树莓派

2、打开网络设置

sudo nano /etc/network/interfacse

将wlan0修改为如下

#自动IP
auto lo
iface lo inet loopback
iface eth0 inet dhcp
iface eth0 inet manual

#网卡设置为固定IP
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0

二、hostapd

1、安装hostapd

sudo apt-get install hostapd

2、使用下面的语句打开hostapd

sudo nano /etc/default/hostapd

3、找到#DAEMON_CONF= ""这一行,首先取消注释(去掉前面的#号),然后将其修改为:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

4、打开hostapd.conf

sudo nano /etc/hostapd/hostapd.conf

5、添加配置信息(PS:由于没查到我买的设备的具体型号,这里采用后面的方式进行配置)

# 把无线网卡wlan0 作为接入点 
interface=wlan0 
# 使用对应的驱动 
driver=XXXX 
#共享网络的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

6、安装 autoremove hostapd

sudo apt-get autoremove hostapd

7、下载安装第三方驱动:

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

8、启动hostapd服务:

sudo service hostapd restart

之后提示下面的文字表示启动成功

[ ok ] Stopping advanced IEEE 802.11 management: hostapd. 

[ ok ] Starting advanced IEEE 802.11 management: hostapd.

打开hostapd.conf查询到我的配置如下

# Basic configuration

interface=wlan0
ssid=Wifi
channel=6
#bridge=br0

# WPA and WPA2 configuration

macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=YourPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

# Hardware configuration

driver=rtl871xdrv
ieee80211n=1
hw_mode=g
device_name=RTL8192CU
manufacturer=Realtek

三、DHCP

1、安装DHCP服务,用于对每个接入的设备分配IP

sudo apt-get install isc-dhcp-server

2、编辑配置文件

sudo nano /etc/dhcp/dhcpd.conf

3、设置网关等信息,这里使用的是192.168.1.1

#默认租期(S)
default-lease-time 84600; 
#最大租期(S)
max-lease-time 84600; 
log-facility local7; 

subnet 192.168.1.0 netmask 255.255.255.0 { 
range 192.168.1.10 192.168.1.100; 
option routers 192.168.1.1; 
option broadcast-address 192.168.1.127; 
//设置DNS服务器地址 option domain
-name-servers 192.168.31.1,192.168.1.1; default-lease-time 84600; max-lease-time 84600; }

4、启动DHCP服务

sudo service isc-dhcp-server restart

四、转发配置

1、配置路由转发

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

2、打开iptables文件

sudo nano /etc/network/if-pre-up.d/iptables

添加以下代码

#!/bin/bash 
/sbin/iptables-restore < /etc/iptables.up.rules

3、修改iptables权限

sudo chmod 755 /etc/network/if-pre-up.d/iptables

4、设置内核转发,打开sysctl.conf文件

sudo nano /etc/sysctl.conf

将文件内的下列两行

# Uncomment the next line to enable packet forwarding for IPv4 
#net.ipv4.ip_forward=1

修改为(即去掉net.ipv4.ip_forward=1的注释)

# Uncomment the next line to enable packet forwarding for IPv4 
net.ipv4.ip_forward=1

5、修改内核之后使其生效

sudo sysctl -p

至此,已经完成无线路由器的设置功能。

五、自启设置

1、安装chkconfig

sudo apt-get install chkconfig

2、设置hostapd、dhcp自启动

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

PS: 手机有时候会出现连接上wifi后无法联网的情况,需要手动设置IP,暂时未解决~~

本文永久更新链接地址 http://www.linuxidc.com/Linux/2016-10/136260.htm

查看更多关于【Linux系统】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
每天一条linux命令——halt
halt命令用来关闭正在运行的Linux操作系统。halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。 语法:halt(选项)选项:-d:不要在wtmp中记录;-f:不论目前的runlevel为何,不调用shutdown即强制关闭系统;-i:

0评论2023-02-10470

几个linux命令查看堆栈内存问题 几个linux命令查看堆栈内存问题怎么解决
  公司编写代码,发现整个在程序里面调用system时候总是失败,原因是can't allocate memory ,根本原因不是内存不足,而是堆栈内存不够。使用ulimit -s 2048后有所好转但是发现一旦系统进程开启多了后仍然会挂。后来使用objdump -x 后发现了原因有个动态库

0评论2023-02-09953

Linux命令总结--rm命令 linux的rmp命令
(来源于http://www.cnblogs.com/xqzt/p/5398919.html)1、命令简介rm(Remove file 删除目录或文件)删除文件,对于链接文件,只是删除整个链接文件,而原有文件保持不变。新手在删除文件之前一定要知道这些:很重要1.可以用mv代替rm的绝对不要用rm,不要着急

0评论2023-02-09320

Linux命令行批量创建目录详解 linux创建目录
以前一直用-p创建目录链,觉得很方便了。在空目录/opt/app/myapp里创建src,再创建main,再创建javamkdir -p /opt/app/myapp/src/main/java没想到还可以这样玩##¥%……*(root@vm1:~/tmp# mkdir -p src/{{main,test}/{java,resources},main/webapp}root@vm1:

0评论2023-02-09819

Linux命令之乐--script和scriptplay
script和scriptplay可以把终端会话记录到一个文件中,可以用来制作命令行教学视屏。 开始录制会话[root@new test]# script -t 2timing.log -a output.sessionScript started, file is output.session[root@new test]# echo hellohello[root@new test]# echo

0评论2023-02-09430

java 开发常用的Linux命令
1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。find . -name "*.xml" 递归查找所有的xml文件find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件grep -H 'spring' *.xml 查找所

0评论2023-02-09390

常用Linux命令整理 Linux常用命令总结
常用Linux命令整理常见系统命令export 查看或修改环境变量# 例:临时修改命令提示符为字符串$export PS1=$# 例:临时修改命令提示符显示系统时间 时间使用\t 表示export PS1="[\u@\h \t \W]\$"man 查看linux系统的手册# 例:查看ls命令如何使用man ls # 回车

0评论2023-02-09592

Linux命令行查看cpu(lm_sensors)和显卡温度(nvidia-smi)的操作方法
Linux命令行如何查看cpu和显卡温度lm_sensors,是一款基于linux系统的硬件监控的软件。可以监控主板,CPU的工作电压,温度等数据。实际上sensors命令只是读取了/sys/class/hwmon/目录下关于CPU等传感器温度参数并直观的展示给我们,我们不安装lm_sensors模块

0评论2023-02-07382

Linux命令行循环执行shell命令 linux shell命令行
目录Linux命令行,循环执行shell命令死循环命令格式效果普通计数循环循环10次效果Linux shell循环命令 while死循环的用法Linux命令行,循环执行shell命令死循环命令格式while true ;do command; done;可以将 command 替换为任意命令。下面以echo “hello”; s

0评论2023-02-07705

通过Golang实现linux命令ls命令(命令行工具构建)
目录ls 命令os.Args 读取参数pflag小结ls 命令要实现ls,首先先我们复习一下ls命令。ls不加任何参数,表示查询当前目录下的文件/文件夹ls后面加上路径,列出所有,不包含隐藏文件/文件夹ls -a列出所有,包括以.开头的隐藏文件此命令还有很多功能,这一节的重

0评论2023-02-07529

?第五周作业
1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;[root@localhost ~]# grep-E ^[[:space:]]+ /boot/grub/grub.conf root (hd0,0)kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS.UTF-8 rd_NO_MD rd_LVM_L

0评论2017-02-05452

Linux查找find命令详解
Linux查找–find命令首先,大家如果看到有什么不懂的地方,欢迎吐槽!!!find命令的格式findpathname-options[ -print -exec -ok ...]pathname #是find命令所查找的目录路径,例如.表示当前目录,/表示根目录-print #表示find命令将匹配的文件输出到标准输出

0评论2017-02-05352

更多推荐