scp 会导致通过路由器的所有其他流量停止吗?

scp 会导致通过路由器的所有其他流量停止吗?

不确定我在这里看到的是什么,但是当我通过堡垒主机将文件 scp 到 AWS EC2 服务器时,通过我的家用路由器 (Asus RT-AC66R) 的所有其他流量都会停止。执行 scp 的 Mac 笔记本电脑继续传输,但不允许其他流量。任何外部连接都会因管道断裂而失败。网络上的所有其他计算机都会被切断互联网,直到 scp 传输完成。所有计算机都通过以太网连接,没有 wifi。

一旦传输完成,丢失的数据包会突然出现高延迟,正如 scp 之前、期间和之后的 ping 所示:

64 bytes from ip: icmp_seq=1089 ttl=54 time=95.211 ms
64 bytes from ip: icmp_seq=1090 ttl=54 time=98.233 ms
64 bytes from ip: icmp_seq=1091 ttl=54 time=98.875 ms
64 bytes from ip: icmp_seq=1092 ttl=54 time=96.498 ms
Request timeout for icmp_seq 1093
64 bytes from ip: icmp_seq=1093 ttl=54 time=1933.088 ms
64 bytes from ip: icmp_seq=1094 ttl=54 time=931.061 ms
Request timeout for icmp_seq 1096
Request timeout for icmp_seq 1097
[...snip...]
Request timeout for icmp_seq 1116
Request timeout for icmp_seq 1117
64 bytes from ip: icmp_seq=1095 ttl=54 time=23834.554 ms
64 bytes from ip: icmp_seq=1096 ttl=54 time=22845.598 ms
64 bytes from ip: icmp_seq=1097 ttl=54 time=21854.220 ms
64 bytes from ip: icmp_seq=1098 ttl=54 time=20857.492 ms
64 bytes from ip: icmp_seq=1099 ttl=54 time=19860.796 ms
64 bytes from ip: icmp_seq=1119 ttl=54 time=96.076 ms

ping 时间为 ~100ms,scp 启动并且数据包开始超时,scp 停止并且数据包显示非常延迟然后又回到 ~100ms 延迟。

我正在使用的 ssh/scp 配置是:

Host *
    ServerAliveInterval 120

Host bastion
    HostName bastion.example.com

Host appdev
    ProxyCommand ssh bastion -W %h:%p
    HostName 10.20.10.242

使用 scp 将文件传输到任何其他服务器不会对我的网络造成任何问题。只需通过堡垒执行 scp 即可终止除其自身流量之外的所有流量。

  • scp 来自:笔记本电脑 -> 服务器,没有问题
  • scp 来自:笔记本电脑 -> 堡垒 -> 服务器,所有流量均被终止

更新:在听取了 DerfK 的一些调试建议后,我发现使用 SSH 端口重定向通过堡垒机到应用服务器,然后 scp -P 9999 bigfile.dat localhost:/tmp 没有任何问题!那么,这说明了什么?也许 ssh 的 -W 选项让我失望了?

相关内容