Linux系统通过手机GPRS上网的设置教程

来源:岁月联盟 编辑:zhuzhu 时间:2009-05-19
Linux系统通过手机GPRS上网的设置教程内容简介:Linux通过手机上网 1.安装相关软件 sudo apt-get install wvdial 2.得到GPRS的IP地址 (1) 手机调整到usb lan模式,在手机打开一个网页,让它的GPRS连通 (2) 运行 sudo /sbin/ifconfig 确认usb0存在 (3) 运行 su

Linux通过手机上网

    1.安装相关软件
    sudo apt-get install wvdial

    2.得到GPRS的IP地址
    (1)
    手机调整到usb lan模式,在手机打开一个网页,让它的GPRS连通
    (2)
    运行 sudo /sbin/ifconfig
    确认usb0存在
    (3)
    运行 sudo /sbin/ifconfig usb0 192.168.1.1
    配置电脑上的usb0的IP为192.168.1.1
    (4)
    运行 telnet 192.168.1.2
    telnet到手机,其中192.168.1.2为手机usb lan的IP,如下

    $ telnet 192.168.1.2
    Trying 192.168.1.2...
    Connected to 192.168.1.2.
    Escape character is '^]'.

    MontaVista(R) Linux(R) Consumer Electronics Edition 3.1
    Linux/armv5tel 2.4.20_mvlcee31-mainstone_pxa27x
    (none) login: root
    MontaVista(R) Linux(R) Consumer Electronics Edition 3.1

    No directory /root!
    Logging in with home = "/".
    # ifconfig
    gprsv2    Link encap:Point-to-Point Protocol
              inet addr:10.9.139.175  P-t-P:10.112.112.112  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:50
              RX bytes:8991 (8.7 Kb)  TX bytes:5117 (4.9 Kb)

    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:24 errors:0 dropped:0 overruns:0 frame:0
              TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:1392 (1.3 Kb)  TX bytes:1392 (1.3 Kb)

    gprsv2    Link encap:Point-to-Point Protocol
              inet addr:10.10.88.48  P-t-P:10.112.112.112  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:50
              RX bytes:1025 (1.0 Kb)  TX bytes:1023 (1023.0 b)

    # exit
    Connection closed by foreign host.
    $
    (5)
    由(4)得到gprsv2的IP为10.10.88.48,记录下来

    3.为pppd添加GPRS IP
    (1)
    运行 sudo gedit /etc/ppp/options
    在options文件的最后一行添加如下两行内容
    novj
    :10.10.88.48
    其中10.10.88.48为2.(5)所得到的GPRS IP地址

    4.配置/etc/wvdial.conf并连接上网
    (1)
    关掉手机的网页,确认手机上的GPRS连接已经断开
    (2)
    手机调整到usb modem模式
    (3)
    运行 wvdialconf
    检测手机的modem连接是否正常,程序自动创建/etc/wvdial.conf文件,正确情况如下

    $ wvdialconf
    Editing `/etc/wvdial.conf'.

    Scanning your serial ports for a modem.

    WvModem<*1>: Cannot set information for serial port.
    ttyS0<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
    ttyS0<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
    ttyS0<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
    Modem Port Scan<*1>: S1   S2   S3
    WvModem<*1>: Cannot get information for serial port.
    ttyACM0<*1>: ATQ0 V1 E1 -- OK
    ttyACM0<*1>: ATQ0 V1 E1 Z -- OK
    ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK
    ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
    ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
    ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
    ttyACM0<*1>: Modem Identifier: ATI -- ERROR
    ttyACM0<*1>: Speed 4800: AT -- OK
    ttyACM0<*1>: Speed 9600: AT -- OK
    ttyACM0<*1>: Speed 19200: AT -- OK
    ttyACM0<*1>: Speed 38400: AT -- OK
    ttyACM0<*1>: Speed 57600: AT -- OK
    ttyACM0<*1>: Speed 115200: AT -- OK
    ttyACM0<*1>: Speed 230400: AT -- OK
    ttyACM0<*1>: Speed 460800: AT -- OK
    ttyACM0<*1>: Max speed is 460800; that should be safe.
    ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

    Found an USB modem on /dev/ttyACM0.
    Modem configuration written to /etc/wvdial.conf.
    /etc/wvdial.conf<Warn>: Can't write '/etc/wvdial.conf.tmp8517': Permission denied
    /etc/wvdial.conf<Warn>: Can't write '/etc/wvdial.conf' ('/etc/wvdial.conf'): Bad file descriptor
    ttyACM0<Info>: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
    $

    (4)
    运行 sudo gedit /etc/wvdial.conf
    修改其内容,Baud保持4.(3)中程序自动创建的值,Username和Password的值到手机的网络设置查看
    本例使用CMNET连接,文件内容如下

    [Dialer Defaults]
    Init1 = ATZ
    Init2 = AT&FE0V1&C1S0=0
    Init3 = AT+cgdcont=1,"IP","CMNET","",0,0
    Modem Type = USB Modem
    ISDN = 0
    Phone = *99***2#
    New PPPD = yes
    Modem = /dev/ttyACM0
    Username = 172
    Password = 172
    Baud = 460800
    Idle Seconds = 3000
    Auto DNS = 1
    Stupid Mode = 1
    Dial Command = ATD
    Ask Password = 0
    FlowControl = NOFLOW

    (5)
    禁用eth0等网络联连接
    另:如果是在Debian Gnome环境下,右上角的网络连接工具,“启用联网”一项反选

    (6)
    运行 sudo wvdial
    让Linux通过手机上网,正常情况如下

    $ sudo wvdial
    --> WvDial: Internet dialer version 1.60
    --> Cannot get information for serial port.
    --> Initializing modem.
    --> Sending: ATZ
    ATZ
    OK
    --> Sending: AT&FE0V1&C1S0=0
    AT&FE0V1&C1S0=0
    OK
    --> Sending: AT+cgdcont=1,"IP","CMNET","",0,0
    OK
    --> Modem initialized.
    --> Idle Seconds = 3000, disabling automatic reconnect.
    --> Sending: ATD*99***2#
    --> Waiting for carrier.
    CONNECT
    --> Carrier detected.  Starting PPP immediately.
    --> Starting pppd at Mon May 18 21:16:57 2009
    --> Pid of pppd: 8931
    --> Using interface ppp0
    --> pppd: [10][18]1
    --> pppd: [10][18]1
    --> pppd: [10][18]1
    --> pppd: [10][18]1
    --> pppd: [10][18]1
    --> local  IP address 10.55.0.37
    --> pppd: [10][18]1
    --> remote IP address 10.10.88.48
    --> pppd: [10][18]1
    --> primary   DNS address 211.136.20.203
    --> pppd: [10][18]1
    --> secondary DNS address 211.136.17.107
    --> pppd: [10][18]1

    收到local IP address说明网络连接成功,终端里按Ctrl+C终止网络连接

    (7)
    验证上网效果

    $ sudo /sbin/ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:F0:CF:81:F7:00
              inet6 addr: 2001:da8:2004:2009:2f0:cfff:fe81:f700/64 Scope:Global
              inet6 addr: fe80::2f0:cfff:fe81:f700/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:79280 errors:0 dropped:0 overruns:0 frame:0
              TX packets:9418 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:14814054 (14.1 MiB)  TX bytes:1465054 (1.3 MiB)
              Interrupt:16 Base address:0xc000

    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:875 errors:0 dropped:0 overruns:0 frame:0
              TX packets:875 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:132997 (129.8 KiB)  TX bytes:132997 (129.8 KiB)

    ppp0      Link encap:Point-to-Point Protocol
              inet addr:10.55.0.37  P-t-P:10.10.88.48  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
              RX packets:7 errors:0 dropped:0 overruns:0 frame:0
              TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:3
              RX bytes:208 (208.0 b)  TX bytes:315 (315.0 b)

    $ ping g.cn
    PING g.cn (203.208.35.100) 56(84) bytes of data.
    64 bytes from bj-in-f100.google.com (203.208.35.100): icmp_seq=1 ttl=244 time=935 ms
    64 bytes from bj-in-f100.google.com (203.208.35.100): icmp_seq=2 ttl=244 time=797 ms
    64 bytes from bj-in-f100.google.com (203.208.35.100): icmp_seq=3 ttl=244 time=838 ms
    64 bytes from bj-in-f100.google.com (203.208.35.100): icmp_seq=4 ttl=244 time=777 ms
    64 bytes from bj-in-f100.google.com (203.208.35.100): icmp_seq=5 ttl=244 time=817 ms
    ^C
    --- g.cn ping statistics ---
    6 packets transmitted, 5 received, 16% packet loss, time 6602ms
    rtt min/avg/max/mdev = 777.885/833.525/935.830/55.015 ms
    $