ubuntu(linux)無線網卡開啓/關閉wifi(AP)

本次操作在Thinkpad T440p Ubuntu16.04上進行,使用hostapd使網卡開啓AP功能,使用isc-dhcp-server作爲dhcp服務器。

1. 安裝需要的程序包

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

2. 開啓無線網卡的AP功能

2-1. 將無線網卡配置成monitor模式

使用ifconfig命令查看無線網卡對應的網絡接口(比如我的是wlp3s0,常見的還有wlan0等)

sudo ifconfig wlp3s0 down
sudo iwconfig wlp3s0 mode monitor
sudo ifconfig wlp3s0 up

2-2. 開啓AP

創建hostapd的配置文件

zcat /usr/share/doc/hostapd/examples/hostapd.conf.gz | sudo tee -a /etc/hostapd/hostapd.conf

修改配置文件

interface=wlp3s0
ssid=Example-WLAN #這裏填寫你自己的無線名稱
hw_mode=g
wpa=2
wpa_passphrase=12345678 #這裏填寫你自己的無線密碼
wpa_key_mgmt=WPA-PSK WPA-EAP WPA-PSK-SHA256 WPA-EAP-SHA256

最後執行下面命令,開啓AP

hostapd /etc/hostapd/hostapd.conf

出現打印wlp3s0: AP-ENABLED表示開啓成功。

2-2-1. 其他配置

  • 若不需要密碼,則註釋掉所有wpa開頭的配置項
  • 若要支持802.11n,需要如下配置
hw_mode=g
ieee80211n=1
ht_capab=[SHORT-GI-40][HT40+][HT40-][DSSS_CCK-40]

2-2-2. 開啓失敗

我在開啓時,出現nl80211: Could not configure driver mode,開啓失敗。解決方法是先執行sudo killall -9 wpa_supplicant,然後執行hostapd /etc/hostapd/hostapd.conf

2-2-3. 如果需要這張網卡一直當做AP使用,且開機自動配置

需要修改/etc/network/interfaces。這裏假設使用的dhcp服務器的網段是192.168.33.0/24

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto wlp3s0
iface wlp3s0 inet static
hostapd /etc/hostapd/hostapd.conf
address 192.168.33.1
netmask 255.255.255.0

3. 開啓dhcp服務器

創建或修改/etc/dhcp/dhcpd.conf

ddns-update-style none;
option domain-name-servers 114.114.114.114, 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.33.0 netmask 255.255.255.0 {
	range 192.168.33.100 192.168.33.200;
	option routers 192.168.33.1
}

然後執行dhcpd -4 -d -cf /etc/dhcp/dhcpd.conf wlp3s0開啓dhcp服務器

若一切順利,那麼恭喜,現在你可以連接上這個無線SSID了!

4. 讓這個無線可以上網

執行完上面的步驟,這個無線還是不能上網的。若希望這個無線可以上網,那麼首先你的這個電腦得有一個可以上網的網卡(比如我這裏的有線網卡enp0s25),然後執行如下命令:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.33.0/24 ! -d 192.168.33.0/24 -o enp0s25 -j MASQUERADE

好了,現在這個無線網絡就可以上網了

5. 想讓這張網卡重新可以去連接其他的AP

首先需要關閉hostapd

killall -9 hostapd

將無線網卡配置成managed模式

sudo ifconfig wlp3s0 down
sudo iwconfig wlp3s0 mode managed
sudo ifconfig wlp3s0 up
nmcli radio all on
sudo service network-manager restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章