1. 安装工具

    sudo apt-get install hostapd
    sudo apt-get install isc-dhcp-server

2. 修改配置文件

`sudo vim /etc/network/interfaces`

注释掉原来的部分,修改如下,ip同网段

    #allow-hotplug wlan0
    #iface wlan0 inet manual
    #    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    #
    #allow-hotplug wlan1
    #iface wlan1 inet manual
    #    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
     
    iface wlan0 inet static
        address 192.168.1.10 
        netmask 255.255.255.0

3. hostapd配置

修改hostapd默认配置文件

`sudo vim /etc/default/hostapd`

添加下面内容

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

/etc/hostapd/hostapd.conf 为hostapd的配置文件修改为

    interface=wlan0
    driver=nl80211
    ssid=RPI
    hw_mode=g
    channel=11
    wpa=2
    wpa_passphrase=12345678
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=CCMP
    rsn_pairwise=CCMP
    beacon_int=100
    auth_algs=3
    wmm_enabled=1

ssid是WIFI名称,wpa_passphrase是WIFI密码

重启服务

`sudo service hostapd restart`

hostapd相关配置完成

4. dhcp配置

`sudo vim /etc/dhcp/dhcpd.conf`

内容为

    default-lease-time 600;
    max-lease-time 7200;
    log-facility local7;
    subnet 192.168.1.0 netmask 255.255.255.0 {
    	range 192.168.1.200 192.168.1.250;
    	option routers 192.168.1.10;
    	option broadcast-address 192.168.1.255;
    	option domain-name-servers 8.8.8.8,8.8.4.4;
    	default-lease-time 600;
    	max-lease-time 7200;
    }

重启dhcp服务

`sudo service  isc-dhcp-server restart`

配置初步完成,可以用手机或者笔记本搜索到名为RPI密码12345678的WIFI并且连接,但是只能连接还不能上网。

5. 配置上网

如果有线网卡链接有网络的网线,则可以配置上网,方法有很多
先打开IP转发

`sudo vim /etc/sysctl.conf`  

去掉下面这句前的注释符#

`net.ipv4.ip_forward=1`

1) IP转发

    sudo iptables -F
    sudo iptables -X
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

此时WIFI已经能够上网,但是重启后需要再次运行上面命令才有效,可以将上面的命令写入脚本文件中每次开机自动执行即可。或者运行

    sudo bash
    iptables-save > /etc/iptables.up.rules
    exit

将当前iptable设置存入/etc/iptables.up.rules文件中

`sudo vim /etc/network/if-pre-up.d/iptables`

输入:

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

该文件启动网络时会调用,将之前保存的设置恢复,相当于执行前面三行命令
给该文件添加权限

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

最后

`sudo sysctl -p`

就可以成功上网了

Ref: http://shumeipai.nxez.com/2013/09/11/raspberry-pi-configured-as-a-wireless-router.html

2) 桥接bridg

通过建立双网卡桥接br0链接wlan0和eth0实现上网

Ref: https://wiki.debian.org/BridgeNetworkConnections
参见另一篇桥接笔记