Raspberry pi设置自动拨号,搭建无线路由环境

Raspberry pi设置自动拨号,搭建无线路由环境


  • 前言 

    raspberry pi(树莓派), 是一款针对电脑业余爱好者、教师、小学生以及小型企业等用户的迷你电脑,由于可以烧录Linux操作系统,因此可以衍生出各种各样的使用途径,诸如控制版,爬虫机器,个人vps,门禁系统…..本文主要介绍如何在raspberry pi上面完成pppoe拨号上网功能,以及如何利用raspberry pi完成路由转发功能,进而将其作为一个家用无线路由器来使用。


  • 准备环境

    1. raspberry pi 三代 b+版
    2. Kali Linux 镜像,点此链接下载最新镜像
    3. 一款Kali Linux支持的,拥有AP模式的USB网卡, 可以参考此链接
  • 烧录Kali Linux系统到SD卡片(此处略过)

    在windows上面,我们可以使用 Win32DiskImager工具进行镜像的烧录;在Linux宿主系统上面,可以利用dd命令直接将img镜像dump到sd卡里面,例如: 
    root@kali:~ dd if=kali-2.1.2-rpi.img of=/dev/sdb bs=512k

  • 安装必要软件 
    我们需要在Kali上面安装pppoe软件用来拨号,安装AP软件将Raspberry pi作为一个无线AP,安装dhcp软件用来给客户端分发IP地址,DNS等信息。

root@kali:~# apt-get install pppoe pppoeconf hostapd udhcpd 
  • 设置拨号 
    在这里,我们使用Raspberry pi的以太网网口接入网线进行拨号设置。在命令行输入如下指令:
root@kali:~# pppoeconf 

        在这里,会提示相应的配置文件将发生改变,点选Yes。

pppoe1

        下一步会提示在拨号的偏好设定,点选Yes。

pppoe2

        下一步会提示输入拨号的用户名,直接输入然后点击OK。

pppoe3

        下一步会提示输入拨号密码,直接输入然后点击OK。

pppoe4

        下一步会确认是否将ISP供应商提供的DNS信息写入配置,选Yes。

pppoe5

        下一步会提示修改ppp接口的MTU大小,选择Yes。

pppoe6

        下一步提示是否在开机启动的时候就进行ppp拨号,选择Yes。

pppoe7

        下一步提示是否现在进行拨号连接,选择Yes。

pppoe8

        拨号成功之后,利用ip命令查看ppp情况:

root@kali:~# ip a s ppp0
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1488 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 10.12.6.137 peer 10.12.0.1/32 scope global ppp0
       valid_lft forever preferred_lft forever

root@kali:~# ip r s t main
default dev ppp0 scope link
10.12.0.1 dev ppp0 proto kernel scope link src 10.12.6.137
20.20.20.0/24 dev wlan1 proto kernel scope link src 20.20.20.1

        可以看到,已经拨号获取地址,ping一下 伟大的百度 试试……

root@kali:~# ping -c 3 www.baidu.com
PING www.a.shifen.com (119.75.217.109) 56(84) bytes of data.
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=1 ttl=55 time=4.33 ms
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=2 ttl=55 time=4.18 ms
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=3 ttl=55 time=4.06 ms

--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 4.064/4.193/4.333/0.122 ms

        至此,pppoe拨号配置完毕。

  • 无线热点(AP)配置 
    首先查一下所用的无线网卡是否支持AP模式,我这里的无线网卡的标识为phy1, wlan1,可以看到,该网卡支持AP模式:
root@kali:~# iw phy1 info | grep -i ap
                 * AP
                 * AP/VLAN
                Capabilities: 0x172
                 * start_ap
                 * set_noack_map
                 * set_qos_map
                 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * AP/VLAN
                 * #{ AP, mesh point } <= 8,
        HT Capability overrides:
        Device supports AP scan.

       下一步,编辑/etc/hostapd/hostapd.conf文件:

