针对RAKsmart服务器连接问题的排查教程,重点介绍使用MTR和tcpdump这两个强大的网络诊断工具。当你遇到服务器连接缓慢、丢包、完全无法访问等问题时,这份指南能帮助你定位问题根源。

核心目标: 确定连接问题是发生在你的本地网络、中间网络链路(ISP、骨干网)还是RAKsmart服务器/机房本身。
推荐阅读:raksmart新用户秒杀专区,包括美国服务器、美国云服务器、美国VPS和美国裸机云服务器,其中美国服务器秒杀方案原价为104美元,现优惠价仅29.9美元。注意秒杀产品不支持自由定义配置和退款。更多活动可点击查看全线福利专区。
产品 | CPU | 内存 | 硬盘 | 带宽/流量 | 秒杀价/月 | 购买链接 |
美国洛杉矶服务器 | E3-1230 | 16G | 1T HDD | 国际BGP 1G 独享 不限 | $29.90 | 点击购买 |
美国硅谷裸机云 | E5-2620 | 32G | 1T HDD | 国际BGP G口 不限 | $79.90 | 点击购买 |
美国硅谷VPS | 2 核 | 2G | 40G SSD | 大陆优化VIP 10M | $1.99 | 点击购买 |
美国硅谷云服务器 | 2 核 | 4G | 40G系统盘 | 大陆优化VIP | $3.99 | 点击购买 |
常用场景:
- SSH连接超时或卡顿
- 网站/应用访问缓慢或间歇性中断
- FTP/SFTP传输失败或速度极慢
- 服务器Ping值过高或丢包严重
- 无法通过特定端口连接到服务器
排查步骤概览:
- 基础检查: 快速排除明显问题。
- 使用 MTR: 定位网络路径中的延迟或丢包点。
- 使用 tcpdump (在服务器端): 深度分析到达服务器的流量,验证连接是否建立、数据是否到达。
- 结合结果分析: 判断问题责任方(本地、中间网络、服务器/机房)。
- 寻求支持: 根据分析结果联系你的本地ISP或RAKsmart客服。
一、基础检查 (先做这些!)
- 确认问题范围:
- 是所有设备都无法连接服务器,还是仅特定设备?
- 是所有服务(SSH, Web, Ping)都出问题,还是仅特定端口/服务?
- 尝试从不同网络环境(手机4G/5G热点)连接,是否同样有问题?
- 检查本地网络:
- 重启你的路由器/光猫。
- 检查本地设备的防火墙设置,是否阻止了出站连接?
- 尝试Ping其他知名网站(如
google.com
,baidu.com
),确认本地网络是否正常。
- 检查服务器状态:
- 登录RAKsmart客户后台,查看服务器状态是否为“运行中”?是否有告警通知?
- 尝试在后台重启服务器(Soft Reboot 或 Hard Reboot)。
- Ping 测试:
- 在本地命令行运行:
ping <你的服务器IP>
- 观察:
- 是否能收到回复?(
Reply from ...
) - 延迟 (
time=
值) 是否正常(通常<100ms算好,跨国可能100-300ms)? - 是否有丢包 (
Packets: Sent=4, Received=3, Lost=1 (25% loss)
)?持续丢包是严重问题。
- 是否能收到回复?(
- 注意: 部分机房或服务器可能禁用了ICMP响应(Ping),导致Ping不通,但这不代表其他服务(如SSH 22端口)不可用。此时需用其他工具(如
telnet <IP> <端口>
或tcping <IP> <端口>
)测试具体端口。
- 在本地命令行运行:
二、使用 MTR – 网络路径诊断利器
MTR (My Traceroute) 结合了 traceroute
和 ping
的功能。它持续向目标发送数据包,追踪经过的所有路由节点,并统计每个节点的响应时间、丢包率。这能帮你精确定位网络路径中哪个环节出现了延迟或丢包。
1. 安装 MTR:
- Linux (服务器或本地): 通常预装或可通过包管理器安装。例如:
- Ubuntu/Debian:
sudo apt install mtr-tiny
或sudo apt install mtr
- CentOS/RHEL:
sudo yum install mtr
- Ubuntu/Debian:
- macOS: 使用Homebrew安装:
brew install mtr
- Windows: 推荐使用
WinMTR
(图形界面,更友好): https://sourceforge.net/projects/winmtr/ 下载安装即可。
2. 运行 MTR (Linux/macOS 命令行):
bash
mtr -r -c 30 <你的RAKsmart服务器IP> # -r: 报告模式(输出结果后退出) -c: 发送多少包(默认是10) # 或 mtr -n <你的RAKsmart服务器IP> # -n: 不解析主机名(更快) 实时显示, 按 q 退出
-r -c N
模式: 适合生成报告,发送N
个包到每一跳后停止并打印统计结果。结果更清晰,便于截图分享。- 实时模式 (
mtr -n IP
): 持续运行,动态更新每跳的丢包率和延迟。按q
退出。
3. 运行 WinMTR (Windows):
- 下载安装WinMTR。
- 在
Host
栏输入你的RAKsmart服务器IP。 - 点击
Start
按钮开始测试。让测试运行至少1-2分钟(发送几百个包)。 - 点击
Copy text to clipboard
复制结果,或截图保存。
4. 解读 MTR 报告:
关键看以下列(不同工具列名可能略有差异):
- Host / Hop: 路由节点序号和IP地址(或主机名)。序号1通常是你的路由器,最后一跳 (
N
) 是目标服务器。 - Loss% / %Loss: 最重要! 该节点的丢包率。持续稳定的高丢包率(>1-3%) 是问题。
- Sent: 发送到该节点的探测包数量。
- Recv / Rcvd: 该节点回复的包数量。
- Avg / Avg Latency: 到该节点的平均往返延迟 (ms)。
- Best / Min: 最小延迟。
- Wrst / Max: 最大延迟。
- StDev: 延迟的标准差,波动越大值越高,网络越不稳定。
5. 分析 MTR 结果定位问题:
- 问题出现在第一跳 (Hop 1, 通常是你本地网关/路由器):
- 本地网络问题(路由器故障、WiFi信号差、网线问题、本地设备防火墙)。
- 解决方法:重启路由器/光猫,检查网线,更换连接方式(有线>无线),关闭本地防火墙测试。
- 问题出现在中间跳 (Hop 2 到 Hop N-1):
- 某单跳持续高丢包/高延迟: 通常是该节点所在网络(可能是你的ISP、某个中间运营商或国际出口)的问题。这是最常见的情况。
- 多跳普遍高延迟/丢包: 可能遇到区域性网络拥塞或国际链路问题。
- 解决方法:联系你的本地ISP,提供MTR报告截图/文本,说明问题节点IP和丢包/延迟情况。ISP通常能处理其网络内或上游的问题。
- 问题出现在最后一跳 (Hop N, 目标服务器IP) 且前面跳正常:
- 最后一跳100%丢包: 服务器可能宕机、关机,或服务器防火墙(如iptables, firewalld)完全阻止了ICMP(Ping)和MTR探测包。这不一定代表你的服务端口(如22, 80, 443)不可用!需要用
tcpdump
或端口测试工具确认。 - 最后一跳有丢包/延迟高: 可能是服务器本身负载过高(CPU、磁盘IO、带宽跑满)、服务器内部网络问题、或机房本地网络/防火墙问题。
- 解决方法:
- 登录RAKsmart后台检查服务器状态、资源监控(CPU、内存、带宽)。
- 在服务器上运行
tcpdump
(见下文) 确认探测包是否到达服务器网卡。 - 检查服务器防火墙规则是否允许了MTR使用的协议(通常是UDP,有时是ICMP或TCP)。
- 如果确认服务器运行正常且防火墙未阻止,联系RAKsmart技术支持,提供MTR报告和你的分析。
- 最后一跳100%丢包: 服务器可能宕机、关机,或服务器防火墙(如iptables, firewalld)完全阻止了ICMP(Ping)和MTR探测包。这不一定代表你的服务端口(如22, 80, 443)不可用!需要用
- 全程丢包/延迟高: 结合本地基础检查,可能是严重本地问题或目标服务器所在机房大规模问题。
重要提示:
- 中间节点 (
*
或 显示超时) 不一定表示问题。很多路由器配置为优先转发数据包而不响应探测包,只要最终目标节点或后续节点没有丢包即可。 - 关注丢包是否持续稳定。偶尔1-2%的丢包可能是正常波动,但持续>3%通常意味着问题。
- 对比测试:在问题时段和正常时段分别运行MTR,对比结果更容易发现问题节点。
三、使用 tcpdump – 服务器端抓包分析
当MTR指向问题可能发生在服务器端(最后一跳丢包或服务端口不通),或者你需要确认到达服务器的具体连接请求和流量时,tcpdump
是终极武器。它直接在服务器的网络接口上捕获原始数据包。
为什么在服务器端抓包?
- 验证客户端的连接请求是否真正到达了服务器的网卡。
- 查看服务器是否对请求作出了响应。
- 分析连接建立过程(如TCP三次握手是否完成)。
- 检查是否有错误包、重传等问题。
- 诊断特定端口(如SSH 22, HTTP 80, HTTPS 443)的连通性。
1. 在 RAKsmart 服务器上运行 tcpdump (需要 root/sudo 权限):
基本命令:
bash
sudo tcpdump -i <网卡接口名> -nn host <客户端IP> and port <服务端口> # 捕获指定客户端IP和端口的数据包 sudo tcpdump -i <网卡接口名> -nn host <客户端IP> # 捕获指定客户端IP的所有流量 sudo tcpdump -i <网卡接口名> -nn port <服务端口> # 捕获指定端口的所有流量
-i eth0
: 指定网卡接口。通常主网卡是eth0
(老系统) 或ens3
,enp0s3
等 (新系统)。用ip addr
或ifconfig
查看可用接口。-nn
: 不解析主机名和端口名(显示IP和端口号),提高效率且输出更清晰。host X.X.X.X
: 过滤特定IP地址(你的客户端公网IP或你要测试的IP)。强烈推荐加上! 避免抓到无关流量。port Y
: 过滤特定端口(如22, 80, 443)。-w capture.pcap
: 将抓包数据写入文件capture.pcap
(可用Wireshark分析)。-v
/-vv
: 更详细输出。-c N
: 抓取N个包后停止。
2. 进行连接测试:
- 在运行
tcpdump
的同时,从你的客户端尝试重现连接问题(例如:尝试SSH连接、访问网站URL、使用telnet IP PORT
或curl
)。 - 观察
tcpdump
的实时输出(或让其运行几秒后按Ctrl+C
停止)。
3. 解读 tcpdump 输出 (关键模式):
- TCP 连接建立 (三次握手 – 成功):复制下载IP Client.IP.SrcPort > Server.IP.DstPort: Flags [S], … # Client SYN IP Server.IP.DstPort > Client.IP.SrcPort: Flags [S.], … # Server SYN-ACK IP Client.IP.SrcPort > Server.IP.DstPort: Flags [.], … # Client ACK看到完整的三次握手,说明连接成功建立到服务器端口。后续问题可能是应用层(如Web服务、SSHD进程)的问题。
- TCP 连接建立失败 (常见原因):
- 客户端 SYN 到达,无响应:复制下载IP Client.IP.SrcPort > Server.IP.DstPort: Flags [S], … (没有来自服务器的 SYN-ACK)可能原因:
- 服务器防火墙阻止了该端口! (最常见)
- 服务器上监听该端口的服务没有运行。
- 服务器内核问题(极罕见)。
- 服务器响应 RST (Reset):复制下载IP Client.IP.SrcPort > Server.IP.DstPort: Flags [S], … IP Server.IP.DstPort > Client.IP.SrcPort: Flags [R.], … # RST Flag表示服务器明确拒绝连接。通常是因为:
- 端口上没有监听的服务。
- 防火墙规则配置为发送RST(REJECT策略 vs DROP策略)。
- 客户端 SYN 到达,服务器响应 ICMP 不可达:复制下载IP Client.IP.SrcPort > Server.IP.DstPort: Flags [S], … IP … > …: ICMP host/port/proto unreachable …表示中间网络设备(可能是服务器网关或更早的路由)阻止了访问。
- 客户端 SYN 到达,无响应:复制下载IP Client.IP.SrcPort > Server.IP.DstPort: Flags [S], … (没有来自服务器的 SYN-ACK)可能原因:
- 连接建立后出现问题:
- 大量
[S]
重传:客户端不断尝试SYN,没收到SYN-ACK。 - 大量
[.]
ACK 重传:数据包丢失,导致确认信息重传。 [F]
(FIN) 或[R]
(RST) 包:连接被正常关闭或异常重置。
- 大量
4. 分析结论:
- 能看到完整三次握手: 连接能到达服务器端口。问题可能出在服务器上的应用程序(如Apache/Nginx配置错误、PHP-FPM崩溃、数据库连接失败、SSHD配置问题)或服务器资源不足(CPU 100%, 内存耗尽 OOM)。检查应用日志 (
/var/log/
下的相关日志) 和服务器资源监控。 - 能看到客户端SYN,但无响应或收到RST/ICMP不可达:
- 首要怀疑:服务器防火墙! 仔细检查
iptables
/firewalld
/ufw
规则是否允许了该客户IP和端口。 - 检查服务是否监听:
sudo netstat -tulnp | grep :<端口>
或sudo ss -tulnp | grep :<端口>
。 - 检查是否有安全组/ACL:登录RAKsmart后台,查看服务器关联的安全组(Security Group) 或防火墙策略,确保入站规则允许了你的IP和所需端口。
- 首要怀疑:服务器防火墙! 仔细检查
- 完全看不到客户端的SYN包: 连接请求根本没有到达服务器网卡。问题一定发生在服务器之前的网络路径上(你的本地网络、你的ISP、中间网络、RAKsmart机房入口防火墙/路由器)。需要结合之前的MTR结果分析。
5. 保存抓包文件:
使用 -w capture.pcap
参数保存抓包数据。可以用 scp
下载到本地,用图形化的 Wireshark 打开进行更深入、直观的分析(强烈推荐)。
四、结合结果分析 & 寻求支持
- MTR 显示问题在中间网络 (你的ISP或上游):
- 收集多份不同时间点的MTR报告(特别是问题发生时)。
- 联系你的本地ISP,提供报告,清晰说明问题节点IP、丢包率、延迟情况,要求他们排查。
- MTR 显示问题在最后一跳 (服务器IP) 且 tcpdump 确认包未到达/被拒绝:
- 检查服务器防火墙 (
iptables -L -n -v
,firewall-cmd --list-all
,ufw status
)。 - 检查服务监听状态 (
netstat -tulnp
,ss -tulnp
)。 - 检查RAKsmart后台的安全组/防火墙配置。
- 检查服务器资源使用情况 (
top
,htop
,free -m
,df -h
,iftop
/nload
看带宽)。 - 查看相关应用日志 (
/var/log/syslog
,/var/log/messages
,/var/log/{nginx,apache2}/error.log
,/var/log/secure
(SSH))。 - 如果自行无法解决,联系RAKsmart技术支持,提供:
- 详细的故障描述和时间段。
- 你的MTR报告(从本地到服务器)。
- 你的
tcpdump
输出或抓包文件 (.pcap)。 - 服务器防火墙规则、服务监听状态、相关日志片段。
- 后台安全组配置截图(如果修改过)。
- 检查服务器防火墙 (
- tcpdump 显示连接能建立但应用有问题:
- 聚焦排查服务器上的应用程序配置、日志、资源占用。
- 检查RAKsmart后台的带宽监控,看是否超限被限速。
总结:
- MTR 是你的“雷达”,帮你快速扫描从本地到RAKsmart服务器的整个网络路径,找出延迟和丢包发生的具体位置。它是判断问题责任方(你的网络 vs 中间网络 vs RAKsmart网络)的第一工具。
- tcpdump 是你的“显微镜”,当怀疑问题在服务器端时,它能让你亲眼看到网络包是否到达服务器、服务器如何响应,是验证防火墙规则、服务监听状态和排查网络层问题的终极手段。
- 结合两者,配合基础检查(Ping、端口测试、资源监控、日志),你就能系统地、有根据地定位绝大多数RAKsmart服务器的连接问题根源,并有效地向ISP或RAKsmart技术支持寻求帮助。
务必注意安全:
- 运行
tcpdump
需要root
权限,操作需谨慎。 - 抓包可能包含敏感信息(尤其是在未过滤的情况下)。使用
host
和port
过滤特定流量,并在分析后及时删除不必要的抓包文件(.pcap
)。
rak部落小编为您整理发布RAKsmart服务器连接问题排查教程:网络诊断工具MTR、tcpdump,希望这份详细的教程能帮助你高效解决RAKsmart服务器的连接问题!