DigitalOcean在所有数据中心地区提供私人网络连接,无需额外费用。 专用网络创建第二个网络接口,无法从Internet访问,可用于在同一数据中心内与您帐户中的其他Droplet进行通信。 当您希望在服务器之间安全地传输数据或减少出站带宽使用时,专用网络非常有用。
在本文中,我们将解释如何在使用基于密码的身份验证的Droplet之间传输文件。 我们强烈建议使用SSH密钥而不是密码,以提高安全性。 您可以在了解有关它们的更多信息,并按照指南获取使用基于密钥的身份验证的说明。
如果您使用密码登录您的Droplet,这些说明适合您。
先决条件
要跟随本教程,您需要在同一个数据中心创建两个Droplet:
启用私人网络
可以帮助您开始使用。 确保当您到达“ 选择其他选项”部分时,选中“ 专用网络”框。无需添加SSH密钥
要使用基于密钥的身份验证,请参阅 。
另外,您需要在创建后登录到每个Droplet并重置根密码。 由于首次登录时需要重置根密码,因此如果未成功重置该文件,则无法成功传输文件。
一旦你完成了这些步骤,你就可以开始了。
第1步 - 创建测试文件
我们已经命名了我们的服务器Droplet-01和Droplet-02。 请务必在下面的命令中使用您的Droplets的IP地址。
我们将首先使用我们的第一个Droplet的公共IP地址登录:
ssh root@IP_of_Droplet-01
一旦我们连接起来,我们将使用echo
命令创建一些内容并将其引导到一个名为test.txt
的新文件中:
echo "Private networking test" > ~/test.txt
在下一步中,我们将使用Rsync将此文件传输到我们的第二个Droplet。
第2步 - 通过专用网络传输文件
当我们在公共IP地址上引导ping
或rsync
等命令时,流量将自动通过公共网络路由。 但是,如果我们将其指向我们专用网络上的IP地址,则流量将停留在专用网络上。
我们将使用Rsync将我们在最后一步创建的测试文件从Droplet-01传输到专用网络上的Droplet-02。 为此,我们需要Droplet-02的私人IP地址。
找到专用IP地址
我们将在控制面板中点击Droplet-02的名称。 在特定于Droplet的页面上,公共和私人IP地址都显示在页面顶部附近:
复制您的 Droplet的私有IP并在下面替换它。
rsync --verbose ~/test.txt Droplet-02-private_ip:/tmp
我们添加了--verbose
标志,以便我们可以看到命令的输出,后面跟着我们要传输的文件的路径和名称test.txt
。 最后,我们提供了私有IP地址的目的地Droplet和我们想要传输文件( /tmp
)的Droplet上的目录,以冒号( /tmp
分隔
我们将按ENTER发送命令。
当我们第一次连接到新主机时,我们会被警告无法建立主机的真实性,这是我们以前从未从Droplet-01连接过的预期。 如果我们以其他用户身份进行连接,我们会再次看到此消息。
OutputThe authenticity of host '203.0.113.22 (203.0.113.22)' can't be established.
ECDSA key fingerprint is SHA256:EXAMPLEqpYH7rwiJhfiwF0yFurW21RGhLOYa1c7yuqM.
Are you sure you want to continue connecting (yes/no)? yes
我们输入yes
并按ENTER键。
接下来,我们会在提示时输入密码。
为了安全起见,不显示密码。 一旦我们提供了密码,我们将按ENTER继续。
因为我们添加了--verbose
,所以我们应该接收类似于以下内容的输出:
Outputsent 85 bytes received 41 bytes 22.91 bytes/sec
total size is 24 speedup is 0.19
注意:如果您没有在第二个Droplet上重置密码,传输将失败,您将收到如下输出:
OutputPassword change required but no TTY available.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
要解决此问题,请通过SSH登录到目标Droplet并重置密码。
传输完成后,我们将登录到第二个Droplet并验证文件是否存在于/tmp
目录中:
第3步 - 验证转移
从我们的本地机器登录Droplet-02:
ssh root@Droplet-02-private_ip
一旦出现,我们将使用cat
来检查我们的test.txt
文件是否存在于/tmp
目录中:
cat /tmp/test.txt
我们应该得到我们在第1步中输入的文本。
OutputPrivate networking test
此时,我们已确认我们可以通过专用网络传输数据。
下一步
在本教程中,我们使用Rsync通过专用网络复制了一个文件。
- 我们建议您按照Droplets的初始服务器设置指南来保护您的新服务器。
- 您可以更安全,更方便地通过专用网络进行连接。
- 您也可能希望配置DigitalOcean云防火墙以限制允许连接的服务器和端口。