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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值