在Virtualbox的Ubuntu上创建无线(WiFi)热点

最近在搭建ATC运行环境,其中需要建立linux无线热点,因此在网上找到了教程并实践,遇到一些问题教程里可能没写的,这里补充一下

教程源于http://my.oschina.net/eechen/blog/227230,略有修改


1、在VirtualBox安装Ubuntu桌面版

    note:我最初使用的是Ubuntu的server版,但是在配置hostapd并运行时会报错

hostapd: nl80211: Driver does not support authentication/association or connect commands    

    谷歌了几下后也没有完全解决这个问题,所以更换了桌面版


2、使用USB无线网卡(市面上这些免费wifi都行),在virtualbox的设置里把USB无线网卡给虚拟机使用

    在Virtualbox的Ubuntu上创建无线(WiFi)热点_第1张图片


3、进入虚拟机ubuntu,这时在终端里输入lsusb,查看是否读到了这个网卡

    在Virtualbox的Ubuntu上创建无线(WiFi)热点_第2张图片

4、终端里输入iwlist,查看该网卡是否支持无线接入功能

    

5、为了要创建一个wifi热点,我们需要三个大步骤,首先是DHCP服务器,它用来使手机在接入这个热点时能够获取ip地址,然后是hostapd,这个组件用于连wifi时输入密码,也就是认证,最后是转发,我们需要把热点接收到的数据都转发到另一个连接外网的网卡上,这样才能让连接到热点的手机正常上网。

6、

sudo apt-get install hostapd isc-dhcp-server 安装hostapddhcpd

7、sudo nano /etc/hostapd/hostapd.conf配置热点的ssid以及认证的相关信息

interface=wlan0 //使用的无线网卡接口名称
driver=nl80211  //这里基本是固定的,是驱动接口
ssid=YOUR_AP_NAME  //设置热点的名称
hw_mode=g
channel=10
macaddr_acl=0
auth_algs=3
wpa=2   //从这开始都是用来设置认证的,如果去掉这些设置,热点就是没有密码的
wpa_passphrase=YOUR_AP_PASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

8、sudo nano /etc/dhcp/dhcpd.conf 在该文件末尾添加给手机分配的子网信息

subnet 192.168.0.0 netmask 255.255.255.0
{
    range 192.168.0.2 192.168.0.10;
    option routers 192.168.0.1;
    option domain-name-servers 8.8.8.8;//这里与源教程中不同,我最初使用192.168.0.1这个网关地址作为dns地址时,域名解析请求并没有被转发,导致手机不能打开网页,之后改成了公网的dns就可以了,8.8.8.8是谷歌的,也可以换成其他的,比如公司的dns会更快一点
}
 9、在个人的目录下编写启动和停止脚本,nano /home/ zhangshuai /hostapd/ap-start.sh
#!/bin/bash# 开启内核IP转发
bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
# 开启防火墙NAT转发(如果本机使用eth0上网,则把ppp0改为eth0,可以过ifconfig查看那个分配了公网ip的网卡名称,一般直接分配ip的就是eth0,拨号连接的就是ppp0)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# 关闭NetworkManager对无线网卡的控制
nmcli nm wifi off
# 设置并启动无线网卡
ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
# 解锁无线设备,可以用rfkill list查看解锁结果.
rfkill unblock wlan
# 睡眠6秒,待rfkill解锁生效
sleep 6s
# 启动dhcpd和hostapd,如果hostapd无法启动请查看日志hostapd.log,查看这两个进程
ps -ef|egrep "dhcpd|hostapd"nohup hostapd /etc/hostapd/hostapd.conf >/home/zhangshuai/hostapd/hostapd.log 2>&1 &dhcpd wlan0 -pf /var/run/dhcpd.pidps -ef|head -n1 && ps -ef| grep "dhcpd|hostapd"

nano /home/zhangshuai/hostapd/ap-stop.sh


#!/bin/bash
killall hostapd dhcpd
bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward"
ifconfig wlan0 down

10、为ap_start.sh和ap_stop.sh加上运行权限,我就直接chmod 777 *

11、运行./ap_start.sh启动热点,运行./ap_stop.sh关闭热点

你可能感兴趣的:(在Virtualbox的Ubuntu上创建无线(WiFi)热点)