由于在开发A1200上的流媒体播放器,免不了长期播放视频,进行稳定性测试。开始是通过GPRS拨号上网,但播放视频太费流量了,充个50元,都顶不住一天的测试。看到window mobile的手机都可以通过PC上网,因此想到moto linux手机也可以共享PC上网,节省流量费用。从理论上将是可行的,因为moto手机可以开启USB LAN,通过USB连接线与PC组成一个局域网。PC相当于具有两个网卡,只要开启路由功能即可。在网上查找了一些资料后,终于配置成功,现将配置过程分享一下。
环境:
PC操作系统: Ubuntu 9.10. 网卡eth0 IP 10.8.8.175 netmask 255.255.255.0 gateway 10.8.8.1
手机: Moto A1200,已开启USB LAN,已启动telnet服务
步骤:
echo "1">/proc/sys/net/ipv4/ip_forward
但在我的系统上运行却总是报错:
martianchem@martianchem-laptop:~$ echo "1">/proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied
martianchem@martianchem-laptop:~$ sudo echo "1">/proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied
所以采用另外一个方法,打开/etc/sysctl.conf文件,找到net.ipv4.ip_forward = 1这一行,去掉前面的注释符, 然后运行如下命令即时生效
sudo sysctl -p
sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
为了避免每次重启都需要输入命令,将上面的四条命令加入/etc/rc.local文件
./busybox route add default gw 192.168.1.1
添加路由后,如果可以ping通PC机的网关10.8.8.1,证明PC的NAT和手机的缺省路由添加成功。
# ping 10.8.8.1
PING 10.8.8.1 (10.8.8.1) from 192.168.1.2 : 56(84) bytes of data.
64 bytes from 10.8.8.1: icmp_seq=1 ttl=63 time=3.03 ms
64 bytes from 10.8.8.1: icmp_seq=2 ttl=63 time=3.75 ms
# ping www.sina.comPING newswh.sina.com.cn (59.175.132.68) from 192.168.1.2 : 56(84) bytes of data.