假设一下状态(imageshack 图片)网络。我想要在 VNC 客户端和 VNC 服务器之间建立 SSH 隧道连接。
PC1 和 PC2 都运行 TightVNC 服务器和 SSH 服务器,并允许端口 22。PC 客户端想要使用以下方式连接到 PC1:TightVNC Java 查看器。需要在 TightVNC Java 查看器中输入哪些地址(远程主机?端口?SSH 服务器?)需要对路由器进行哪些配置才能转发到正确的 PC?感谢您的回答。
答案1
首先,您必须在路由器上设置端口转发。让我们以 ssh 为例来演示一下(其他所有协议的工作方式相同)。
如果您只有一台机器,您可以简单地转发端口22
。由于您只能将端口转发到一台机器,因此这对您来说不是一个选择。为您的机器设置两个端口号。在这种情况下,我将使用10022
和20022
。现在您必须在路由器上设置两个转发:
- 一个从外部端口
10022
到内部 IP 和端口10.0.0.12:22
- 一个从外部端口
20022
到内部 IP 和端口10.0.0.14:22
这意味着端口上的每个外部请求10022
都会转到22
PC1 的端口 (ssh)。
现在,您需要从外部 PC 连接到两个 IP 的 ssh 连接88.65.41.128
。请注意,这些连接不能在默认端口上工作22
,但可以在10022
和上工作20033
。
所有其他协议/服务也可以这样做。只需将端口替换22
为该服务的端口即可。
或者,您可以通过 ssh 隧道传输每项服务。我不知道 tighVNC 端口,但我们假设它是9000
。您可以使用以下命令设置到 PC1 的隧道:
ssh -L 9001:localhost:9000 [email protected]:10022
这将通过 ssh 连接到 PC1,并将地址localhost:9000
(从 PC1 的角度来看)转发到您执行此操作的机器的端口 9001。我选择 9001,以便您可以同时从 PC2 转发 tightVNC:
ssh -L 9002:localhost:9000 [email protected]:20022
现在您可以使用地址localhost:9001
和从远程机器连接tightVNC localhost:9002
。