DigitalOcean Droplet间歇性超时求助:SSH、Git操作异常
排查与解决步骤
SSH连接不稳定问题
- 调整Ansible SSH参数优化连接稳定性,在本地
ansible.cfg中添加:
缩短超时时间并开启心跳机制,避免连接被网络中间节点断开。[ssh_connection] timeout = 10 ControlPersist = 30s ssh_args = -o ConnectTimeout=5 -o TCPKeepAlive=yes -o ServerAliveInterval=3 -o ServerAliveCountMax=2 - 持续测试SSH连接可用性:在本地执行
同时在Droplet上查看while true; do ssh root@[你的DropletIP] 'echo 连接成功'; sleep 2; done/var/log/auth.log,确认是否有连接被拒绝或异常中断的日志。 - 检查Droplet的ufw防火墙规则,确保SSH端口(默认22)的入站规则为允许状态,无异常限制。
Git克隆超时问题
- 尝试切换Git协议为HTTPS替代SSH,降低密钥协商带来的连接不稳定风险:
ansible.builtin.command: git clone --bare https://github.com/[用户名]/[仓库名].git [目标路径] - 给Git命令添加超时参数,避免无限制挂起:
ansible.builtin.command: git clone --bare --timeout=30 [仓库地址] [目标路径] - 在Droplet本地直接测试Git克隆稳定性,排除Ansible影响:
观察返回码(0为成功),同时查看while true; do rm -rf [目标路径] && git clone --bare [仓库地址] [目标路径]; echo "执行结果:$?"; sleep 5; done/var/log/syslog排查网络相关错误。
网络连通性深层排查
- 测试本地到Droplet的网络丢包情况:
若丢包率较高,联系DigitalOcean技术支持检查节点网络状态。while true; do ping -c 4 [你的DropletIP]; sleep 2; done - 更换Droplet的DNS服务器,避免解析超时导致连接异常,修改
/etc/resolv.conf:echo "nameserver 1.1.1.1" > /etc/resolv.conf echo "nameserver 8.8.8.8" >> /etc/resolv.conf
内容的提问来源于stack exchange,提问作者Cassiterite
相关产品推荐
相关产品推荐

