我试过如下:https://github.com/ipython/ipython/wiki/Cookbook:-Connecting-to-a-remote-kernel-via-ssh。自动解决方案和手动解决方案都提供了以下内容:
“错误:内核没有响应”
使用相同的解决方案,我可以从我的Linux机器连接到运行在Linux服务器上的IPython内核。有什么解决方案可以让Linux与Windows兼容吗?
发布于 2014-06-05 15:13:56
我在https://github.com/ipython/ipython/wiki/Cookbook%3a-Connecting-to-a-remote-kernel-via-ssh上再次尝试了手动方式,它成功了。详细情况:
windows-machine$ ipython kernel -f kernel-1234.jsonlinux-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发布于 2018-01-24 15:32:38
您不需要SSH连接到远程ipython内核,无论它是运行在Windows上的ipython内核,还是运行在Linux或Mac上的内核。您需要的是使远程内核的Ip对您试图从其连接的终端可见。以下是几个步骤:
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将无法工作。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`.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内核。
https://stackoverflow.com/questions/24004074
复制相似问题