日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux软AP实现,hostapd+dhcpd+dnsmasq

發布時間:2024/1/1 linux 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux软AP实现,hostapd+dhcpd+dnsmasq 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/cupidove/article/details/38845049
隨著手機、筆記本等無線設備的增多,公司里的家用三個無線路由器已經不堪重負,老是有人說連不上。誰讓咱是運維呢,在很多人眼里運維 =網管 (深表委屈),沒辦法就再兼一個企業網管的職務吧 。給BOSS提出的解決方案有二:一、購買企業無線路由 ,價格從幾百到幾千不等,性能從支持30臺設備到100臺以也不等,最大速率從150M到1300M等也有很多檔次,還有一些其他參數和功能不再一一表述;二、購買無線網卡配合linux hostapd +dhcpd或dnsmasq ,功能方面可以根據需要自由擴展 ,成本一塊無線網卡100元以內,一臺退休的破臺機(而且可以兼做網關,ftp等用)。

一、網卡選擇
不同于windows上,大部分的網卡都支持軟AP ,linux下的網卡需要支持mode master的才可以做軟AP 。具體識別方法如下

1、iwconfig識別

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
[root@localhost ~]$ sudo iwconfig wlan0 mode master
Password:
Error for wireless request “Set Mode” (8B06) :
SET failed on device wlan0 ; Invalid argument.

2、iw識別

上面的操作失敗,證明不支持。再進行進一步的驗證,有些新的網卡用的是mac80211 framework,對于這些網卡的話,用iwconfig來測試它是否支持master模式是行不通的。
因為他們是使用新的 nl80211接口在用戶空間通信的。再使用iw命令進行測試:

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
[root@localhost ~]$ sudo iw list
……..略……………………
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN

如果「Supported interface modes」中有「AP」的話,那么恭喜你,你的無線網卡可以架設虛擬AP 。如果沒有則不支持。

3、驅動識別

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
[root@localhost ~]$ sudo ethtool -i wlan0
driver: iwlagn
version: 3.0-ARCH
firmware-version: 8.83.5.1 build 33692
bus-info: 0000:03:00.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no

例如上面的示例中使用的驅動為iwlagn,通過http://wireless.kernel.org/en/users/Drivers AP模式支持的驅動列表里的查找AP項為yes的未發現iwlagn ,證明其不支持。

即然如此,如何在未購買網卡前選擇一款一定支持的網卡呢?wireless.kernel.org也給我們提供了一個方法 ,通過http://wireless.kernel.org/en/users/Devices 硬件列表 (該頁按pci、usb、pcmcia接口類型做了區分,點開相應的類型即可查看具體的硬件)。當然,這個表里列出的并不完全,也并不能保證是最適合做軟AP的硬件 。是否識合請參查看上面的三個方法。

二、hostapd+dnsmasq配置
選擇好網卡,接下來就是linux下的軟件配置。以linux mint為例(基于ubuntu ,以下的示例同樣適用于ubuntu)

1、安裝軟件

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
[root@localhost ~]$ sudo apt-get install hostapd dnsmasq

Dnsmasq是一個小巧且方便地用于配置DNS和DHCP的工具,適用于小型網絡 。如果網絡環境內的機器較多,建議換用dhcpd 。

2、hostapd配置

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
[root@localhost ~]$ sudo vim /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=My_wifi
channel=6
hw_mode=g
ignore_broadcast_ssid=0
auth_algs=1
wpa=3
wpa_passphrase=11111111
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

以上是一個示例配置,配置了一個AP名稱為My_wifi,密碼為8個1的wpa加密方式的軟AP 。配置完成后可以通過hostadp /etc/hostapd/hostapd.conf檢測文件配置 。配置文件正常的話可以通過/etc/init.d/hostapd start啟動,啟動前,請確認以下行是否增加,如果該行值為空的話,請按下面修改
[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片

sudo vim /etc/init.d/hostapd

將文件中 DAEMON_CONF 的值改成下面這樣:
DAEMON_CONF=/etc/hostapd/hostapd.conf
3、dnsmasq配置

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片

sudo vim /etc/dnsmasq.conf

interface=wlan0
listen-address=192.168.100.1

no-dhcp-interface=

dhcp-range=192.168.100.50,192.168.100.150,12h
server=/google/8.8.8.8

上面配置了dnsmasq 監聽的接口,該接口的IP、dhcp地址的范圍、租期長短、dns等。如果想使用dhcpd也可以,這里省略dhcpd.conf的配置 。3、配置無線接入點IP

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
sudo ifconfig wlan0 192.168.100.1 netmask 255.255.255.0 up

4、開啟主機的路由轉發

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
echo 1 >/proc/sys/net/ipv4/ip_forward

以上配置為立即生效,但重啟系統后就會失效,可以使其重啟后有效的方法是修改/etc/sysct.conf文件,在其中增加如下一行:

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片

sudo vim /etc/sysctl.conf

net.ipv4.ip_forward=1

sysctl -p 生效

5、共享上網

關于通過局域網eth0共享上網的方法有兩種:一種是橋接模式,一種是nat模式,這里以nat模式為例:

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
iptables -A FORWARD -i wlan0 -o eth0 -s 192.168.100.0/24 -m state –state NEW -j ACCEPT
iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
通過以上步驟配置就可以完成無線AP上網了。

三、wifi-hostapd-ap工具
以上操作步驟也可以通過配置圖形化的工具去操作 ,該工具就是wifi-hostapd-ap 。該工具是由俄羅斯人開發,其圖形界面需要依賴qt 。該工具的安裝方式如下(還是以我筆記本的系統linux mint為例):

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片

sudo apt-add-repository ppa:ekozincew/ppa

sudo apt-get update && sudo apt-get install wifi-hostapd-ap

其他linux版本可以通過 https://code.google.com/p/wifi-hostapd-ap/downloads/list 頁面下載安裝。
不過該工具默認為俄語界面,內置的有英語,可通過以下方法修改。如下圖:

hostapd-ap1

選擇好英語,點中間的鍵是保存,保存后退出wifi_hostapd_ap,然后再重新啟動。

hostapd-ap2

如下圖所示已經變成英文,其中editor部分是關于模板的部分,有興趣的可以試試。

hostapd-ap3

hostapd.conf配置相關部分

hostapd-ap4

下面是dnsmasq.conf部分的配置

hostapd-ap5

完成后點擊active激活所有的配置,客戶端連接上后,可以在list of clients上查看目前已連接的客戶端

hostapd-ap6

該部分參考臺灣yahoo部落格格

四、其他
1、關于網卡不能使用軟AP模式

如常見的RTL8187卡王,在windows下可以很方便的做soft AP,換到 hostapd 下就不支持。個人感覺不是網卡硬件不支持,而是由于驅動不支持導致的。想要解決某些在windows下支持的在linux下也支持可以通過修改驅動解決 ,當然這需要想當高的水平 --- 個人觀點 ,不知道是否正確 。

2、freebsd下檢測網卡是否支持soft AP

由于freebsd自身的移定性,很多像軟網關,軟AP都會選擇以freebsd為基礎進行更改,如大名鼎鼎的pfsense 。這里還是以卡王為例,因為手頭有這么一塊卡 。當時想在linux下不行,興許在freebsd下就會支持 。如何查看freebsd下無線網卡是否支持AP模式呢?

[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片
[root at thor ~]# ifconfig ndis0
ndis0: flags=8802

總結

以上是生活随笔為你收集整理的linux软AP实现,hostapd+dhcpd+dnsmasq的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。