中国领先的IT技术网站
|
|

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

以前一直没有成功在ubuntu下开启过android可用的wifi热点.但是最近使用ubuntu14.04 一次偶然的机会我安装了kubuntu-desktop,使用kubuntu-desktop时发现,使用其自带的网络管理器,比ubuntu默认的多了一种模式……

作者:oldfeel来源:开源中国|2014-07-23 10:49

【51CTO活动】8.26 带你深度了解清华大学、搜狗基于算法的IT运维实践与探索


方法一:

以前一直没有成功在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/连接电脑上的服务器了。。(欧朋浏览器迷你版打不开...郁闷了半天。。)

原文链接:http://my.oschina.net/oldfeel/blog/292264

【编辑推荐】

  1. 如何在 Ubuntu 上搭建 Ghost 博客平台?
  2. 如何在Ubuntu上配置Tomcat集群?
  3. Ubuntu 14.04:Canonical是否在这款系统身上寄托了太多?
  4. 教你在Ubuntu上体验Mac风格
【责任编辑:牛小雨 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

热门职位+更多

读 书 +更多

鸟哥的Linux私房菜——服务器架设篇(第二版)

本书是对连续三年蝉联畅销书排行榜前10名的《Linux鸟哥私房菜——服务器架设篇》的升级版,新版本根据目前服务器与网络环境做了大幅度修订...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Python一种神奇的语言