• 用树莓派做无线路由器


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

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

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

    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

  • 相关阅读:
    ACM实用C语言函数
    Java中的数组和方法
    eclipse常用快捷键
    【转载】第十章 五种对称加密算法总结
    【转载】ZooKeeper学习第二期--ZooKeeper安装配置
    【转载】Java垃圾回收机制
    【转载】JVM系列三:JVM参数设置、分析
    【转载】JVM系列二:GC策略&内存申请、对象衰老
    【转载】JVM系列一:JVM内存组成及分配
    java项目性能测试过程记录
  • 原文地址:https://www.cnblogs.com/craftor/p/3811627.html
Copyright © 2020-2023  润新知