You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派Zero低速率网络下SCP传输无数据、间歇性需输密码问题求助

这不是树莓派Zero的已知bug,问题根源是SCP默认参数和Raspbian默认TCP配置不适配高延迟、高抖动的弱3G网络,笔记本传输正常是因为x86平台的默认网络缓冲区、SSH客户端超时阈值比ARM架构的Raspbian更高。

异常原因

  • 间歇性要求输入密码:弱网下SSH公钥协商阶段超时,服务端未收到公钥校验包就回落为密码认证,SSH交互模式默认超时阈值远高于SCP非交互模式,所以直连SSH无该问题。
  • 空文件、传输卡0%:SCP默认会先在服务端创建空文件再启动内容传输,弱网下TCP窗口过小、连接超时断开就会出现空文件,树莓派Zero通过USB连接SIM7600模块,默认USB网卡的TCP缓冲区远小于笔记本的PCIe网卡,高延迟链路下带宽延迟乘积超过缓冲区上限,就会出现传输卡住无进度的问题。

修复方案

1. 优化SCP/SSH传输参数

在原有scp命令中新增超时、保活、压缩参数,适配弱网环境:

# 参数说明
# -C:开启传输压缩,300KB图片压缩后可减少一半传输耗时
# -o ConnectTimeout=60:连接阶段超时设为60秒,远高于默认值
# -o ServerAliveInterval=10:每10秒发送一次心跳包保活
# -o ServerAliveCountMax=30:累计30次心跳无响应才判定断开,最多等待5分钟足够完成传输
scp -C -o ConnectTimeout=60 -o ServerAliveInterval=10 -o ServerAliveCountMax=30 foo.jpg <username>@webserver:dir/to/folder/default.jpg
FILENAME=`date +"%Y-%m-%d_%H-%M-%S"`
scp -C -o ConnectTimeout=60 -o ServerAliveInterval=10 -o ServerAliveCountMax=30 foo.jpg <username>@webserver:dir/to/archive_folder/${FILENAME}.jpg

2. 调整系统TCP弱网配置

编辑/etc/sysctl.conf文件,新增如下配置:

# 增大TCP读写缓冲区,适配高延迟链路
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# 开启BBR拥塞控制,比默认的Cubic算法更适合弱网环境
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

修改完成后执行sudo sysctl -p即可生效,无需重启。

3. 新增传输容错逻辑

避免传输失败导致有效文件被覆盖、生成无效空归档文件:

  • 先把文件传输为服务端的临时文件名,传输成功后再重命名覆盖目标文件
  • 可增加重试逻辑,单次传输失败后间隔30秒重试,最多重试3次
    示例脚本片段:
SCP_PARAM="-C -o ConnectTimeout=60 -o ServerAliveInterval=10 -o ServerAliveCountMax=30"
# 传输default.jpg
scp $SCP_PARAM foo.jpg <username>@webserver:dir/to/folder/default_tmp.jpg
# 传输成功再重命名覆盖
if [ $? -eq 0 ];then
  ssh $SCP_PARAM <username>@webserver "mv -f dir/to/folder/default_tmp.jpg dir/to/folder/default.jpg"
fi

# 传输归档文件
FILENAME=`date +"%Y-%m-%d_%H-%M-%S"`
scp $SCP_PARAM foo.jpg <username>@webserver:dir/to/archive_folder/${FILENAME}_tmp.jpg
if [ $? -eq 0 ];then
  ssh $SCP_PARAM <username>@webserver "mv -f dir/to/archive_folder/${FILENAME}_tmp.jpg dir/to/archive_folder/${FILENAME}.jpg"
fi

内容的提问来源于stack exchange,提问作者Kadlu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 06:42:01