树莓派做一个3G无线路由器

材料:3G网卡+3G sim卡+树莓派+wifi无线网卡

步骤:

一、首先参考本博客的文章《树梅派2如何使用3G无线网卡(中兴ZTE,MF110)上网》,实现3G网卡自动拨号上Internet。

      注意:建议使用带有电源的USB Hub作为3G网卡和Wifi网卡的连接接口,这样可以避免树梅派供电电流不足的问题!!!

二、创建无线AP 

1、配置无线网卡为固定ip地址

    输入命令

       sudo nano /etc/network/interfaces

    编辑网络配置文件

    找到这几行 注释掉,如下

       #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.1.1 netmask 255.255.255.0

 

    这里需要说明的是  192.168.1.1是给raspberry pi 做的路由器分配的网关 ip这个不能跟局域网里其他路由网关ip重复

 

2、安装hostapd

    Linux 下使用 hostapd 来建立无线 AP 服务
    输入命令,安装hostapd

       sudo apt-get install hostapd

 

    编辑hostapd 默认配置文件

        sudo nano /etc/default/hostapd


    找到

        #DAEMON_CONF= ""
    修改如下

        DAEMON_CONF="/etc/hostapd/hostapd.conf"
    编辑 hostapd 配置文件

       sudo nano /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=3wmm_enabled=1

 

    保存退出
    输入命令

       sudo service hostapd restart


    重新启动hostapd 服务

 

3、安装dhcp服务

    DHCP 服务用于给客户端分配动态 IP

   输入命令,安装dhcp服务

        sudo apt-get install isc-dhcp-server

 

    备份配置文件 

        sudo mv /etc/dhcp/dhcpd.conf  /etc/dhcp/dhcpd.conf.bak

 

    编辑新的配置文件

        sudo nano /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;}

 

    保存退出

 

    修改isc-dhcp-server文件

       sudo nano /etc/default/isc-dhcp-server

 

    加入DHCP的配置文件路径和用作AP的接口这些参数

    DHCPD_CONF="/etc/dhcp/dhcpd.conf"

    INTERFACES="wlan0"

    重新启动服务

       sudo service  isc-dhcp-server restart
   

4、配置路由转发

到上面为止,其实我们已经建立了无线热点了,手机打开WiFi功能可以连上RaspberryPi这个热点,但还不能上网。原因在于无线 AP 并不负责数据交换,也就是通过客户端发送到无线 AP 的数据包还没法发送到其目标主机,自然也不会得任何响应。Linux 中完成数据包转发的是 iptables,它才是完成路由功能核心所在。

       在添加 iptables 转发规则前要先打开内核的 IP 转发功能:

        echo "1" > /proc/sys/net/ipv4/ip_forward

 

       上面的命令只是临时打开IP转发的功能,下次重启就会失效,要想不失效可以直接修改/etc/sysctl.conf这个系统配置文件

        sudo nano /etc/sysctl.conf

 

        找到这里

        #net.ipv4.ip_forward=1

 

        将前面的注释符号#去掉

        保存退出
        输入命令 

        sudo sysctl -p

 

        让该设置立即生效

 

        下面是关键的部分,设置IP转发规则,

        sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADEsudo iptables -A FORWARD -i ppp0 -o wlan0 -j ACCEPTsudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
   

        ppp0是3G网卡接口,MASQUERADE表示数据包伪装,路由器内部的数据通过这个接口发送出去或者外部的进来。如果有以太网口的话,将ppp0改为eth0可以在这个以太网口实现转发,也就是实现普通无线路由器的功能。

 

        保存IP转发规则

        sudo bashiptables-save > /etc/iptables.up.rulesExit

 

        输入命令

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


        把下面两行复制粘贴到编辑窗口

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


        保存退出

 

        至此,3G路由器的配置工作已全部完成,输入

        sudo reboot

 

        重启树莓派,可搜索到RaspberryPi的无线信号,连接上后就可以上网。



你可能感兴趣的:(互联网,3G,路由器,Wi-Fi,树梅派)