interface=wlan1 #使用的接口名称 
ssid=Raspberry_AP #AP的ssid名称 
hw_mode=g   #操作模式为IEEE 802.11g 
channel=11      #设置频段为11 
macaddr_acl=0 #启用mac地址白名单模式 
auth_algs=1 #定义802.11鉴权算法为Shared Key Authentication 
ignore_broadcast_ssid=0 #关闭broadcast_ssid功能 
wpa=2 #采用wpa2标准 
wpa_passphrase=raspberrypi  #密码 
wpa_key_mgmt=WPA-PSK #使用wpa2-psk类型进行加密 
wpa_pairwise=TKIP   #加密算法 
rsn_pairwise=CCMP #加密算法 

        编辑完毕之后,利用如下命令启动hostapd:

root@kali:~# /usr/sbin/hostapd -B -P /run/hostapd.pid \
 /etc/hostapd/hostapd.conf
  • 配置DHCP功能 
    编辑/etc/udhcpd.conf文件,修改如下内容:

# Sample udhcpd configuration file (/etc/udhcpd.conf)

# The start and end of the IP lease block

start           20.20.20.2      #default: 192.168.0.20
end             20.20.20.20     #default: 192.168.0.254


# The interface that udhcpd will use

interface       wlan1           #default: eth0

        配置完毕之后,启动udhcpd服务:

root@kali:~# udhcpd /etc/udhcpd.conf
  • 开启NAT转发功能 
    在Raspberry pi上面开启NAT功能,以实现路由转发。

root@kali:~# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
root@kali:~# iptables -t filter -A FORWARD -i ppp0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
root@kali:~# iptables -t filter -A FORWARD -i wlan1 -j ACCEPT
  • 连接测试 
    通过本地windows连接Raspberry_AP,并用本地cygwin尝试连接 伟大的百度……测试连通成功,至此Raspberry pi已经可以作为家庭路由器进行工作了!

pppoe9

[jiangche00.jiangche00-PC] ➤ ping www.baidu.com

正在 Ping www.a.shifen.com [119.75.217.109] 具有 32 字节的数据:
来自 119.75.217.109 的回复: 字节=32 时间=5ms TTL=54
来自 119.75.217.109 的回复: 字节=32 时间=6ms TTL=54
来自 119.75.217.109 的回复: 字节=32 时间=6ms TTL=54
来自 119.75.217.109 的回复: 字节=32 时间=11ms TTL=54

119.75.217.109 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 5ms,最长 = 11ms,平均 = 7ms

原创文章,作者:jiangche00,如若转载,请注明出处:http://www.178linux.com/72057

(0)
jiangche00jiangche00
上一篇 2017-03-28
下一篇 2017-03-28

相关推荐

  • vim文本编辑器

    vim简介: vi: Visual Interface,文本编辑器 文本:ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi vim – Vi Improved 其他编辑器: gedit一个简单的图形编辑器 gvim一个Vim 编辑器的图形版本   vim使用: 三种主要模式: 命令(Norm…

    Linux干货 2017-06-17
  • 马哥教育网络班21期-第五周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost ~]# grep "^[[:space:]]\{1,\}" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符…

    Linux干货 2016-08-08
  • 第一天作业

    一、计算机的组成部分         现代计算机的组成是根据冯.诺依曼体系,包括5大部件存储器、控制器、运算器、输入设备和输出设备。             1.存储器包括内部存储器和外部存储器;内部存储器包括内部硬盘、内存、缓存等,外部存储器包括移动硬盘、光…

    Linux干货 2016-08-15
  • 马哥教育网络班20期第1周课程练习

    答: 1、 ①控制器:是计算机的中枢神经,协调计算机各部分工作及内存与外设的访问等 ②运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 ③储存器:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。 ④IO:输入设备是将数据或控制命令等信息输入到计算机。输出设备把机算机的各种数据符号及文字或各种控制信号等…

    Linux干货 2016-06-23
  • 马哥教育网络班N22期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1 tune2…

    Linux干货 2016-10-24
  • 文本处理工具-2

    1、 sed 是一种行/流编辑器,它一次处理一行内容;处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中该行内容,处理完成后,把缓冲区的该行内容送往屏幕,接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出,Sed 可以用来自动编辑一个或多个文件。 2…

    Linux干货 2016-08-15

评论列表(1条)

  • renjin
    renjin 2017-04-05 10:45

    刚刚开始就写这么高深的内容,挺不错,继续加油,排版也都很不错