Moto Linux應用開發(六):USB連接共享PC上網

由於在開發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服務

步驟:

  • 手機通過USB連接到PC後,會連接一個網卡設備usb0, 配置其IP爲192.168.1.1,手機自行分配的IP地址爲192.168.1.2。可以在PC上telnet 192.168.1.2,確定USB LAN工作正常;
  • 開啓PC的IP轉發功能,網上都說如下命令即可完成

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

  • 輸入如下命令,開啓NAT

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文件

  • 爲手機添加路由。這是一個比較麻煩的工作,因爲在moto linux下並沒有route命令。上網下載busybox的源碼,使用工具鏈交叉編譯,下載到手機,telnet到手機,運行如下命令: 

./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

  • 修改手機DNS。如果要能正常訪問www.csdn.net這樣的網址,還需要DNS解析。我們知道,linux下的DNS配置位於/etc/resolv.conf文件,但非常不幸的是,這個文件指定的nameserver爲127.0.0.1,而且/etc/下的文件還不能修改。從網上找到的答案是複製/etc/下的文件到/ezxlocal/etc/, 然後通過mount --bind /ezxlocal/etc /etc命令,這樣再訪問/etc/下的文件實際上就是訪問的/ezxlocal/etc/下的文件,而/ezxlocal/etc/下的文件是可以修改的。將/etc/resolv.conf中的內容改成nameserver 192.168.1.1。這時再ping www.sina.com,提示爲
# ping www.sina.com
PING newswh.sina.com.cn (59.175.132.68) from 192.168.1.2 : 56(84) bytes of data.
          雖然還是沒能ping通,但是可以看到域名解析是正確的。
至此,配置過程完成。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章