前面已经能够连接上热点了,ip也能获取到了,可是,上不了网,为什么呢??你会发现只有上传的数据,没有下载的数据,那是因为我们没有做地址转换,当数据包经过路由器的时候,他的MAC地址是会变得哦(这个文章有空会写写,最近不知道这么的,突然喜欢上了写博客)
来看看地址转换 使用iptables就OK 了
平时很少看到bz2的压缩包,所以呢,解压的朋友们小心了
#tar jxvf iptables-1.4.20.tar.bz2
因为iptables涉及到的库比较多,所以咱们先创建一个文件夹,待会把iptables安装带这个位置,然后整个文件夹一起拷贝到开发板就OK了
mkdir /iptables/ //我直接在根目录下创建了
进入刚刚解压的目录下
#./configure --prefix=/iptables/ --host=arm-linux
#make
#make install
执行完了以后,你会发现 虚拟机根目录下下的/iptables目录里面有东西了
大概是
bin include lib sbin share
这几个目录,里面会有很多库
那么接下来就简单了,直接把虚拟机根目录下下的/iptables目录拷贝到开发板的根目录下下就行了
先挂载一下,因为拷贝的时候有库的连接关系,如果直接通过samba拷贝到XP再拷贝到开发板可能会有连接关系丢失,所以尽量使用NFS挂载
直接把虚拟机的root目录挂载到开发板的mnt目录了
cp /mnt/iptables / -aR
记得加上-a参数,不然你的数据大了去了
拷贝完了以后就快完事了
添加环境变量,不然找不到命令
通过export在PATH中添加 iptables/bin: iptables/sbin
#iptables -L
可以看到过滤规则,呵呵,当然我们看到的没有规则
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
到这里iptables就移植完成了
差点把正给忘记了,我们移植iptables是干嘛呢
前面说到了,MAC地址转换,来吧,一起来配置一下就OK 了
先 vi /etc/sysctl.conf
加入一行(原来没有这个文件的,那么你就写这一行就行了)
net.ipv4.forward = 1
加入一行(原来没有这个文件的,那么你就写这一行就行了)
net.ipv4.forward = 1
开始配置
#iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE //这里的eth0是你的有线接入网卡名,不要告诉我说你没有这个,那我就HEHE了
#iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT //这个网段注意了,是我们前面DHCP给分配的网段,也就是你无线网卡的IP处的网段
#iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
#sysctl -p
前面四条命令执行完,事情就搞定了
补充一点,iptables是需要内核支持的,如果不行的话,就配置内核
make menuconfig打开内核配置,增加以下内核选项(均选为built-in [*]),保存后,重新编译内核
[*] Networking support --->
Networking options --->
[*] Network packet filtering framework (Netfilter) ---> 这个选项必须选上,否则你不会见到后面的选项
Core Netfilter Configuration ---> 里面所有选项,全选
IP: Netfilter Configuration ---> 里面所有选项,全选
编译内核再下载
make menuconfig打开内核配置,增加以下内核选项(均选为built-in [*]),保存后,重新编译内核
[*] Networking support --->
Networking options --->
[*] Network packet filtering framework (Netfilter) ---> 这个选项必须选上,否则你不会见到后面的选项
Core Netfilter Configuration ---> 里面所有选项,全选
IP: Netfilter Configuration ---> 里面所有选项,全选
编译内核再下载
万事具备,让我们嗨起来吧!
把前面的所有东西都开启
把前面的所有东西都开启
1、启动NATMAC转换
#iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
#iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
#iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
#sysctl -p
2、设置无线网静态IP
#ifconfig wlan1 up 192.168.0.1
3、开启DHCP
#udhcpd -S /etc/udhcpd.conf -f wlan1 &
4、开启hostapd
#./hostapd hostapd.conf
再次用手机连接。。。。。。。。
。。验证成功。。
。。获取IP地址成功。。
上网。。。。。。。。。喝喝
顿时你会发现,你已经有个随身wifi了
上网试试看,来至星星的你,直接跳过,还是《行尸走肉》比较给力
如果有问题,可以探讨一下,也可以探讨一下《行尸走肉》的我们!