首页 > 代码库 > Ubuntu下使用无线网卡共享WiFi(AP)

Ubuntu下使用无线网卡共享WiFi(AP)

方法一:

以前一直没有成功在ubuntu下开启过android可用的wifi热点.

但是最近使用ubuntu14.04 一次偶然的机会我安装了kubuntu-desktop,使用kubuntu-desktop时发现,使用其自带的网络管理器,比ubuntu默认的多了一种模式:ubuntu自带的网络管理器只有架构和Ad-hoc模式,而Kubuntu-desktop版的网络管理器多了一个Access Poin模式,而且可以选择创建wireless(shared),而ubuntu只能选择新建wifi.

但是假如我不想使用kubuntu-desktop而是使用ubuntu,怎样以这种方式开启android可用的wifi热点呢?

答案是,进入ubuntu软件中心,输入搜索network,选择kde-nm-connection-editor安装即可.

然后打开软件-新建-wireless(shared),然后模式选择Access Point即可开启.

方法二:

Android是不支持Ad-hoc模式的WiFi.本文介绍在Ubuntu下实现软AP.(需要你的无线网卡支持AP,并且电脑是通过本地连接路由器而不是宽带连接上网的。) 
使用工具hostapd,dnsmasq.我的环境是Ubuntu12.10;手机Android 2.3.4;网卡w311mi.有线网络使用静态的IP.(以下代码在实际用的时候要去掉注释) 
1、首先,安装软件: 

sudo apt-get install hostapd dnsmasq


2、配置hostapd: 

sudo gedit /etc/hostapd.conf
interface=wlan0
driver=nl80211
ssid=oldfeel                   # ssid 可以改成你喜欢的名字
hw_mode=g
channel=11
dtim_period=1
rts_threshold=2347
fragm_threshold=2346
macaddr_acl=0
auth_algs=3
ieee80211n=0
wpa=3
wpa_passphrase=12345678     #自行设置密码,最好密码后不要留空格
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP


3、配置dns: 

sudo gedit /etc/dnsmasq.conf
interface=wlan0
bind-interfaces #这个是只监听wlan0,没有之会检测所有卡
except-interface=lo
dhcp-range=192.168.10.100,192.168.10.199,6h     #设置dhcp地址范围,即租借时间6小时
dhcp-option=3,192.168.10.1 #为手机配置网关
dhcp-option=6,8.8.8.8#为手机配置dns,请自己修改为外网的dns地址


4、编辑启动脚本: 

sudo gedit /usr/bin/myap
#! /bin/sh
# 为无线添加路由规则
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.10.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.10.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i eth0 -j ACCEPT
#dnsmasq与named一般情况下bind的named会占了53端口,
#  然后dnsmasq会启动不了,所以我用killall named来杀了named再启动dnsmasq。
killall hostapd
ifconfig wlan0 192.168.10.1
#“-B”后台运行,之后的hostapd.conf需要指名路径.
hostapd -B /etc/hostapd.conf
/etc/init.d/dnsmasq restart
# dnsmasq启动后会出现电脑突然上不了网,
# 因为dnsmasq更改了/etc/resolv.conf的原因。可以在/etc/resolv.conf加一行
# nameserver x.x.x.x
#填入DNS服务器地址,根据自己的情况修改。
echo "nameserver 8.8.8.8" >> /etc/resolv.conf


5、修改/usr/bin/myap权限: 

sudo  chmod -R 777 /usr/bin/myap


6、最后还要注意确保系统打开转发功能 

sudo su
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo 1 >/proc/sys/net/ipv4/ip_forward
exit


7、想共享wifi时,请保证电脑能上网,然后运行 

sudo myap


8、重启后如果显示有线连接未托管,修改NetworkManager.conf 如下(然后重启): 

sudo gedit /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
no-auto-default=B4:B5:2F:CB:9E:5C,
[ifupdown]
managed=true


9、手机连接成功后就可以通过UC浏览器打开 http://192.168.10.1/连接电脑上的服务器了。。(欧朋浏览器迷你版打不开...郁闷了半天。。)