我正在尝试将运行在本地机器(macOS)上的Spyder连接到运行在compute_server上的远程内核(一个集群的计算节点)。该计算节点不能直接通过互联网访问,我只能通过登录服务器访问集群。
我尝试以下操作:
1. 在compute_server上执行以下命令: ``` python -m spyder_kernels.console ``` 要连接另一个客户端到这个内核,请使用:--existing kernel-20351.json
我将这个json文件复制到本地机器上的适当位置。它包含以下文本: ``` "shell_port": 46540, "iopub_port": 39268, "stdin_port": 40704, "control_port": 42637, "hb_port": 46887, ```
2. 我通过登录服务器创建了一个ssh隧道。在本地机器上执行以下命令: ``` ssh -L46540:compute_server:46540 -L39268:compute_server:39268 -L40704:compute_server:40704 -L42637:compute_server:42637 -L46887:compute_server:46887 me@login_server ```
3. 我在本地机器上启动spyder,并要求它连接到现有的内核,输入json文件的名称,勾选“这是一个远程内核”的框,以me@login_server作为主机名。我已经设置好了用于登录到登录服务器的ssh密钥。
连接一直处于等待状态。如果我在login_server上启动spyder内核并省略第2步,则可以正常工作,但我不能在login_server上进行大量计算,必须在compute_server上工作。
有任何想法吗?
我尝试以下操作:
1. 在compute_server上执行以下命令: ``` python -m spyder_kernels.console ``` 要连接另一个客户端到这个内核,请使用:--existing kernel-20351.json
我将这个json文件复制到本地机器上的适当位置。它包含以下文本: ``` "shell_port": 46540, "iopub_port": 39268, "stdin_port": 40704, "control_port": 42637, "hb_port": 46887, ```
2. 我通过登录服务器创建了一个ssh隧道。在本地机器上执行以下命令: ``` ssh -L46540:compute_server:46540 -L39268:compute_server:39268 -L40704:compute_server:40704 -L42637:compute_server:42637 -L46887:compute_server:46887 me@login_server ```
3. 我在本地机器上启动spyder,并要求它连接到现有的内核,输入json文件的名称,勾选“这是一个远程内核”的框,以me@login_server作为主机名。我已经设置好了用于登录到登录服务器的ssh密钥。
连接一直处于等待状态。如果我在login_server上启动spyder内核并省略第2步,则可以正常工作,但我不能在login_server上进行大量计算,必须在compute_server上工作。
有任何想法吗?
localhost
作为主机名(并输入正确的端口)应该可以解决问题。 - Lu Kas