Linux 拨号服务器搭建与网络故障排查指南
1. 运行 Linux 拨号服务器的基础配置
在运行 Linux 拨号服务器之前,需要进行一些基础的文件权限和配置设置:
1.
设置 chap - secrets 和 pap - secrets 文件权限
:确保
/etc/ppp/chap - secrets
和
/etc/ppp/pap - secrets
仅对所有者和所属组可读写。使用以下命令:
# chmod 0660 /etc/ppp/chap - secrets /etc/ppp/pap - secrets
-
检查 /var/lock 目录权限
:该目录应向所有用户开放,并设置粘滞位。使用
ls -ld /var/lock检查,如果不符合要求,使用以下命令修改:
# chmod 1777 /var/lock
-
设置 pppd 为 suid
:
pppd需要设置为 suid 以允许普通用户以 root 权限运行。使用ls -l /usr/sbin/pppd检查,如果不符合要求,使用以下命令修改:
# chmod 4754 /usr/sbin/pppd
需要注意的是,如果文件的所属组是 root,不要将用户添加到 root 组,应将所属组改为
dialout
或其他合适的组。当看到日志文件中抱怨 “Warning—secret file /etc/ppp/pap - secrets has world and/or group access” 时,确保文件不是全局可读的,并谨慎管理
dialout
组的成员。
2. 为非 root 用户创建 WvDial 账户
如果你希望用户拥有自己的私有拨号账户,且配置文件存储在他们自己的主目录中,可以按照以下步骤操作:
1. 确保所有必要的权限和组所有权已按照前面的基础配置进行设置。
2. 以用户身份创建新的配置文件,使用
--config
选项指定用户个人配置文件的位置:
$ wvdialconf --config ~/.wvdialrc
配置文件可以使用任何名称,使用
.wvdialrc
作为默认名称时,使用
wvdial
命令无需选项即可调用。如果有多个账户,可以使用
Dialer
部分创建,并按照以下方式调用:
- 调用默认配置文件中的账户:
$ wvdial ISP2
- 调用非默认名称的配置文件:
$ wvdial --config ~/dialup
- 调用非默认名称配置文件中的特定账户:
$ wvdialconf --config ~/dialup ISP1
有些用户喜欢使用桌面图标而不是运行 shell 命令,可以根据他们使用的桌面环境的文档创建图标。对于简单的个人拨号账户,像 KPPP 和 GnomePPP 这样的图形化工具很方便,但通常仍需要手动编辑
/etc/ppp/options
或其他 ppp 文件,常见的是将
/etc/ppp/options
中的
auth
选项替换为
noauth
。
3. 共享拨号互联网账户
当有少量用户需要共享一个拨号互联网账户时,可以使用一台旧 PC 作为互联网网关,具体步骤如下:
1.
准备工作
:
- 拨号服务器需要一个调制解调器。
- 使用 WvDial、KPPP 或 Gnome - PPP 等程序配置拨号网络。
2.
设置步骤
:
- 将调制解调器连接到电话线,设置拨号账户,但暂时不要将网关设备连接到局域网。
- 从命令行运行以下 iptables 规则:
# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# echo "1" > /proc/sys/net/ipv4/ip_forward
将网关设备连接到局域网后,所有用户即可共享连接。但这种设置没有任何安全性,且重启后规则不会保留,需要将这些规则添加到适当的 iptables 防火墙脚本中。
4. 设置按需拨号
如果你不想一直监控共享拨号连接,或者不想让它一直保持开启状态,可以设置按需拨号,步骤如下:
1. 确保 WvDial 和 ppp 能可靠运行。
2. 创建
/etc/ppp/peers/demand
文件,内容如下:
noauth
name wvdial
usepeerdns
connect "/usr/bin/wvdial --chat ISP1"
/dev/ttyS2
115200
modem
crtscts
defaultroute
noipdefault
user alrac@isp.net
idle 300
persist
demand
logfd 6
-
使用
pon命令启动按需拨号服务器:
# pon demand
它不会立即拨号,而是等待用户尝试连接互联网时才会拨号。可以使用
ps ax | grep pppd
验证
pppd
守护进程是否已启动。使用
poff
命令关闭连接:
# poff
/etc/ppp/peers/demand
文件可以使用任何名称,
pon
表示 “pppd on”,
poff
表示 “pppd off”。
demand
选项准备 pppd 链接,
persist
选项使链接在没有数据包流动时保持打开,
idle 300
表示连接在 300 秒无活动后关闭。
5. 使用 cron 调度拨号可用性
如果你想在夜间和周末完全关闭拨号活动,可以使用简单的 cron 作业来实现。如果你使用按需拨号,以 root 身份创建 crontab:
# crontab -e
在编辑器中添加以下内容:
00 6 * * 1 - 5 /usr/bin/pon demand
00 20 * * 1 - 5 /usr/bin/poff
保存文件并退出编辑器。这个例子会在每天早上 6 点启动按需拨号,晚上 8 点关闭。可以使用
# crontab -l
验证新规则。
crontab 的字段含义如下:
| 字段 | 允许的值 |
| ---- | ---- |
| minute | 0 - 59 |
| hour | 0 - 23 |
| day of month | 1 - 31 |
| month | 1 - 12(或名称) |
| day of week | 0 - 7(0 或 7 是周日,或使用名称) |
如果你不使用按需拨号,也可以使用 WvDial 命令:
# crontab -e
添加以下内容:
00 6 * * 1 - 5 /usr/bin/wvdial filename
00 20 * * 1 - 5 kill `pidof wvdial`
6. 解决拨号过程中的常见问题
在拨号过程中,可能会遇到一些常见问题,以下是相应的解决方法:
1.
拨号音问题
:当语音信箱有消息时,拨号音会变成断续音,调制解调器会认为没有拨号音而不拨号。可以在
/etc/wvdial.conf
中添加或修改以下行:
Abort on No Dialtone = no
为了监控拨号过程,可以在
/etc/wvdial.conf
的
Init2
行添加以下选项来调高调制解调器扬声器音量:
M1 L3
-
呼叫等待问题
:如果电话线有呼叫等待功能,当在线时接到电话会影响连接。可以在
/etc/wvdial.conf中禁用呼叫等待:
- 全局禁用:
Dial Prefix = *70,
- 按电话号码禁用:
Phone = *70,1234567
-
密码安全问题
:如果你不想将拨号账户密码以明文形式存储在 WvDial 配置文件中,可以在配置文件中添加
Ask Password = yes选项:
[Dialer Defaults]
Modem = /dev/ttyS3
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 &C1 &D2 +FCLASS = 0
ISDN = 0
Modem Type = Analog Modem
Dial Attempts = 10
[Dialer ISP1]
Stupid Mode = on
Phone = 1234567
Username = alrac
Ask Password = yes
Idle Seconds = 600
登录时会提示输入密码,但这种方法不适合拨号服务器。
4.
日志文件问题
:如果所有的
pppd
消息都被倾倒到
/var/log/messages
中,导致混乱,可以将它们输出到单独的文件中。首先创建日志文件:
# touch /var/log/ppp
然后在
/etc/ppp/options
中添加
logfile
选项:
logfile /var/log/ppp
删除任何对
logfd
的引用,因为这两个选项是互斥的。
7. 网络故障排查工具与方法
Linux 提供了许多用于排查网络问题的软件工具,主要包括
ping
、
tcpdump
、
Wireshark
和
ngrep
。
ping
仍然是检查连通性的首要工具,而
tcpdump
、
Wireshark
和
ngrep
可以捕获和读取网络上传输的数据包。当不知道是硬件还是软件问题时,先运行这些工具来缩小问题范围。
在测试和追踪电缆时,可以使用以下工具:
-
基本万用表
:用于查找短路和断路、测试连续性和衰减,以及确定电线是否正确端接。
-
电源插座测试仪
:插入电源插座,通过 LED 指示灯判断插座是否正常。
-
连续性测试仪
:用于测试已安装的电缆,有些还带有用于追踪电缆的音调发生器。
-
“狐狸和猎犬对”
:即音调发生器和放大器对,用于追踪墙壁内的电缆问题。
在排查网络故障时,不要忘记准备备用的集线器、交换机和补丁电缆。使用便携式网络管理员笔记本电脑进行测试可以快速确定问题所在。
8. 构建网络诊断和修复笔记本电脑
如果你想将一台旧笔记本电脑设置为便携式网络诊断站,可以安装以下工具:
-
ping
:用于检查网络连通性。
-
tcpdump
:用于捕获和分析网络数据包。
-
Wireshark
:强大的网络协议分析器。
-
ngrep
:用于在网络数据包中进行模式匹配。
-
日志查看工具
:用于查看系统和应用程序的日志文件。
同时,还可以安装一些用于测试和追踪电缆的工具,如万用表、电源插座测试仪等。
mermaid 流程图
graph TD;
A[运行 Linux 拨号服务器] --> B[基础配置];
B --> C[为非 root 用户创建 WvDial 账户];
B --> D[共享拨号互联网账户];
D --> E[设置按需拨号];
E --> F[使用 cron 调度拨号可用性];
B --> G[解决拨号常见问题];
H[网络故障排查] --> I[使用工具缩小范围];
H --> J[测试和追踪电缆];
K[构建诊断笔记本电脑] --> L[安装必备工具];
通过以上步骤和方法,你可以搭建一个稳定的 Linux 拨号服务器,并有效地排查和解决网络故障。在实际操作中,根据具体情况选择合适的工具和方法,确保网络的正常运行。
9. 网络故障排查的深入分析
在使用上述网络故障排查工具时,我们可以进一步深入分析它们的使用场景和操作技巧。
9.1 ping 工具
ping
是最基础也是最常用的网络连通性检查工具。其基本使用方法如下:
ping [目标地址]
例如,要检查与
www.example.com
的连通性,可以使用:
ping www.example.com
如果能够收到回复,说明网络连接基本正常;如果没有任何响应,可能存在网络中断、目标主机不可达等问题。
还可以使用
-c
选项指定发送的数据包数量,使用
-i
选项指定发送数据包的时间间隔。例如,发送 5 个数据包,间隔 2 秒:
ping -c 5 -i 2 www.example.com
9.2 tcpdump 工具
tcpdump
是一个强大的命令行数据包捕获工具。以下是一些常见的使用示例:
- 捕获指定网络接口(如
eth0
)上的所有数据包:
tcpdump -i eth0
- 捕获指定 IP 地址之间的数据包:
tcpdump host 192.168.1.100 and 192.168.1.101
- 捕获指定端口的数据包:
tcpdump port 80
- 将捕获的数据包保存到文件中:
tcpdump -i eth0 -w packets.pcap
9.3 Wireshark 工具
Wireshark 是一个图形化的网络协议分析器,它可以直观地显示捕获的数据包的详细信息。使用步骤如下:
1. 启动 Wireshark 程序。
2. 选择要捕获数据包的网络接口。
3. 点击开始捕获按钮,开始捕获数据包。
4. 捕获完成后,可以对数据包进行过滤、分析等操作。
例如,可以使用过滤表达式
ip.src == 192.168.1.100
来只显示源 IP 地址为
192.168.1.100
的数据包。
9.4 ngrep 工具
ngrep
可以在网络数据包中进行模式匹配。例如,查找包含特定字符串(如
example
)的数据包:
ngrep -d eth0 example
10. 网络故障排查的流程总结
为了更高效地排查网络故障,可以遵循以下流程:
1.
初步检查
:检查硬件连接是否正常,如电缆是否插好、设备是否通电等。
2.
使用 ping 工具
:检查网络连通性,确定问题是否出在网络连接上。
3.
使用数据包捕获工具
:使用
tcpdump
、Wireshark 或
ngrep
捕获和分析数据包,查找可能的问题。
4.
查看日志文件
:查看系统和应用程序的日志文件,获取更多的错误信息。
5.
逐步排除
:根据上述步骤的结果,逐步排除可能的问题,缩小问题范围。
可以用以下 mermaid 流程图来表示这个流程:
graph LR;
A[初步检查] --> B[使用 ping 工具];
B --> C{连通正常?};
C -- 是 --> D[使用数据包捕获工具];
C -- 否 --> E[检查网络连接];
D --> F[查看日志文件];
F --> G[逐步排除问题];
E --> B;
11. 电缆测试工具的详细使用
前面提到了一些电缆测试工具,下面详细介绍它们的使用方法。
11.1 基本万用表
- 测试连续性 :将万用表调至电阻档,将两个表笔分别连接电缆的两端。如果电阻值接近 0,则表示电缆连通;如果电阻值无穷大,则表示电缆断路。
- 测试电压 :将万用表调至电压档,将两个表笔分别连接电源的正负极。可以测量电源的电压是否正常。
11.2 电源插座测试仪
将电源插座测试仪插入电源插座,观察指示灯的状态。不同的指示灯组合表示不同的插座状态,如正常、缺相、接地不良等。
11.3 连续性测试仪
将连续性测试仪的两个部分分别连接电缆的两端。按下测试仪上的测试按钮,如果测试仪发出声音或指示灯亮起,则表示电缆连通。
11.4 “狐狸和猎犬对”
- 使用狐狸(音调发生器) :将狐狸连接到要追踪的电缆上,打开音调发生器,使其发出特定的音调。
- 使用猎犬(放大器) :拿着猎犬在电缆附近移动,当接近电缆时,猎犬会接收到音调信号,并发出声音或指示灯亮起,从而可以追踪电缆的走向。
12. 网络故障排查的注意事项
在进行网络故障排查时,还需要注意以下几点:
-
备份数据
:在进行任何可能影响系统的操作之前,一定要备份重要的数据,以免数据丢失。
-
谨慎操作
:在修改系统配置文件或执行命令时,要谨慎操作,避免因误操作导致更严重的问题。
-
记录过程
:在排查故障的过程中,要记录下每一步的操作和结果,以便后续分析和总结。
13. 总结
通过搭建 Linux 拨号服务器和掌握网络故障排查的方法,我们可以更好地管理和维护网络。在搭建拨号服务器时,要注意各项配置的正确性和安全性;在排查网络故障时,要合理使用各种工具,按照一定的流程进行操作。同时,要不断积累经验,提高自己的网络管理和故障排查能力。
以下是一个总结表格,列出了本文涉及的主要内容和相关工具:
| 主题 | 相关工具或方法 |
| ---- | ---- |
| 运行 Linux 拨号服务器 | 基础配置命令、WvDial、KPPP、Gnome - PPP、iptables 规则 |
| 网络故障排查 | ping、tcpdump、Wireshark、ngrep、日志文件查看 |
| 电缆测试 | 万用表、电源插座测试仪、连续性测试仪、“狐狸和猎犬对” |
| 构建诊断笔记本电脑 | ping、tcpdump、Wireshark、ngrep、日志查看工具 |
希望本文能够帮助你搭建稳定的 Linux 拨号服务器,并有效地解决网络故障问题。在实际应用中,根据具体情况灵活运用这些方法和工具,确保网络的稳定运行。
超级会员免费看
906

被折叠的 条评论
为什么被折叠?



