我有一个问题,4 天没有人能够解决。问题可能出在数据中心方面。
问题是一台服务器无法与另一台服务器通信。我什至得到了两家软件提供商的技术支持来查看我的服务器,他们也找不到任何错误配置。
但是这两个服务器都可以通过我的家庭网络通过 SSH 访问。那么如何从我的家庭网络(轻松)创建一个 VPN 隧道,以便它执行以下操作:
Server2 --> Home PC IP --> Server1
反之亦然,以便我的 SSH 工作所在的家庭 IP 充当一种代理,绕过任何类型的 NAT 阻止或任何可能阻止连接的东西?
问题是这第二台服务器无论如何只是临时的,所以做这样的事情可以解决我的问题,即使核心问题没有解决。我只需要直接从一台服务器到另一台服务器获取大量数据。
我怎样才能建立这样一个隧道来绕过这个问题?
您需要从家里打开一个 SSH 会话到 Server1,告诉它将远程端口 2222 转发到本地端口 2222:
这会在 Server1 的端口 2222 上打开一个侦听端口。因此,如果您在 Server1 上运行“ssh 127.0.0.5 -p 2222”,您实际上会连接到在端口 2222 上运行的主机上的任何内容。
目前,该端口上没有运行任何东西。
您让第一个隧道运行,并对 Server2 运行不同的命令:
这意味着无论谁连接到您家用计算机上的端口 2222,现在都将真正连接到 server2 上的本地端口 22。
一旦这两个进程运行,如果您连接到 Server1,您将找到一个监听端口 2222。在 Server1 上连接到该端口,它将由 Server2 应答。
因此,要在 server1 上将文件从 server1 中的“/tmp”复制到 server2 中的“/var/tmp”,您可以
连接会很慢并且可以进行优化,但是这样事情就变得更简单了。
我使用 127.0.0.5 而不是 127.0.0.5 的原因是您的服务器可能已经在标题“127.0.0.1”下拥有自己的密钥,如果 SSH 检测到密钥不匹配(因为在端口 2222 服务器应答是 server2,而不是 server1)。
在第一次连接时,您将收到一条警告,指出端口 2222 上的服务器 127.0.0.5 未知,如果您想将其密钥存储在已知主机中。接受。那是server2的关键。
为了安全起见,一旦不再需要它,在用户的主目录中,您会找到一个文件 ~/.ssh/known_hosts ,并且在里面有几行,最后一行可能是
(“127.0.0.5”是标识您想要的行的重要部分)。删除该行。我的系统从来没有在 127.0.0.1 和 127.0.0.5 之间混淆,但为什么要冒险。
然而
...下一次,一台服务器无法与另一台服务器通信并不是一个很有帮助的描述。你知道它发生了什么,但你没有清楚地传达它。任何这些都可能发生: