首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Linux连接到Windows内核

问从Linux连接到Windows内核
EN

Stack Overflow用户
提问于 2014-06-02 22:06:35
回答 2查看 972关注 0票数 2
  • 我有一台Windows机器,在这里我启动了一个IPython内核(在另一台机器上做一些不可能的事情)。
  • 我有一台Linux机器,我想从它连接到运行在Windows机器上的IPython内核。
  • 我可以从Linux机器到Windows (使用这个解决方案:https://superuser.com/a/172299)。

我试过如下:https://github.com/ipython/ipython/wiki/Cookbook:-Connecting-to-a-remote-kernel-via-ssh。自动解决方案和手动解决方案都提供了以下内容:

“错误:内核没有响应”

使用相同的解决方案,我可以从我的Linux机器连接到运行在Linux服务器上的IPython内核。有什么解决方案可以让Linux与Windows兼容吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-05 15:13:56

我在https://github.com/ipython/ipython/wiki/Cookbook%3a-Connecting-to-a-remote-kernel-via-ssh上再次尝试了手动方式,它成功了。详细情况:

代码语言:javascript
复制
windows-machine$ ipython kernel -f kernel-1234.json

代码语言:javascript
复制
linux-machine$ scp windows-machine:path/to/kernel-1234.json .
linux-machine$ cat kernel-1234.json
{
  "stdin_port": 55534, 
  "ip": "127.0.0.1", 
  "control_port": 58391, 
  "hb_port": 60540, 
  "signature_scheme": "hmac-sha256", 
  "key": "fa461cf7-f078-4c22-909f-cfa7d2a30596", 
  "shell_port": 60159, 
  "transport": "tcp", 
  "iopub_port": 59207
}
linux-machine$ ssh -f -N -L 55534:127.0.0.1:55534
linux-machine$ ssh -f -N -L 58391:127.0.0.1:58391
linux-machine$ ssh -f -N -L 60540:127.0.0.1:60540
linux-machine$ ssh -f -N -L 60159:127.0.0.1:60159
linux-machine$ ssh -f -N -L 59207:127.0.0.1:59207
linux-machine$ ipython console --existing kernel-1234.json
票数 1
EN

Stack Overflow用户

发布于 2018-01-24 15:32:38

您不需要SSH连接到远程ipython内核,无论它是运行在Windows上的ipython内核,还是运行在Linux或Mac上的内核。您需要的是使远程内核的Ip对您试图从其连接的终端可见。以下是几个步骤:

  1. server 查找( ipython内核正在运行的机器,即您希望计算发生的位置)和 client (您试图连接到的机器)的ip地址: 1.1。如果您在Windows上,打开命令提示符并执行ipconfig查找ip地址。如果Windows服务器有直接的Internet连接/lan连接,您应该会看到一些ips,比如192.168.57.1、10.2.3.64和127.0.0.1。 1.2。如果您在linux上,打开一个终端并键入ifconfig或ip addr show。您应该再次看到一些像192.168.57.1、10.2.3.64和127.0.0.1这样的ips。 1.3。测试至少一个server ip地址在client中是可见的:使用命令ping从client中Ping您的server。ping将在Windows或Linux终端上工作。如果您将windows/Linux作为VM运行,或者运行在防火墙之后,则很可能您的客户端或服务器在另一边不可见。您不必平ip地址127.0.0.1。这是一个循环回地址,并且只能从您获得此ip地址的同一台计算机上看到。例如,如果您从Windows机器中ping 127.0.0.1,它将对同一台Windows机器进行平分。如果您的client和server实例运行在同一台计算机上,那么使用此地址就可以了。但是,如果您的客户端或服务器正在VM或其他机器上运行,那么127.0.0.1将无法工作。
  2. 启动远程内核: 2.1。一旦您知道了服务器上的哪个ip地址在客户机上是可见的,那么就使用ipython kernel在机器上启动一个内核。ipython内核将启动并显示To connect another client to this kernel, use: --existing kernel-1234.json 2.2. Locate thekernel-1234.jsonfile on yourserverby importing ([https://stackoverflow.com/a/35094772/4752883](https://stackoverflow.com/a/35094772/4752883))In 1: from jupyter_client import find_connection_file In 2: find_connection_file() Out2:'C:\Users\me\AppData\Roaming\jupyter\runtime\kernel-1234.json'This will work either forLinuxorWindows`.
  3. 启动远程客户端: 3.1。找到文件后,使用linux中的scp或windows SCP w/ ssh: copying a local file from windows to a remote server using scp中的pscp或winscp将其复制到服务器机器上。 3.2。确保您是与kernel-1234.json文件相同的目录。 3.3。使用vim或您最喜欢的文本编辑器打开kernel-1234.json文件。你会注意到有一行写着"ip": "127.0.0.1"。更改您在步骤127.0.0.1中找到的从客户端可见的服务器中的ip地址,并保存json文件。 3.4。使用jupyter console –existing=kernel-1234.json启动远程内核,同时位于kernel-1234.json所在的同一驱动器中。

如果您遵循了上述步骤,那么无论ipython内核是否运行在Windows/Linux/Mac.上,您现在都应该能够连接到远程ipython内核。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24004074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档