文档章节

在 Cubieboard 上搭建 SoftAP 热点,并通过 OpenVPN 科学上网

cubieboard
 cubieboard
发布于 2014/08/14 17:38
字数 1253
阅读 1059
收藏 2

http://www.kochiyaocean.org/linux-set-softap-using-hostapd/


在下使用的平台是 CubieTruck ,ROM 是 Cubian (Debian Wheezy),进程管理工具是 sysvinit。

文中标注为红色的是需要注意的地方,蓝色部分则可以按需求修改

确定网卡支持

首先要确定网卡是否支持 SoftAP。

安装 iw :

# apt-get install iw

然后使用 iw 查看网卡情况

# iw list
……
Supported interface modes:
……
managed
……
AP
……

如果看到了这样的内容,恭喜你,你的设备支持 SoftAP。


之后可以通过 lsusb 命令来确认网卡的芯片。如果是瑞昱(rtlxxxx)的芯片的话则需要瑞昱提供的 hostapd 才能使用


在 昱官方网站 下载 Linux 驱动包,使用里面的 hostapd 源代码编译并安装,使用自带的配置就能驱动了~

这里 提供了一个自动编译安装瑞昱特制版 hostapd 的脚本,不过在下没有亲自试过

如果需要购买网卡的话推荐腾达 wm311+,这个网卡的芯片是 RT3070,不用特殊编译就能使用~


然后确定 interface 名称:

# ifconfig
eth0      Link encap:Ethernet  HWaddr c0:b0:d0:4a:56:b1
……
lo        Link encap:Local Loopback
……
wlan0     Link encap:Ethernet  HWaddr 00:22:f4:f8:c3:89
……

一般来说有线网卡是 eth0,无线网卡是 wlan0 ,不过也有可能不同。记下它们。


配置 Hostapd

# apt-get install hostapd
# vim /etc/hostapd/hostapd.conf

输入以下内容:

interface= wlan0 #interface 名称
ssid= yourssid #SoftAP 的名称,按需修改
channel= 11
wpa= 2 #选 1 是 WPA,2 是 WPA2,3 是 WPA/WPA2 ,其实都可以啦
wpa_passphrase= yourpasswd #密码,同样按需修改
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP #不使用 TKIP 是因为 802.11n 不支持
rsn_pairwise=CCMP
driver=nl80211
hw_mode=g
wpa_ptk_rekey= 600
ieee80211n= 1 #如果你的网卡不支持 802.11n 就不要输入这个了。

保存后编辑默认配置文件:

# vim /etc/default/hostapd

加入这一行:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

保存然后启动服务就行了

# service hostapd start

不出意外的话你已经可以搜到你设置的热点了。


架设 DHCP 并进行 NAT 转发

虽然热点已经出来了,但是连接的话是会卡在获得 ip 地址的阶段的。所以我们需要架设 DHCP 服务器端。

首先给无线网卡分配地址(很多人连不上热点就是因为没有分配 ip 地址,所以请务必不要忘记这一步!)

# ip addr add  192.168.1.1/24 dev  wlan0

可以按照需求来修改 ip 地址。然后把这个命令加入开机脚本 /etc/rc.local

通过修改 /etc/network/interface 更方便而且一劳永逸,这里不多说了


打开 ipv4 内核转发

# vim /etc/sysctl.conf

加入以下内容:

net.ipv4.ip_forward = 1

保存后应用配置

# sysctl -p

然后安装 dnsmasq :

# apt-get install dnsmasq
# vim /etc/dnsmasq.conf

加入以下内容:

interface= wlan0 #interface 名称
bind-interfaces
dhcp-range= 192.168.1.100,192.168.1.200,24h #应该和上面分配的 ip 地址和子网掩码相符
dhcp-option = 6, 8.8.8.8,8.8.4.4 # DNS 地址

保存后启动

# service dnsmasq start

最后打开 nat 转发:

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

同样将这个命令写入 rc.local 使其开机时执行。

这时候连接上热点,应该就可以浏览网页了~


使用 OpenVPN 实现科学上网

在我的上一篇文章 在 VPS 上架设 OpenVPN 上已经介绍了配置服务端的方法。


很多 VPN 服务商也提供了 OpenVPN 的接入方式,由于 OpenVPN 的科学上网效果比 L2TP 和 PPTP 好所以这里以 OpenVPN 为例,L2TP 和 PPTP 的配置与之大同小异。

下载 OpenVPN:

# apt-get install openvpn

将之前拿到的服务器 key、crt 证书和 ca.art 连同写好的 ovpn 文件放入 /etc/openvpn(ovpn 文件改名为 conf 文件)

# vim /etc/default/openvpn

加入以下内容:

AUTOSTART=" cubie" #改成你的配置文件名

保存后启动

# service openvpn start

