0

0

sftp 连接慢的 TCP window scaling 与 MTU 路径发现

冰川箭仙

冰川箭仙

发布时间:2026-01-28 20:11:47

|

221人浏览过

|

来源于php中文网

原创

根本原因是TCP窗口缩放被中间设备错误丢弃及PMTUD失效导致SSH密钥交换卡住;可通过ssh -v日志停顿、tcpdump检查Window Scale选项、ping -M do测MTU等方式诊断,并临时关闭scaling或限制MTU验证。

sftp 连接慢的 tcp window scaling 与 mtu 路径发现

为什么 SFTP 连接卡在 password prompt 或 key exchange 阶段

根本原因常是 TCP 窗口缩放(Window Scaling)被中间设备(如老旧防火墙、NAT 网关)错误丢弃或忽略,导致初始 SYN/ACK 协商失败或窗口通告异常;同时若路径 MTU 小于默认 1500 且 PMTUD(Path MTU Discovery)被禁用或 ICMP 被拦截,大包会被静默丢弃,SSH 的密钥交换阶段(尤其是 RSA 公钥传输)极易卡住。

如何确认是否为 TCP window scaling 导致的 SFTP 延迟

在客户端执行 ssh -v user@host,观察日志中是否出现长时间停顿在 debug1: SSH2_MSG_KEXINIT sent 后、迟迟不出现 SSH2_MSG_KEXINIT received;再用 tcpdump -i any port 22 -w ssh_handshake.pcap 抓包,过滤出三次握手和前几个 SSH 数据包,检查 SYN 和 SYN-ACK 中的 TCP Window Scale 选项是否一致、是否被篡改或消失。若服务端 SYN-ACK 没有回传 Window Scale 选项(或值为 0),而客户端已发送,则大概率是中间设备干扰。

  • Linux 客户端可临时关闭 window scaling 测试:echo 0 | sudo tee /proc/sys/net/ipv4/tcp_window_scaling
  • 该操作仅影响当前会话后的新建连接,无需重启网络服务
  • 注意:关闭后长肥管道(high BDP)链路吞吐会明显下降,仅用于诊断

MTU 路径发现失败时的快速验证与绕过方法

若怀疑 PMTUD 失效,先用 ping -M do -s 1472 host(对应 IP 层 1500 字节)测试是否能通;逐步减小 -s 值(如 1400、1300),直到成功,反推路径 MTU。若 -M do(禁止分片)全部超时,但 -M want 可通,说明 ICMP “Fragmentation Needed” 被拦截,PMTUD 实际已断。

燕雀Logo
燕雀Logo

为用户提供LOGO免费设计在线生成服务

下载
  • 服务端侧临时缓解:在 /etc/ssh/sshd_config 中添加 ClientAliveInterval 30TCPKeepAlive yes,避免连接因静默丢包被误判为僵死
  • 客户端强制限制 MSS:ssh -o "IPQoS throughput" -o "TCPKeepAlive=yes" -o "ServerAliveInterval=30" user@host,并配合系统级设置:sudo ip route change default via $GATEWAY dev $IFACE mtu 1400
  • OpenSSH 8.9+ 支持 SetEnv SSH_CONNECTION_MTU=1400,但需服务端也支持该扩展(较新版本才启用)

生产环境长期修复建议

不要依赖临时内核参数或路由修改。真正稳定的方案是两端协同:确保防火墙/ISP 允许 ICMP Type 3 Code 4(Fragmentation Needed)通过;在 SSH 服务端启用 UsePrivilegeSeparation sandbox(现代 OpenSSH 默认开启),它对大包处理更健壮;若无法控制中间网络,可在客户端配置 ~/.ssh/config

Host slow-sftp-host
    HostName example.com
    User myuser
    ServerAliveInterval 15
    TCPKeepAlive yes
    IPQoS throughput
    # 强制降低初始窗口,减少首包大小依赖
    SetEnv SSH_CONNECTION_MTU=1400

Window scaling 和 PMTUD 是底层协同机制,单独调一端往往无效——比如只关客户端 scaling,但服务端仍发大窗口通告,中间设备照样丢包。最容易被忽略的是:某些云厂商安全组默认屏蔽所有 ICMP,连“Destination Unreachable”都不放行,此时 PMTUD 必然失效,必须显式放开 ICMP Type 3。

相关文章

Windows激活工具
Windows激活工具

Windows激活工具是正版认证的激活工具,永久激活,一键解决windows许可证即将过期。可激活win7系统、win8.1系统、win10系统、win11系统。下载后先看完视频激活教程,再进行操作,100%激活成功。

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
504 gateway timeout怎么解决
504 gateway timeout怎么解决

504 gateway timeout的解决办法:1、检查服务器负载;2、优化查询和代码;3、增加超时限制;4、检查代理服务器;5、检查网络连接;6、使用负载均衡;7、监控和日志;8、故障排除;9、增加缓存;10、分析请求。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

583

2023.11.27

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

223

2023.12.07

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

223

2023.12.07

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1394

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

706

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

295

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

779

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

575

2023.07.06

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

158

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8万人学习

Git 教程
Git 教程

共21课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号