Wvdial
WvDial 是一个点对点协议拨号器:它拨打调制解调器并启动 ppp 以连接到互联网。
安装
配置
当 wvdial 启动时,它首先从 /etc/wvdial.conf
和 ~/.wvdialrc
加载其配置。如果 /etc/wvdial.conf
不存在,创建它的最简单方法是使用提供的配置实用程序 wvdialconf
# wvdialconf /etc/wvdial.conf
它有助于生成 wvdial 所需的配置文件。wvdialconf 检测您的调制解调器,并自动填写调制解调器、最大波特率和一个良好的初始化字符串(Init 选项),并基于此信息生成或更新 wvdial 配置文件 (/etc/wvdial.conf
)。
如果配置文件已存在,则运行 wvdialconf 是安全的。在这种情况下,只有 [Dialer Defaults] 部分中的 Modem、Baud、Init 和 Init2 选项会被更改,并且仅当自动检测成功时才会更改。
/etc/wvdial.conf
并指定您的互联网帐户的电话号码、登录名和密码,wvdial 才能工作。在您填写完登录信息后,wvdial 应该可以工作了。您可以移动到下一节。但是,对于需要特定 Init 字符串和用户/密码组合的 USB 调制解调器提供商,mkwvconf-gitAUR 可以帮助生成 wvdial 配置(基于 mobile-broadband-provider-info-gitAUR 软件包)。
手动配置后,典型的 /etc/wvdial.conf
看起来像这样
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = Analog Modem ISDN = 0 Modem = /dev/ttyUSB2 Baud = 9600 [Dialer thenet] Phone = *99***1# Username = thenetuser Password = thenetpw ; Username = 9180****** (If your provider use without Username) ; Password = 9180****** (If your provider use without Password) Stupid Mode = 1 Baud = 460800 Init3 = AT+CGDCONT=1,"IP","apn.thenet.net" [Dialer mypin] Init4 = AT+CPIN=1234
用法
有几种不同的方法可以让普通用户使用 wvdial 拨打 ppp 连接。本文档描述了三种不同的方法,它们在设置难度和对安全性的影响方面各不相同。
wvdial 需要以 root 身份运行,使用以下命令
# wvdial option
如果您没有添加节或 /etc/wvdial.conf
是自动生成的,请将 option 留空。
# wvdial
suid
由于默认情况下普通用户无法使用 wvdial 拨打 PPP 连接,请更改权限
# chmod u+s /usr/bin/wvdial
您应该看到以下权限
# ls -l /usr/bin/wvdial -rwsr-xr-x 1 root root 114368 2005-12-07 19:21 /usr/bin/wvdial
组
另一种稍微安全的方式是设置一个名为 dialout
的组(根据喜好调用该组),并授予该组的成员以 root 身份运行 wvdial 的权限。
首先创建组并将用户添加到其中
# groupadd dialout # gpasswd -a username dialout
然后设置组并调整 wvdial 的权限
# chgrp dialout /usr/bin/wvdial # chmod u+s,o= /usr/bin/wvdial
文件应具有以下权限
$ ls -l /usr/bin/wvdial
-rwsr-x--- 1 root dialout 114368 2005-12-07 19:21 /usr/bin/wvdial
sudo
sudo 可以说是最安全的选项,允许普通用户使用 wvdial 建立拨号连接。它可以用于按用户和组授予权限。使用 sudo 的另一个好处是只需要设置一次;当安装 wvdial 的新软件包时,之前的两种解决方案都将被“撤消”。
使用 visudo 编辑文件 /etc/sudoers
# visudo
要授予特定用户以 root 身份运行 wvdial 的权限,请添加以下行(更改用户名)
username localhost = /usr/bin/wvdial
要授予组(在本例中为 dialout
)的所有成员相同的权限
%dialout localhost = /usr/bin/wvdial
如果 ip addr
显示 pppd 条目,则表示会话已准备就绪。
技巧与提示
以下内容适用于 USB 调制解调器。
连接速度慢
自动重连
如果 wvdial 随机断开连接,您可以使用以下脚本
#! /bin/bash ( while : ; do wvdial sleep 10 done ) &
多个设备
通常会有多个设备(例如,在 /dev/ttyUSB0
、/dev/ttyUSB1
、/dev/ttyUSB2
)。如果不确定使用哪个,请依次尝试每个设备,或使用 /dev/gsmmodem
(usb_modeswitch 设置的链接),它应该指向正确的设备。配置好配置文件后,通过运行以下命令建立互联网连接
$ wvdial options
如果需要,可以将其他设置命令放在像这样的简单脚本中
usb_modeswitch sleep 2 modprobe usbserial vendor=0xVVVV product=0xMMMM maxSize=4096 sleep 2 wvdial thenet
其中 VVVV 是来自 lsusb 的十六进制供应商 ID,MMMM 是处于调制解调器模式时的十六进制产品 ID,而 “thenet” 是您希望使用的 wvdial.conf
中节的名称。 maxSize 选项可能是也可能不是必需的。如果您禁用 SIM PIN,事情会变得简单,但如果您需要它,请在 wvdial thenet
之前运行 wvdial mypin
。
最终的 wvdial 命令应该启动 pppd,并且获得的 IP 地址应该在终端输出中可见。此时,互联网连接应该已激活,可以通过 Web 浏览器或 ping 外部 IP 地址轻松检查。