用Linux做wifi热点/无线路由

以fedora14为例安装hostapd,将Linux笔记本部署为一台高性能无限路由器,顺便说一句,我的fedora14安装在一台10英寸的上网本上。

工具/原料

  • 有无线网卡、有线网卡的笔记本一台

  • 安装Linux操作系统,我使用的是fedora14

方法/步骤

  1. 检查确认笔记本网卡支持master模式

    首先要安装一个iw:yum install iw -y

    然后执行命令:iw list

    在命令执行结果中如果看到了下面的内容,就说明这张网卡是支持用于ap做路由的

    Supported interface modes:

    * IBSS

    * managed

    * AP

    * AP/VLAN

    * monitor

    * mesh point


  2. 安装hostapd

    通过 yum install hostapd -y 安装,如果是其它红帽系列的可以安装epel的源,或者找一下hostapd的rpm,下载对应自己发行版的进行安装。其它Linux可以通过源码安装。

  3. 修改配置文件

    # vim /etc/hostapd/hostapd.conf

    修改成如下状态

    ctrl_interface=/var/run/hostapd

    ctrl_interface_group=wheel

    macaddr_acl=0

    auth_algs=1

    ignore_broadcast_ssid=0

    wpa=3

    wpa_key_mgmt=WPA-PSK

    wpa_pairwise=TKIP

    rsn_pairwise=CCMP

    wpa_passphrase=ap_password

    driver=nl80211

    interface=wlan0

    hw_mode=g

    channel=9

    ssid=ap_name


    注意修改涉及到的ssid和密码


  4. 安装和配置dhcp

    # yum install dhcpd -y

    # vim /etc/dhcp/dhcpd.conf

    将此文件改成如下:

    option domain-name-servers 211.161.45.222,10.141.146.10;

    default-lease-time 3600;

    max-lease-time 7200;

    log-facility local7;

    subnet 192.168.7.0 netmask 255.255.255.0 {

    range  192.168.7.77 192.168.7.99;

    option broadcast-address 192.168.7.255;

    option routers 192.168.7.7;

    }


    注意将第一行的nameserver添加成你isp提供的dns,这样解析的速度会快一些,不知道的话就改成谷歌的8.8.8.8好了。subnet 里面设置的是分配给连接无线路由的设备的ip段,可以根据自己需求进行调整,这里给了192.168.7.77-99

    需要注意的是,option routers要写成这台机器的wlan0的ip,这个是手动设置的

    # ifconfig wlan0 192.168.7.7

  5. 配置SNAT

    Linux可以很方便的通过iptables配置SNAT服务器,命令如下:

    iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
    iptables -A FORWARD -s 192.168.4.0/24 -j ACCEPT
    iptables -A FORWARD -d 192.168.4.0/24 -j ACCEPT

    其中第一条表示将通过本机的转发数据包从eth0(外网)这个网卡发出去,另外两条表示只转发192.168.4.0/24这个网段过来的数据包,这个网段正好是wlan0其它设备连上本机以后分配的网段。

    还需要在打开内核的ip转发功能:

    # vim /etc/sysctl.conf

    添加或修改这样一段:

    net.ipv4.conf.default.rp_filter = 1

    然后执行命令

    # sysctl -p

启动相关服务

/etc/init.d/dhcpd start

/etc/init.d/hostapd start


你可能感兴趣的:(wifi)