zoukankan      html  css  js  c++  java
  • 将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)

    本文是基于在某东购买的usb无线网卡(RTL8188CUS芯片)来制作无线热点。本来想制作一个一键脚本。只是先把实现的过程记录下来。

    參考文章
    Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset)
    Why won’t dnsmasq’s DHCP server work when using hostapd?

    1、更新系统,安装须要的软件

    我们首先须要更新系统。然后安装必备的软件,以备随后编译hostapd。

    sudo apt-get update
    sudo apt-get install bridge-utils udhcpd make libnl-dev

    2、编译安装hostpad

    如今在git库中的hostpad是2.6版。已经支持了最新的RTL8188CUS芯片,所以我们直接编译安装就可以。

    #从官网直接克隆代码
    git clone git://w1.fi/srv/git/hostap.git
    #若你想指定版本号库则能够直接checkout
    git checkout hostap_2_5
    cd hostap/hostapd/
    #使用默认配置文件
    cp defconfig .config
    #编译安装
    make
    sudo make install
    #这时能够看到已经将hostpad安装至`install -D hostapd /usr/local/bin//hostapd`

    3.1、桥接方式设置wifi热点

    若不想使用桥接方式则能够跳过此步。使用路由器方式来设置热点

    编辑网卡配置文件:

    sudo nano /etc/network/interfaces

    然后将配置文件改动成例如以下配置:

    auto lo
    
    iface lo inet loopback
    iface eth0 inet dhcp
    #增加桥接
    auto br0
    iface br0 inet dhcp
    bridge_ports eth0 wlan0

    配置hostapd:

    sudo nano /etc/hostapd/hostapd.conf

    配置成例如以下:

    #macaddr_acl:指定MAC地址过滤规则。0表示除非在禁止列表否则同意,1表示除非在同意列表否则禁止。2表示使用外部RADIUS服务器
    #accept_mac_file:指定同意MAC列表文件所在
    #deny_mac_file:指定禁止MAC列表文件所在
    #ignore_broadcast_ssid改为1为隐藏SSID
    #macaddr_acl=1
    #accept_mac_file=/etc/hostapd/hostapd.accept
    ignore_broadcast_ssid=0
    interface=wlan0
    driver=rtl871xdrv
    #ssid
    ssid=My_SSID_Name
    hw_mode=g
    channel=1
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    #password
    wpa_passphrase=MYPASSWORD
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP

    然后将配置文件增加hostapd并使其生效:

    sudo nano /etc/default/hostapd

    去掉凝视符号,并将上面的配置文件的路径填写在DAEMON_CONF下:

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

    最后重新启动:

    sudo reboot

    3.2、用路由器的方式设置WiFI热点

    这里主要使用udhcpd工具来为连接到Wifi的设备自己主动分配IP地址,当然也能够替换成其它的dhcpd工具。

    改动udhcpd配置文件:

    sudo mv /etc/udhcpd.conf /etc/udhcpd.conf.bak
    sudo nano /etc/udhcpd.conf

    将配置文件改动成例如以下内容:

    #设置路由器分配的起始IP与终止IP
    start 192.168.42.1
    end 192.168.42.20
    interface wlan0
    remaining yes
    #设置DNS
    opt dns 8.8.8.8 4.2.2.2
    opt subnet 255.255.255.0
    #设置树莓派网卡的IP
    opt router 192.168.42.1
    #设置IP过期时间
    opt lease 864000

    然后编辑/etc/default/udhcpd使DHCP Server正常工作:

    #将这行的凝视取消
    DHCPD_ENABLED="no"

    设置树莓派无线网卡的静态IP:

    sudo ifconfig wlan0 192.168.42.1

    改动网卡配置文件,使其永久生效:

    sudo nano /etc/network/interfaces

    将配置文件改动成例如以下内容:

    auto lo
    
    iface lo inet loopback
    iface eth0 inet dhcp
    
    allow-hotplug wlan0
    iface wlan0 inet static
      address 192.168.42.1
      netmask 255.255.255.0
    #每次开机自己主动载入iptables
    up iptables-restore < /etc/iptables.ipv4.nat

    配置hostapd:

    sudo nano /etc/hostapd/hostapd.conf

    配置成例如以下:

    interface=wlan0
    driver=rtl871xdrv
    #ssid
    ssid=My_SSID_Name
    hw_mode=g
    channel=1
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    #password
    wpa_passphrase=MYPASSWORD
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP

    然后将配置文件增加hostapd并使其生效:

    sudo nano /etc/default/hostapd

    去掉凝视符号。并将上面的配置文件的路径填写在DAEMON_CONF下:

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

    启动IP转向功能以便于开通NAT:

    sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

    编辑sudo vim /etc/sysctl.conf改动net.ipv4.ip_forward设置为1:

    net.ipv4.ip_forward=1

    配置iptable防火墙

    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

    这时NAT功能已被启用。然后将当前改动的内容存储在iptables配置文件里:

    sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

    /etc/default/ifplugd内容改动成例如以下配置:

    INTERFACES="eth0"
    HOTPLUG_INTERFACES="eth0"
    ARGS="-q -f -u0 -d10 -w -I"
    SUSPEND_ACTION="stop"

    然后启动对应的服务。并将其增加启动项:

    sudo service hostapd start
    sudo service udhcpd start
    sudo update-rc.d hostapd enable
    sudo update-rc.d udhcpd enable

    最后重新启动:

    sudo reboot

    此时就完毕了无线热点的配置。然后就能够依据设置的ssid与password进行wifi的连接,将hostapd升级至2.6以后连接速度很之快。但有一个问题是。在将信道设置为6时,手机连接无法分配到IP。

    等待兴许更新处理。

  • 相关阅读:
    Web开发中需要了解的东西
    Javascript:谈谈JS的全局变量跟局部变量
    多角度看.NET面试题
    java http大文件断点续传上传方法
    java http大文件断点续传上传问题
    java http大文件断点续传上传功能
    java http大文件断点续传上传解决方案
    java http大文件断点续传上传实例
    java http大文件断点续传上传示例
    java http大文件断点续传上传源代码
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7109669.html
Copyright © 2011-2022 走看看