故障排除
本文提供 XTerminal 常见问题的详细排查步骤和解决方案。
连接超时
症状
- 连接时显示"连接超时"或"Connection timed out"
- 连接进度条卡住,最终失败
排查步骤
1. 检查网络连通性
# 测试服务器是否可达
ping 服务器地址
# 测试 SSH 端口是否开放
telnet 服务器地址 22
# 或
nc -zv 服务器地址 22
2. 确认服务器信息
| 检查项 | 说明 |
|---|---|
| IP 地址/域名 | 确认无拼写错误 |
| 端口号 | 默认 22,确认服务器实际端口 |
| SSH 服务状态 | 确认服务器 SSH 服务正在运行 |
3. 检查防火墙
- 本地防火墙是否阻止了出站连接
- 服务器防火墙是否开放了 SSH 端口
- 云服务器安全组是否放行了 SSH 端口
4. 调整超时设置
如果网络延迟较高,可以增加超时时间:
- 编辑连接配置
- 进入 连接设置 选项卡
- 增加 超时时间(如 30000 毫秒)
5. 使用代理连接
如果需要通过代理访问服务器:
- 编辑连接配置
- 进入 代理设置 选项卡
- 配置代理地址(支持 SOCKS5 和 HTTP 代理)
认证失败
症状
- 提示"Authentication failed"或"认证失败"
- 密码正确但无法登录
- 密钥认证不通过
密码认证失败
1. 核对凭证信息
| 检查项 | 注意事项 |
|---|---|
| 用户名 | 区分大小写,注意空格 |
| 密码 | 检查特殊字符,避免复制时带入隐藏字符 |
2. 检查服务器配置
确认服务器允许密码认证:
# 查看 SSH 配置
cat /etc/ssh/sshd_config | grep PasswordAuthentication
如果显示 PasswordAuthentication no,需要改为 yes 并重启 SSH 服务。
3. 检查账户状态
- 账户是否被锁定(多次失败后可能触发)
- 账户是否过期
- 是否有 IP 白名单限制
密钥认证失败
1. 确认私钥路径
- 私钥文件是否存在
- 路径是否正确(使用绝对路径)
- 文件是否可读
2. 确认公钥已部署
检查服务器上的 authorized_keys:
cat ~/.ssh/authorized_keys
确认包含对应的公钥内容。
3. 检查文件权限
服务器上的权限要求严格:
# 正确的权限设置
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/私钥文件
4. 检查私钥格式
- 推荐使用 ED25519 或 RSA 格式
- 如果使用 PuTTY 格式(.ppk),需要转换为 OpenSSH 格式
5. 私钥密码
如果私钥有密码保护,确保在连接时正确输入私钥密码。
2FA 认证失败
1. 使用交互认证
将连接的 验证方式 设置为 交互认证。
2. 检查时间同步
TOTP 验证码依赖时间同步,确保:
- 本地设备时间准确
- 与服务器时间偏差不超过 30 秒
连接断开
症状
- 连接使用一段时间后自动断开
- 显示"Connection reset"或"Broken pipe"
- 终端无响应后断开
排查步骤
1. 调整心跳设置
在连接的 连接设置 中:
| 设置项 | 建议值 | 说明 |
|---|---|---|
| 心跳时间 | 5000-10000 | 毫秒,防止空闲断开 |
2. 检查服务器配置
查看服务器的 SSH 超时设置:
cat /etc/ssh/sshd_config | grep -E "ClientAlive|TCPKeepAlive"
建议服务器配置:
ClientAliveInterval 60
ClientAliveCountMax 3
TCPKeepAlive yes
3. 网络稳定性
- 检查网络是否稳定
- 无线网络可能因信号问题断开
- VPN 连接可能有超时限制
4. 开启自动重连
在 设置 > SSH 服务 中开启自动重连相关选项。
SFTP 无法打开
症状
- 点击文件管理器无响应
- SFTP 连接失败
- 文件列表无法加载
排查步骤
1. 确认 SSH 连接正常
SFTP 依赖 SSH 连接,先确保终端连接正常。
2. 检查服务器 SFTP 子系统
确认服务器启用了 SFTP:
cat /etc/ssh/sshd_config | grep Subsystem
应该有类似配置:
Subsystem sftp /usr/lib/openssh/sftp-server
3. 检查用户权限
- 用户是否有访问目标目录的权限
- 是否被 chroot 限制在特定目录
4. 检查磁盘空间
服务器磁盘空间不足可能导致 SFTP 异常:
df -h
上传/下载失败
症状
- 传输过程中断
- 显示权限错误
- 传输速度为 0
排查步骤
1. 检查目标目录权限
# 查看目录权限
ls -la /目标目录
# 检查当前用户
whoami
确保用户对目标目录有写入权限。
2. 检查磁盘空间
| 位置 | 检查命令 |
|---|---|
| 服务器 | df -h |
| 本地 | 检查本地磁盘剩余空间 |
3. 文件名特殊字符
某些特殊字符可能导致传输失败:
- 中文文件名(编码问题)
- 特殊符号(
*,?,<,>等)
尝试重命名文件后再传输。
4. 网络问题
- 大文件传输对网络稳定性要求高
- 检查是否有带宽限制
- 尝试分批传输或压缩后传输
5. 检查传输队列
点击底部状态栏的传输图标,查看:
- 是否有任务卡住
- 错误信息详情
- 尝试取消后重新传输
端口转发不生效
症状
- 端口转发显示成功但无法访问
- 本地端口无响应
- 连接转发的端口被拒绝
本地转发(-L)排查
1. 确认转发规则
| 参数 | 说明 |
|---|---|
| 本地端口 | 本地监听端口,确保未被占用 |
| 远程地址 | 从 SSH 服务器角度可访问的地址 |
| 远程端口 | 目标服务端口 |
2. 检查本地端口占用
# macOS/Linux
lsof -i :本地端口
# Windows
netstat -ano | findstr :本地端口
3. 确认远程服务可达
在 SSH 服务器上测试:
telnet 远程地址 远程端口
# 或
curl -v telnet://远程地址:远程端口
远程转发(-R)排查
1. 检查服务器配置
远程转发需要服务器允许:
cat /etc/ssh/sshd_config | grep GatewayPorts
如需外部访问,设置为 GatewayPorts yes。
2. 检查服务器防火墙
确保服务器防火墙允许转发端口的入站连接。
动态转发(-D)排查
1. 确认 SOCKS 代理配置
- 本地监听端口是否正确
- 客户端代理设置是否指向正确的端口
- 代理协议选择 SOCKS5
2. 测试代理
curl --socks5 127.0.0.1:本地端口 https://httpbin.org/ip
应用卡顿
症状
- 应用启动慢
- 操作响应延迟
- 界面无响应
解决方案
1. 禁用硬件加速
路径:设置 > 系统配置 > 禁用硬件加速
某些显卡驱动可能导致兼容性问题。
2. 切换渲染模式
路径:设置 > 通用终端 > 高级配置 > 渲染模式
选择 最佳兼容(DOM) 模式。
3. 减少资源占用
| 操作 | 路径 |
|---|---|
| 减少保存行数 | 设置 > 通用终端 > 基础配置 > 保存行数 |
| 关闭会话录制 | 设置 > 通用终端 > 会话记录 |
| 关闭命令补全 | 设置 > 通用终端 > 命令提示 |
| 关闭服务器监控 | 设置 > SSH 服务 > 列表监控 |
4. 清理连接
- 关闭不使用的连接标签页
- 减少同时打开的分屏数量
5. 重启应用
如果出现内存泄漏,重启应用可以释放资源。
数据丢失恢复
症状
- 连接配置丢失
- 设置被重置
- 快速命令消失
恢复方法
1. 从自动备份恢复
XTerminal 默认开启每日自动备份:
- 打开 设置 > 备份恢复
- 点击 打开备份目录
- 找到最近的备份文件
- 点击 导入备份 选择备份文件
2. 从手动备份恢复
如果之前手动导出过数据,可以直接导入。
3. 从云端恢复
如果启用了云端同步:
- 确保登录相同账户
- 切换到 云端仓库
- 数据会自动同步
预防措施
1. 开启自动备份
路径:设置 > 备份恢复 > 每日自动备份
2. 定期手动备份
重要配置更改后,手动点击 立即备份。
3. 使用云端同步
登录账户并设置同步密码,数据会加密同步到云端。
日志查看方法
当遇到难以解决的问题时,查看日志可以帮助定位原因。
方法一:调试台(开发者工具)
- 打开 设置 > 系统配置
- 点击 打开调试台
- 切换到 Console 标签查看日志
- 切换到 Network 标签查看网络请求
方法二:日志文件
- 打开 设置 > 系统配置
- 点击 打开日志目录
- 查看日志文件
日志文件位置:
| 系统 | 路径 |
|---|---|
| macOS | ~/Library/Logs/XTerminal/ |
| Windows | %USERPROFILE%\AppData\Roaming\XTerminal\logs\ |
| Linux | ~/.config/XTerminal/logs/ |
日志信息说明
| 级别 | 含义 |
|---|---|
| INFO | 正常信息 |
| WARN | 警告,可能有问题 |
| ERROR | 错误,需要关注 |
反馈问题
如果以上方法都无法解决问题,请通过以下渠道反馈:
官方反馈论坛:https://host.terminal.icu/
反馈时请提供
-
环境信息
- 操作系统及版本
- XTerminal 版本号
- 硬件配置(如有性能问题)
-
问题描述
- 详细的操作步骤
- 期望的结果
- 实际的结果
- 错误提示信息
-
相关日志
- 控制台日志截图
- 日志文件(脱敏后)
-
截图或录屏
- 问题现象截图
- 操作过程录屏(如有必要)