網頁

2013年10月16日 星期三

[Ubuntu] Configure as Hot-Spot

我們要利用電腦上的 WiFi 晶片, 把電腦設置成 Hot-Spot ( Access Point). 但是在之前, 需要檢查 Wi-Fi 晶片是否能支援 Hot-Spot 的設定. 然而我們需要安裝 DNS server 服務, 以及 AP 軟體

確認 Wi-Fi 是否能支援 Hot-Spot 的設定:


        1. 列出無線網卡

                $ sudo iwconfig

        2.1 確認網卡是否能支援 Hot-Spot, 有兩種不同的方法,

                一般的網卡, 可以用以下的命令設置

                $ sudo iwconfig wlan0 mode master

                如果沒有錯誤, 就是可以.

        2.2 一些較新的網卡, 採用 mac80211 framework. 上述的方式只會產生錯誤訊息. 對於這樣的網卡, 我們需要安裝 iw, 來確認是否支援 Hot-Spot 的設定.

        $ sudo apt-get install iw
  
      $ iw list

        iw list 命令所顯示出來的訊息中, 找到以下項目

        .....
       Supported interface modes :
        * IBSS
        * managed
        * AP
        * AP/VLAN
        * WDS
        * monitor
        * mesh point
        * P2P-client
        *P2P-GO

        在以上的列表中, 有出現 'AP',  就表示這張網卡是支援 Hot-Spot

安裝 DNS server


         1. 安裝 dnsmasq

         $ sudo apt-get install dnsmasq

        2. 停止 dnsmasq 服務, 取消開機自動啟動

                $ sudo service hostapd stop
                $ sudo service dnsmasq stop
                $ sudo update-rc.d hostapd disable
                $ sudo update-rc.d dnsmasq disable

        3. 設定 dnsmasq, 修改 /etc/dnsmasq.conf, 修改以下 tag

                bind-interfaces
                interface=wlan0
                dhcp-range=172.16.0.2, 172.16.0.100

        4. 啟動 dnsmasq

                執行以下指令以啟動 dnsmasq

                $ sudo service dnsmasq restart

                在執行前述命令的時候,遇到以下錯誤:

                * Restarting DNS forwarder and DHCP server dnsmasq
                dnsmasq: failed to create listening socket for 127.0.0.1: Address already in use

                這個問題似乎有幾個不同的原因, 我是改用以下的方式, 才能正常執行

                sudo service dnsmasq stop
                sudo service bind9 stop
                sudo service dnsmasq start
                sudo service bind9 start

安裝 Access Point


        Ubuntu Server 12.04.03 預設的 hostapd 是比較舊的版本, 執行時會出現以下的錯誤,

        line 4: invalid/uknown driver 'nl80211
        line 8: unknown hw_mode g

        所以我們需要編譯一個新的版本.

        1. 安裝 library, 編譯 hostapd , 需要 libnl libssl 這兩個 library. 用以下的指令安裝

        $ sudo apt-get install libnl-dev
        $ sudo apt-get install libssl-dev

        2. 下載 hostapd 及編譯, 安裝

        下載 hostapd檔案的網頁連結如下:

        http://w1.fi/hostapd

        目前最新的版本是 hostapd-2.0, 以下說明下載及編譯的指令

        wget http://w1.fi/releases/hostapd-2.0.tar.gz
        tar xzvf hostapd-2.0.tar.gz
        cd host-2.0/hostapd
        cp defconfig .config
      
        修改 .config,

       

        #CONFIG_DRIVER_NL80211=y

        改成

        CONFIG_DRIVER_NL80211=y

        然後

        make

         這樣就可以完成編譯
 

        3. 設定 hostapd, 修改 /etc/hostapd/hostapd.conf, 修改以下 tag

 
        # Define interace
        interface=wlan0
        # Select driver
        driver= 80211
        # Set a access point name
        ssid=MySSID
        # Set access point hardware mode to 802.11g
        hw_mode=g
        # Set WIFI channel (can be easily changed)
        channel=6
        # Enable WPA2 only ( 1 for WPA, 2 for WPA2, 3 for WPA + WPA2)
        wpa=2
        wpa_pasword=myappassword
 

手動啟動 Access Point


        總結前述的作業, 可以用以下的命令, 啟動 hostap

        $ sudo ifconfig wlan0 172.16.0.1
        $ sudo service bind9 stop
        $ sudo service dnsmasq start
        $ sudo service bind9 start
        $ sudo sysctl net.ipv4.ip_forward=1
        $ sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
        $ sudo hostapd /etc/hostapd/hostapd.conf

        Windows , 打開無線網路搜尋, 就可以看到 MySSID 這一個無線網路. 連線之後, 輸入密碼 myappassword 就可以連線. 並且在 Ubuntu 的螢幕上, 可以看到 Windows 這一台電腦的 mac address, CONNECTED 的訊息.

        Windows 上, 打開命令列模式, 輸入 ipconfig, 可以看到 ip-address 已經變成我們設定的 172.16.0.2, 172.16.0.100 的範圍之中, 也就是說, Wi-Fi 的連線, 以及分配 IP 給連線進來的 client, 都已經可以正常運作. 之前 ip ranage 設定有錯誤, 已經修正. 這部份的內容也已經修正更新.



沒有留言:

張貼留言

請提供您寶貴的意見