rsync 无法连接错误

rsync unable to connect error

我正在尝试使用 rsync 将文件与 Travis 和 GitHub 一起上传到我的服务器,我在 deploy.sh 脚本 rsync -avhP $f deploy@multicrew.co.uk:/var/www/test/ 中有这一行,每当我尝试上传$f 文件我收到此错误:

ssh: connect to host multicrew.co.uk port 22: Cannot assign requested address

在我的 .travis.yml 文件中我有这个代码

addons:
  ssh_known_hosts: multicrew.co.uk

before_install:
  - openssl aes-256-cbc -K $encrypted_8c9513462553_key -iv $encrypted_8c9513462553_iv -in deploy/deploy_rsa.enc -out /tmp/deploy_rsa -d
  - eval "$(ssh-agent -s)"
  - chmod 600 /tmp/deploy_rsa
  - ssh-add /tmp/deploy_rsa
  - chmod +x deploy/deploy.sh

after_success: "deploy/deploy.sh"

我不知道为什么 rsync 无法分配请求的地址,我在 CloudFlare 中设置了一个 A 名称记录,将 multicrew.co.uk 转发到我服务器的 IP

您遇到的错误看起来是由未完成的 issue with IPv6 on Travis CI 引起的。

但是,由于在撰写本文时,您的 multicrew.co.uk 域由 Cloudflare 和 Cloudflare only proxies HTTP traffic 代理,建议的禁用 IPv6 的修复方法将不起作用。

您需要 create a separate non-proxied (grey cloud) hostname 与 SSH/RSYNC 一起使用,更改 rsync 命令以直接连接到服务器 IP 地址或禁用 [​​=24=] 主机名的 Cloudflare 代理。

请注意,在 DNS 中添加非代理主机名会暴露您服务器的 IP 地址。您可能希望将对服务器的访问限制为 Travis CI and Cloudflare IP 范围(例如,使用防火墙规则或在 Web 服务器配置中)。