创建到远程应用程序和容器的加密连接
如果希望在本地客户端计算机和运行在远程计算机上的应用程序之间创建加密连接,可以使用SSH隧道。有些应用程序传输信息时不加加密。要在互联网上使用加密访问这类应用程序,请使用SSH隧道,也称为SSH端口转发。这样做可以在本地客户端机器和远程应用程序(如容器会话)之间提供加密连接。如果远程主机或本地计算机受防火墙保护,则必须使用SSH隧道。
SSH隧道
这些说明说明如何将客户端机器上的端口转发到远程机器上的端口。例如,如果您在端口之间创建了端口转发机制5903
在本地客户端机器和端口上5902
远程计算机上的所有连接localhost: 5903
自动转发到应:5902
,在那里本地主机
而且应
是本地计算机和远程计算机的名称或IP地址。因此,如果设置端口5902
在允许您访问容器会话的远程计算机上,则可以直接从localhost: 5903
.建立SSH隧道后,客户端端口和容器会话之间的所有通信都将被加密。
使用PuTTY窗户客户端
如果您使用PuTTY连接到远程计算机,请在“PuTTY Configuration”对话框中添加新的转发端口。在类别下,选择连接
>SSH
>隧道
.
要通过VNC进行连接,请从本地计算机上的端口到连接到容器端口的远程实例上的端口设置一个隧道5901
(默认VNC端口)。
在Source port字段中,输入本地客户端机器上的空闲端口,起始位置为
5900
例如,5903
.2 .在“目的端口”中输入与集装箱端口连接的主机端口
5901
当您执行码头工人运行
命令,例如,localhost: 5902
,并单击添加
.注意,您必须使用本地主机
而不是主机的名称。这是因为Destination字段进行了解释本地主机
作为目标计算机的名称。
要通过web浏览器进行连接,请设置从本地机器上的端口到连接到容器端口的远程实例上的端口的隧道6080
(默认noVNC端口)。
例如,在Source port字段中,输入客户端机器上的空闲端口
6082
.2 .在“目的端口”中输入与集装箱端口连接的主机端口
6080
当您执行码头工人运行
命令,例如,localhost: 6081
,并单击添加
.注意,您必须使用本地主机
而不是主机实例的名称。这是因为Destination字段进行了解释本地主机
作为目标计算机的名称。
如果在客户端机器上使用多个容器或运行VNC服务器,则必须增加客户端机器上的源端口,直到找到空闲端口,例如,5905
或6085
.
使用命令行界面
如果您正在使用命令行界面从主机端口到连接到容器端口的远程实例的SSH隧道,请在本地终端中使用以下形式的命令:
ssh -L clientport:localhost:hostport ubuntu@MyRemoteMachine
clientport
例如,客户端机器上是否有空闲端口5903
或6082
.hostport
执行时连接到容器端口的远程实例上的主机端口是否为码头工人运行
命令,例如5902
或6081
.注意,您必须使用本地主机
而不是主机实例的名称。这是因为该命令进行解释本地主机
作为主机的名称。
例如,命令如下:
ssh -L 5903:localhost:5902 ubuntu@MyCompanyDGX1
例如,如果在客户机上运行VNC服务器,则必须增加客户机端口,直到在本地计算机上找到空闲端口为止5905
或6085
.
连接到容器桌面
要从本地计算机连接到容器桌面,必须确保在执行命令时启动了VNC服务器,并将容器端口映射到远程Docker主机实例上的端口码头工人运行
,例如:
运行-it——rm -p 5902:5901 -p 6081:6080——shm-size=512M mathworks/matlab:r2021a -vnc
vnc
启动VNC服务器和标志- p
Docker主机端口映射5902
而且6081
到容器端口的远程实例上5901
而且6080
,分别。有关运行MATLAB的更多信息®容器和使用这些标志,请参见Docker Hub上的MATLAB容器.
在你设置了从本地客户端机器到远程Docker主机实例的SSH隧道后,要在本地机器上使用web浏览器连接,请使用URL:
http://localhost:6082
注意,您必须使用本地主机
而不是主机实例的名称。
例如,如果在创建隧道时增加了客户端端口,则使用适当的客户端端口号6085
.
在您设置了从本地客户端计算机到远程Docker主机实例的SSH隧道之后,要连接本地计算机上的VNC,请使用VNC客户端连接到客户端上适当的显示端口,例如:
localhost: 1
注意,您必须使用本地主机
而不是主机实例的名称。
如果在创建隧道时增加了客户端端口,则使用适当的客户端显示端口号,例如,5
为端口5905
.