第 30 章 PPP

如果发现翻译错误,请直接 发起PR修改

30.1. 简介

FreeBSD 支持点对点( PPP )协议,可以使用拨号调制解调器建立网络或互联网连接。本章介绍了如何在 FreeBSD 中配置基于调制解调器的通信服务。

阅读完本章后,您将了解:

  • 如何配置、使用和排除故障 PPP 连接。

  • 如何设置以太网上的 PPP ( PPPoE )。

  • 如何设置 PPP over ATM ( PPPoA )。

在阅读本章之前,您应该:

  • 熟悉基本的网络术语。

  • 了解拨号连接和 PPP 的基本原理和目的。

30.2. 配置 PPP

FreeBSD 提供了内置的支持,用于使用 ppp(8) 管理拨号 PPP 连接。默认的 FreeBSD 内核提供了对 .tun 文件的支持,该文件用于与调制解调器硬件进行交互。配置是通过编辑至少一个配置文件来完成的,并且提供了包含示例的配置文件。最后,使用 ppp 来启动和管理连接。

为了使用 PPP 连接,需要以下物品:

  • 一个拨号上网账户,由互联网服务提供商( ISP )提供。

  • 一个拨号调制解调器。

  • ISP 的拨号号码。

  • 由 ISP 分配的登录名和密码。

  • 一个或多个 DNS 服务器的 IP 地址。通常,这些地址由 ISP 提供。如果没有提供, FreeBSD 可以配置为使用 DNS 协商。

如果缺少任何必要的信息,请联系互联网服务提供商。

以下信息可能由 ISP 提供,但并非必需:

  • 默认网关的 IP 地址。如果这个信息未知, ISP 将在连接设置过程中自动提供正确的值。在 FreeBSD 上配置 PPP 时,这个地址被称为 HISADDR

  • 子网掩码。如果 ISP 没有提供子网掩码,则在 ppp(8) 配置文件中将使用 255.255.255.255

    如果 ISP 分配了静态 IP 地址和主机名,则应将其输入到配置文件中。否则,在连接设置期间,此信息将自动提供。

本节的其余部分演示了如何配置 FreeBSD 以适应常见的 PPP 连接场景。所需的配置文件是 [/etc/ppp/ppp.conf] ,其他文件和示例可在 [/usr/share/examples/ppp/] 中找到。

在本节中,许多文件示例都显示了行号。这些行号是为了更容易跟踪讨论而添加的,并不是要放在实际文件中。

在编辑配置文件时,正确的缩进非常重要。以 : 结尾的行应该从第一列(行的开头)开始,而其他所有行都应该按照所示使用空格或制表符进行缩进。

30.2.1. 基本配置

为了配置 PPP 连接,首先使用 ISP 的拨入信息编辑 [/etc/ppp/ppp.conf] 文件。该文件的描述如下:

1     default:
2       set log Phase Chat LCP IPCP CCP tun command
3       ident user-ppp VERSION
4       set device /dev/cuau0
5       set speed 115200
6       set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7                 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8       set timeout 180
9       enable dns
10
11    provider:
12      set phone "(123) 456 7890"
13      set authname foo
14      set authkey bar
15      set timeout 300
16      set ifaddr x.x.x.x/0 y.y.y.y/0 255.255.255.255 0.0.0.0
17      add default HISADDR
第一行

识别 default 条目。当运行 ppp 时,该条目中的命令(第 2 到 9 行)会自动执行。

第 2 行

启用详细日志记录参数以测试连接。一旦配置正常工作,此行应缩减为:

set log phase tun
第三行

显示与连接另一端运行的 PPP 软件的 ppp(8) 版本。

第 4 行

标识了调制解调器连接的设备,其中 COM1/dev/cuau0 ,而 COM2/dev/cuau1

第 5 行

设置连接速度。如果在旧调制解调器上 115200 不起作用,请尝试使用 38400

第 6 行和第 7 行

将拨号字符串写成期望 - 发送语法。有关更多信息,请参阅 chat(8)

请注意,为了提高可读性,该命令会继续到下一行。如果行的最后一个字符是 ` \ ` ,则 ppp.conf 中的任何命令都可以这样做。

第 8 行

设置链接的空闲超时时间,单位为秒。

第 9 行

指示对等方确认 DNS 设置。如果本地网络正在运行自己的 DNS 服务器,则应该将此行注释掉,方法是在行首添加“ # +”,或者将其删除。

第 10 行

为了提高可读性而留下的空行。空行在 ppp(8) 中会被忽略。