配置好 nat 转发:

# iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

这样你的客户端就能全局 OpenVPN 翻墙了。


需要注意的是,OpenVPN 在时间不同步的时候是无法连接的,由于 CubieTruck 断电后时间会清空所以在断电之后请务必把时间改成当前时间

架设 ipv6 地址的 DHCP 并配置 NAT 转发

因为 ipv6 的 nat 在 3.7 之后才被集成到 Linux 内核中,而 CubieTruck 的内核版本只有 3.4 ,所以只好等新版本内核了……

配置 ipv6 地址:

# ip addr add  2001:db8:8001:935::1/64 dev  wlan0

打开 ipv6 转发:

# vim /etc/sysctl.conf

加入以下内容:

# sysctl net.ipv6.conf.all.forwarding=1

保存后应用配置

# sysctl -p

安装 radvd:

# apt-get install radvd
# vim /etc/radvd.conf

输入以下内容:

interface  wlan0 {
AdvSendAdvert on;
prefix  2001:db8:8001:935::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};

然后启动 radvd

# service radvd start

最后打开 ipv6 nat 转发

# ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这样你的客户端就能分配到 ipv6 地址并访问 ipv6 网络资源了~


在下水平有限,写的教程可能不够完整,如果有问题的话欢迎联系在下……以上


原文作者:KochiyaOcean
原文链接:http://forum.cubietech.com/forum.php?mod=viewthread&tid=2239&extra=page%3D1

本文转载自:http://forum.cubietech.com/forum.php?mod=viewthread&tid=2239&extra=page%3D1

cubieboard
粉丝 11
博文 64
码字总数 2651
作品 1
珠海
私信 提问
Cubieboard究竟几个意思?

Cubieboard究竟几个意思? Cubieboard是由一支中国珠海的技术团队Cubieteam开发的一个开源MiniPC,有些类似于英国人开发的树莓派,但是在硬件的性能上,接口丰富性上和扩展性上均优于后者,同...

benny0755
2013/08/16
4K
10
Cubieboard团队发布 “cubieboard2双卡版”开源硬件

“cubieboard2双卡版”(英文名:cubieboard2-dualcard,简称CB2-2CARD)是一个cubieboard团队酝酿已久的产物,也是一个为了适应中国国情而推出的一个可玩性更高的开源硬件。在极大地保留了硬...

cubieboard
2014/08/19
151
0
做一个Cubieduino如何(有新内容了)?

今天看到一个东西: http://www.oschina.net/question/116701105771 里面有一段文字 pcDuino是一个平台,是LINUX软件和开源硬件的结合,pcDuino赋予创客力量,只有你有创意就可以用pcDuino做出...

cubieboard
2014/08/28
46
0
我的 Cubieboard ARM 集群

Cubieboard hadoop 集群 hadoop是一个开源分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高 速运算和存储。Hadoop实...

Keepace
2013/08/20
4.1K
4
编译Android 4.0.4(打包出问题)

开发环境Ubuntu 12.04 一、编译准备 1.安装java uestc@uestc-ThinkPad-T43:~/tools$ ls jdk1.6.024 jdk-6u24-linux-i586.bin uestc@uestc-ThinkPad-T43:~/tools$ chmod +x jdk-6u24-linux-i5......

pc朵拉
2013/07/03
842
0

没有更多内容

加载失败,请刷新页面

加载更多

学习记录 java面试题(一)

1. JDK和JRE的区别 JDK是整个JAVA的核心,包括了Java运行环境JRE,一堆Java工具和Java基础的类库。通过JDK开发人员将源码 文件(java文件)编译成字节码文件(class文件)。 JRE是Java运行环境,...

Pole丶逐
27分钟前
7
0
springboot 部署到外部tomcat

入口类继承SpringBootServletInitializer 并重写protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)方法 如下 import org.springframework.boot.SpringApplic......

雷开你的门
33分钟前
4
0
hashCode和equals方法的关系

equals相等,hashcode必相等; hashCode()在哈希表中起作用,如HashSet、HashMap等。 当我们向哈希表(如HashSet、HashMap等)中添加对象object时,首先调用hashCode()方法计算object的哈希码,...

无名氏的程序员
37分钟前
4
0
技术分享 | MySQL 慢查询记录原理和内容解析

作者:高鹏 文章末尾有他著作的《深入理解 MySQL 主从原理 32 讲》,深入透彻理解 MySQL 主从,GTID 相关技术知识。 源码版本:percona 5.7.14 本文为学习记录,可能有误请谅解,也提供了一些...

爱可生
45分钟前
3
0
elementui 树型节点

节点选择时,勾选节点。 提交给后端时,传递 this.$refs.menuTree.getCheckedKeys(); 半选父节点 getHalfCheckedKeys() 不需要提交。...

东东笔记
46分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部