准备一台能到美国节点的网关(可用VPS或云主机),在本地VPS上用密钥登录该网关;思路是:1) 建立持久隧道或VPN(autossh/WireGuard)实现自动重连;2) 本地做增量备份并同步到美国或对象存储;3) 用监控脚本快速切换或重启连接。
在本地VPS执行:ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "";然后 scp ~/.ssh/id_ed25519.pub user@us-gateway:/home/user/.ssh/authorized_keys(或使用ssh-copy-id)。确保目标端 authorized_keys 权限为600,.ssh 为700。
安装:Debian/Ubuntu apt install autossh;示例命令:autossh -M 0 -N -o "ServerAliveInterval=30" -o "ServerAliveCountMax=3" -o "ExitOnForwardFailure=yes" -R 19999:localhost:22 user@us-gateway -p22 &。说明:-M 0 关闭监控端口用SSH内置心跳;ServerAlive* 保证连接断开时自动退出并由autossh重连。
创建 /etc/systemd/system/autossh-us.service,内容示例: [Unit] Description=autossh to US gateway After=network.target [Service] User=root Environment="AUTOSSH_GATETIME=0" ExecStart=/usr/bin/autossh -M 0 -N -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -R 19999:localhost:22 user@us-gateway Restart=always [Install] WantedBy=multi-user.target 保存后执行 systemctl daemon-reload; systemctl enable --now autossh-us.service。
安装 wireguard-tools;在本地生成密钥 wg genkey | tee privatekey | wg pubkey > publickey;在美国网关配置 peer,设置 PersistentKeepalive = 25;用 systemd 启动 wg-quick@wg0。优点:VPN 提供全流量的自动重连和路由切换。
示例脚本 /usr/local/bin/check_us.sh: #!/bin/bash if ! ping -c3 8.8.8.8 >/dev/null; then exit 1; fi if ! curl -s --max-time 5 https://1.1.1.1 >/dev/null; then systemctl restart autossh-us.service fi 设置 cron */5 * * * * root /usr/local/bin/check_us.sh >/dev/null 2>&1。脚本可改为检测延迟并在阈值触发时切换到备用网关。
用于文件同步的基础命令:rsync -avz --delete --partial /data/ user@us-backup:/backup/vps/。将该命令放入每日 cron(例如 0 2 * * * root /usr/bin/rsync ...),并保存上次运行日志以便回滚。
安装 restic,初始化仓库(远端或S3):restic -r s3:s3.amazonaws.com/bucket init。备份:restic -r s3:s3.amazonaws.com/bucket backup /etc /var/www --cleanup-cache;恢复:restic -r ... restore
若VPS支持磁盘快照(云厂商功能),在关键更新前做快照;结合镜像化(如将快照自动复制到另一可用区)可以在主线路失效时使用另一个实例快速上线。也可用 rclone 将备份上传到 Google Drive / S3 做异地备份。
答:先在两个通道(主US网关与备网关)都配置好autossh或WireGuard并启用;用监控脚本检测主通道健康,当主通道延迟或丢包超阈值时,脚本通过 systemctl stop autossh-us.service && systemctl start autossh-us-backup.service 或修改本地默认路由(ip route change)来切换,并记录切换时间与理由,便于故障分析。
答:采用混合策略:近期数据用 rsync 做每日增量,保证速度;关键配置/数据库用 restic 做加密版本化备份;备份传输走 SSH 或使用 S3 TLS;并启用服务器端加密与最小权限账户。测试恢复是必须工作,每月做一次完整恢复演练。
答:周期性采集 ping/HTTP 延时与丢包(如每5分钟),记录到本地日志或监控系统(Prometheus + alertmanager);基于规则(例如 3 次平均 RTT 超过 200ms 或丢包>10%)触发自动切换脚本,或降级到仅必要端口的隧道,保证关键业务不受影响。