第 11 行

标识一个名为 provider 的条目。可以将其更改为 ISP 的名称,以便可以使用 load ISP 来启动连接。

第 12 行

使用 ISP 的电话号码。可以使用冒号( : )或竖线字符( ` | ` )作为分隔符来指定多个电话号码。要循环使用这些号码,请使用冒号。要始终首先尝试拨打第一个号码,并且只有在第一个号码失败时才使用其他号码,请使用竖线字符。始终使用引号( " )将整组电话号码括起来,以防止拨号失败。

第 13 行和第 14 行

使用 ISP 的用户名和密码。

第 15 行

设置连接的默认空闲超时时间(以秒为单位)。在此示例中,连接在 300 秒的不活动后将自动关闭。要防止超时,将此值设置为零。

第 16 行

设置接口地址。使用的值取决于是否从 ISP 获取了静态 IP 地址,还是在连接过程中协商动态 IP 地址。

如果 ISP 分配了静态 IP 地址和默认网关,请将_x.x.x.x_替换为静态 IP 地址,并将_y.y.y.y_替换为默认网关的 IP 地址。如果 ISP 只提供了静态 IP 地址而没有网关地址,请将_y.y.y.y_替换为 10.0.0.2/0

如果每次建立连接时 IP 地址都会更改,请将此行更改为以下值。这告诉 ppp(8) 使用 IP 配置协议( IPCP )来协商动态 IP 地址:

set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0
第 17 行

保持这行不变,因为它会向网关添加一个默认路由。 HISADDR 将自动替换为第 16 行指定的网关地址。重要的是,这行出现在第 16 行之后。

根据 ppp(8) 是手动启动还是自动启动,可能还需要创建一个 .filename#/etc/ppp/ppp.linkup# 文件,其中包含以下内容。在以 -auto 模式运行 ppp 时,需要此文件。此文件在连接建立后使用。此时, IP 地址已被分配,现在可以添加路由表条目。创建此文件时,请确保_provider_与 .filename#ppp.conf# 的第 11 行中演示的值匹配。

provider:
      add default HISADDR

当在静态 IP 地址配置中“猜测”默认网关地址时,也需要此文件。在这种情况下,从 ppp.conf 中删除第 17 行,并创建包含上述两行的 /etc/ppp/ppp.linkup 文件。有关此文件的更多示例可以在 /usr/share/examples/ppp/ 中找到。

默认情况下, ppp 必须以 root 用户身份运行。要更改此默认设置,请将应该运行 ppp 的用户的帐户添加到 /etc/group 文件中的 network 组中。

然后,使用 allow 命令给用户访问 /etc/ppp/ppp.conf 中的一个或多个条目的权限。例如,要给 fredmary 只能访问 provider: 条目的权限,在 provider: 部分添加以下行:

allow users fred mary

将指定用户授予对所有条目的访问权限,请将该行放在 default 部分中。

30.2.2. 高级配置

可以配置 PPP 在需要时提供 DNS 和 NetBIOS 名称服务器地址。

要在 PPP 版本 1.x 中启用这些扩展功能,可以将以下行添加到 /etc/ppp/ppp.conf 的相关部分。

enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5

对于 PPP 版本 2 及以上:

accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5

这将向客户端提供主要和次要的名称服务器地址,以及一个 NetBIOS 名称服务器主机。

在 2 版本及以上,如果省略了 set dns 行, PPP 将使用在 /etc/resolv.conf 中找到的值。

30.2.2.1. PAP 和 CHAP 身份验证

一些互联网服务提供商( ISP )设置他们的系统,使连接的身份验证部分使用 PAP 或 CHAP 身份验证机制之一完成。如果是这种情况, ISP 在连接时不会提供“ login: ”提示,而是立即开始使用 PPP 进行通信。

PAP 比 CHAP 安全性较低,但通常情况下安全性并不是一个问题,因为密码虽然以明文形式通过 PAP 发送,但只是通过串行线传输。破解者很难进行“窃听”。

必须进行以下修改:

13      set authname MyUserName
14      set authkey MyPassword
15      set login
第 13 行

这行指定了 PAP/CHAP 用户名。请插入正确的值作为_MyUserName_。

第 14 行

这行指定了 PAP/CHAP 密码。请插入正确的值作为_MyPassword_。您可能还想添加一行额外的内容,例如:

16      accept PAP

或者

16      accept CHAP

为了明确这是意图,但是默认情况下, PAP 和 CHAP 都被接受。

第 15 行

当使用 PAP 或 CHAP 时, ISP 通常不需要登录到服务器。因此,请禁用“ set login ”字符串。

30.2.2.2. 使用 PPP 网络地址转换功能

PPP 具有使用内部 NAT 而无需内核转发功能的能力。可以通过在 /etc/ppp/ppp.conf 文件中添加以下行来启用此功能:

nat enable yes

另外,也可以通过命令行选项 -nat 来启用 NAT 。此外,还有一个名为 ppp_nat/etc/rc.conf 开关,默认情况下是启用的。

在使用此功能时,可以考虑包含以下选项 /etc/ppp/ppp.conf ,以启用传入连接转发:

nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http http

或者完全不信任外界

nat deny_incoming yes

30.2.3. 最终系统配置

虽然 ppp 已经配置好了,但是还需要对 /etc/rc.conf 进行一些编辑。

从上到下逐步操作这个文件,在 `hostname = ` 行上确保已设置:

hostname="foo.example.com"

如果 ISP 提供了静态 IP 地址和名称,请将此名称用作主机名。

查找 network_interfaces 变量。要配置系统按需拨号 ISP ,请确保将 tun0 设备添加到列表中,否则将其删除。

network_interfaces="lo0 tun0"
ifconfig_tun0=

ifconfig_tun0 变量应该为空,并且应该创建一个名为 /etc/start_if.tun0 的文件。该文件应包含以下行:

ppp -auto mysystem

此脚本在网络配置时执行,以自动模式启动 ppp 守护进程。如果此机器充当网关,请考虑包含 -alias 选项。有关详细信息,请参阅手册页。

确保在 /etc/rc.conf 文件中,将路由器程序设置为 NO ,使用以下行:

router_enable="NO"

重要的是不要启动 routed 守护进程,因为 routed 倾向于删除 ppp 创建的默认路由表条目。

确保 sendmail_flags 行不包含 -q 选项可能是一个好主意,否则 sendmail 会不时尝试进行网络查找,可能导致您的机器拨号。您可以尝试:

sendmail_flags="-bd"

缺点是每当 ppp 链接时, sendmail 被迫重新检查邮件队列。为了自动化这个过程,在 ppp.linkup 中包含 ` ! bg` 。

1     provider:
2       delete ALL
3       add 0 0 HISADDR
4       !bg sendmail -bd -q30m

另一种方法是设置一个“ dfilter ”来阻止 SMTP 流量。有关详细信息,请参考示例文件。

30.2.4. 使用 ppp

只剩下重新启动机器了。重新启动后,要么输入:

# ppp

然后执行 dial provider 命令来启动 PPP 会话,或者,要配置 ppp 在有出站流量且 start_if.tun0 不存在时自动建立会话,请输入:

# ppp -auto provider

ppp 程序在后台运行时,可以通过适当设置诊断端口来进行通信。要实现这一点,请将以下行添加到配置中:

set server /var/run/ppp-tun%d DiagnosticPassword 0177

这将告诉 PPP 监听指定的 UNIX® 域套接字,在允许访问之前要求客户端提供指定的密码。名称中的 %d 将被替换为正在使用的 tun 设备号。

一旦建立了一个套接字,可以在希望操作正在运行的程序的脚本中使用 pppctl(8) 程序。

30.2.5. 配置拨入服务

“拨入服务” 提供了使用 getty(8) 启用拨入服务的详细说明。

getty 的替代方案是 comms/mgetty + sendfax (端口),这是 getty 的智能版本,专为拨号线路而设计。

使用 mgetty 的优点是它能够主动与调制解调器进行通信,这意味着如果在 /etc/ttys 中关闭了端口,调制解调器将不会接听电话。

mgetty 的后续版本(从 0.99beta 开始)还支持自动检测 PPP 流,允许客户端无需脚本即可访问服务器。

请参考 http://mgetty.greenie.net/doc/mgetty_toc.html 获取有关 mgetty 的更多信息。

默认情况下, comms/mgetty + sendfax 包的端口带有启用的 AUTO_PPP 选项,允许 mgetty 检测 PPP 连接的 LCP 阶段并自动生成 ppp shell 。然而,由于默认的登录 / 密码序列不会发生,因此需要使用 PAP 或 CHAP 对用户进行身份验证。

本节假设用户已经成功编译并安装了 comms/mgetty + sendfax[] 软件包。

确保 /usr/local/etc/mgetty + sendfax/login.config 包含以下内容:

/AutoPPP/ -     - /etc/ppp/ppp-pap-dialup

这将告诉 mgetty 在检测到 PPP 连接时运行 ppp-pap-dialup

创建一个名为 [/etc/ppp/ppp-pap-dialup] 的可执行文件,其中包含以下内容:

#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENT

对于在 [/etc/ttys] 中启用的每个拨号线路,创建一个相应的条目在 [/etc/ppp/ppp.conf] 中。这将与我们上面创建的定义和谐共存。

pap:
  enable pap
  set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
  enable proxy

使用这种方法登录的每个用户都需要在 /etc/ppp/ppp.secret 中拥有用户名 / 密码,或者可以选择在 /etc/passwd 中添加以下选项以通过 PAP 验证用户。

enable passwdauth

要为一些用户分配静态 IP 地址,请将该数字作为第三个参数指定在 [/etc/ppp/ppp.secret] 中。有关示例,请参见 [/usr/share/examples/ppp/ppp.secret.sample] 。

30.3. PPP 连接故障排除

本节涵盖了在使用调制解调器连接时可能出现的一些问题。一些 ISP 会显示 ssword 提示,而其他人则显示 password 。如果 ppp 脚本没有相应地编写,登录尝试将失败。调试 ppp 连接的最常见方法是按照本节所述手动连接。

30.3.1. 检查设备节点

在使用自定义内核时,请确保在内核配置文件中包含以下行:

device   uart

uart 设备已经包含在 GENERIC 内核中,因此在这种情况下不需要额外的步骤。只需使用以下命令检查 dmesg 输出中的调制解调器设备:

# dmesg | grep uart

这应该显示有关 uart 设备的一些相关输出。这些是我们需要的 COM 端口。如果调制解调器表现得像一个标准串口,它应该会列在 uart1 或者 COM2 上。如果是这样的话,不需要重新编译内核。当进行匹配时,如果调制解调器在 uart1 上,调制解调器设备将会是 /dev/cuau1

30.3.2. 手动连接

通过手动控制 ppp 连接到互联网是快速、简单且调试连接或获取有关 ISP 处理 ppp 客户端连接的信息的好方法。让我们从命令行开始 PPP 。请注意,在我们的所有示例中,我们将使用_example_作为运行 PPP 的机器的主机名。要启动 ppp

# ppp
ppp ON example> set device /dev/cuau1

这个第二个命令将调制解调器设备设置为 cuau1

ppp ON example> set speed 115200

这将连接速度设置为 115 , 200 kbps 。

ppp ON example> enable dns

这将告诉 ppp 配置解析器并将 nameserver 行添加到 /etc/resolv.conf 中。如果 ppp 无法确定主机名,可以稍后手动设置。

ppp ON example> term

这将切换到“终端”模式,以手动控制调制解调器。

deflink: Entering terminal mode on /dev/cuau1
type '~h' for help
at
OK
atdt123456789

使用 at 命令初始化调制解调器,然后使用 atdt 命令和 ISP 的号码开始拨号过程。

CONNECT

如果我们遇到与硬件无关的连接问题,这里是我们尝试解决问题的地方。确认连接。

ISP Login:myusername

在这个提示符下,返回由 ISP 提供的用户名的提示符。

ISP Pass:mypassword

在提示符下,请回复由 ISP 提供的密码。就像登录 FreeBSD 一样,密码不会显示出来。

Shell or PPP:ppp

根据互联网服务提供商的不同,可能不会出现此提示。如果出现了,它会询问是否使用提供商的 shell 或启动 ppp 。在这个例子中,选择了 ppp 以建立互联网连接。

Ppp ON example>

请注意,在这个例子中,第一个 p 已经被大写了。这表明我们已经成功连接到了互联网服务提供商。

Ppp ON example>

我们已经成功通过我们的 ISP 进行了身份验证,并正在等待分配的 IP 地址。

PPP ON example>

我们已经就一个 IP 地址达成协议,并成功完成了连接。

PPP ON example>add default HISADDR

在这里,我们添加了默认路由,我们需要在与外部世界通信之前这样做,因为目前唯一建立的连接是与对等方的连接。如果由于现有路由而失败,请在 add 前面加上感叹号 ` ! ` 。或者,在进行实际连接之前设置这个选项,它将相应地协商一个新的路由。

如果一切顺利,我们现在应该已经建立了与互联网的活动连接,可以使用 CTRL+z 将其置于后台。如果 PPP 返回到 ppp ,则表示连接已丢失。这是很重要的信息,因为它显示了连接状态。大写的 P 表示与互联网服务提供商的连接,小写的 p 表示连接已丢失。

30.3.3. 调试

如果无法建立连接,请使用 set ctsrts off 关闭硬件流控制 CTS/RTS 。这主要发生在连接到一些支持 PPP 的终端服务器时,当 PPP 尝试向通信链路写入数据时, PPP 会挂起并等待一个可能永远不会到来的 CTS 信号。使用此选项时,请包括 set accmap ,因为可能需要打败依赖于从端到端传递某些字符的硬件,大部分时间是 XON/XOFF 。有关此选项及其使用方法的更多信息,请参阅 ppp(8)

一个较旧的调制解调器可能需要设置奇偶校验为“偶校验”。默认情况下,奇偶校验被设置为无校验,但在较旧的调制解调器上,当流量大增时,会用于错误检查。

PPP 可能无法返回到命令模式,这通常是一种协商错误,即 ISP 正在等待协商开始。此时,使用 ` ~ p` 将强制 PPP 开始发送配置信息。

如果登录提示从未出现,则很可能需要进行 PAP 或 CHAP 身份验证。要使用 PAP 或 CHAP ,在进入终端模式之前,请将以下选项添加到 PPP 中:

ppp ON example> set authname myusername

myusername 替换为由 ISP 分配的用户名。

ppp ON example> set authkey mypassword

mypassword 替换为由 ISP 分配的密码。

如果建立了连接,但似乎找不到任何域名,请尝试使用 ping(8) 命令 ping 一个 IP 地址。如果出现 100% 的数据包丢失,很可能是没有设置默认路由。请再次检查在连接期间是否设置了 add default HISADDR 。如果可以连接到远程 IP 地址,可能是因为没有将解析器地址添加到 [/etc/resolv.conf] 文件中。该文件应该如下所示:

domain example.com
nameserver x.x.x.x
nameserver y.y.y.y

_x.x.x.x_和_y.y.y.y_应该替换为 ISP 的 DNS 服务器的 IP 地址。

要配置 syslog(3) 以提供 PPP 连接的日志记录,请确保以下行存在于 /etc/syslog.conf 文件中:

!ppp
*.*     /var/log/ppp.log

30.4. 使用以太网上的点对点协议( PPP over Ethernet , PPPoE )

本节介绍了如何设置以太网上的 PPP ( PPPoE )。

这是一个工作的 ppp.conf 的示例:

default:
  set log Phase tun command # you can add more detailed logging if you wish
  set ifaddr 10.0.0.1/0 10.0.0.2/0

name_of_service_provider:
  set device PPPoE:xl1 # replace xl1 with your Ethernet device
  set authname YOURLOGINNAME
  set authkey YOURPASSWORD
  set dial
  set login
  add default HISADDR

root 身份运行:

# ppp -ddial name_of_service_provider

将以下内容添加到 [/etc/rc.conf] 文件中:

ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"	# if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"

30.4.1. 使用 PPPoE 服务标签

有时候需要使用服务标签来建立连接。服务标签用于区分连接到给定网络的不同 PPPoE 服务器。

任何必需的服务标签信息应该在 ISP 提供的文档中。

作为最后的办法,可以尝试安装 net/rr-pppoe 包或端口。但请记住,这可能会取消您的调制解调器的编程并使其变得无用,所以在执行之前请三思。只需安装随调制解调器一起提供的程序。然后,从程序中访问 System 菜单。配置文件的名称应该在那里列出。通常是_ISP_。

配置文件中的配置项 set device 中,配置文件名(服务标签)将作为 PPPoE 配置项的提供者部分。详细信息请参考 ppp(8) 。配置项应该如下所示:

set device PPPoE:xl1:ISP

不要忘记将_xl1_更改为适合以太网卡的正确设备。

不要忘记将_ISP_更改为配置文件。

有关更多信息,请参阅 Renaud Waldura 的 [使用 FreeBSD 在 DSL 上获得更便宜的宽带] ( http://renaud.waldura.com/doc/freebsd/pppoe/ )。

30.4.2. 使用 3Com® HomeConnect™ ADSL Modem Dual Link 的 PPPoE

该调制解调器不遵循在 RFC 2516 中定义的 PPPoE 规范。

为了使 FreeBSD 能够与该设备通信,必须设置一个 sysctl 。可以通过更新 /etc/sysctl.conf 文件,在启动时自动完成此操作。

net.graph.nonstandard_pppoe=1

或者可以立即使用命令完成:

# sysctl net.graph.nonstandard_pppoe=1

很遗憾,由于这是一个系统级的设置,无法同时与普通的 PPPoE 客户端或服务器以及 3Com® HomeConnect™ ADSL 调制解调器进行通信。

30.5. 使用 ATM 上的 PPP ( PPPoA )

以下是如何设置 PPP over ATM ( PPPoA )的说明。 PPPoA 是欧洲 DSL 提供商中的一种流行选择。

30.5.1. 使用 mpd

mpd 应用程序可以用于连接各种服务,特别是 PPTP 服务。可以使用 net/mpd5 包或端口进行安装。许多 ADSL 调制解调器要求在调制解调器和计算机之间创建一个 PPTP 隧道。

安装完成后,配置 mpd 以适应提供商的设置。端口会提供一组示例配置文件,这些文件在 [/usr/local/etc/mpd/] 目录下有详细的文档。有一份完整的 mpd 配置指南以 HTML 格式提供,位于 [/usr/ports/shared/doc/mpd/] 目录下。以下是连接到 ADSL 服务的 mpd 示例配置。配置分为两个文件,首先是 mpd.conf 文件:

这个例子 mpd.conf 只适用于 mpd 4.x 版本。

default:
    load adsl

adsl:
    new -i ng0 adsl adsl
    set bundle authname username (1)
    set bundle password password (2)
    set bundle disable multilink

    set link no pap acfcomp protocomp
    set link disable chap
    set link accept chap
    set link keep-alive 30 10

    set ipcp no vjcomp
    set ipcp ranges 0.0.0.0/0 0.0.0.0/0

    set iface route default
    set iface disable on-demand
    set iface enable proxy-arp
    set iface idle 0

    open
1 用于与您的 ISP 进行身份验证的用户名。 <.> 用于与您的 ISP 进行身份验证的密码。

关于要建立的链接或链接的信息可以在 mpd.links 中找到。下面是一个与上面示例相配套的 mpd.links 示例:

adsl:
    set link type pptp
    set pptp mode active
    set pptp enable originate outcall
    set pptp self 10.0.0.1 (1)
    set pptp peer 10.0.0.138 (2)
1 运行 mpd 的 FreeBSD 计算机的 IP 地址。 <.> ADSL 调制解调器的 IP 地址。 Alcatel SpeedTouch™ Home 的默认 IP 地址是 10.0.0.138

可以通过以下命令作为“ root ”用户轻松初始化连接。

# mpd -b adsl

查看连接的状态:

% ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
     inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff

使用 mpd 是在 FreeBSD 上连接 ADSL 服务的推荐方法。

30.5.2. 使用 pptpclient

还可以使用 FreeBSD 来连接其他 PPPoA 服务,使用的软件包是: net/pptpclient[] 。

要使用 net/pptpclient 连接到 DSL 服务,请安装端口或包,然后编辑 /etc/ppp/ppp.conf 。下面是一个示例的 ppp.conf 部分。有关 ppp.conf 选项的更多信息,请参阅 ppp(8)

adsl:
 set log phase chat lcp ipcp ccp tun command
 set timeout 0
 enable dns
 set authname username (1)
 set authkey password (2)
 set ifaddr 0 0
 add default HISADDR
1 DSL 供应商的用户名。 <.> 您账户的密码。

由于账户密码以明文形式添加到 ppp.conf 文件中,请确保没有人可以读取此文件的内容:

# chown root:wheel /etc/ppp/ppp.conf
# chmod 600 /etc/ppp/ppp.conf

这将打开一个用于 DSL 路由器的 PPP 会话的隧道。以太网 DSL 调制解调器有一个预配置的 LAN IP 地址用于连接。在 Alcatel SpeedTouch™ Home 的情况下,该地址是 10.0.0.138 。路由器的文档应该列出设备使用的地址。要打开隧道并启动 PPP 会话:

# pptp address adsl

如果在这个命令的末尾添加一个和号("&"), pptp 将返回提示符。

将创建一个名为 tun 的虚拟隧道设备,用于 pptp 和 ppp 进程之间的交互。一旦提示返回,或者 pptp 进程确认连接后,检查隧道:

% ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
        inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
	Opened by PID 918

如果连接失败,请检查路由器的配置,通常可以使用 Web 浏览器访问。此外,检查 pptp 的输出和日志文件 /var/log/ppp.log ,以获取线索。


上次修改时间: September 18, 2024 by fiercex