Amazon ec2 从远程服务器运行ipython笔记本

Amazon ec2 从远程服务器运行ipython笔记本,amazon-ec2,ipython-notebook,remote-server,Amazon Ec2,Ipython Notebook,Remote Server,我正在尝试从我的远程服务器(Amazon EC2上的Ubuntu 14.04 64位)运行ipython笔记本 I可以通过ssh隧道访问ipython笔记本,如中所述: remote$ipython笔记本电脑--无浏览器--端口=8889 local$ssh-N-f-L localhost:8888:localhost:8889 remote_user@remote_host 但是,我不能使用本节或中所述的http协议进行简单访问 remote$ipython笔记本电脑--无浏览器--端口=88

我正在尝试从我的远程服务器(Amazon EC2上的Ubuntu 14.04 64位)运行ipython笔记本

I可以通过ssh隧道访问ipython笔记本,如中所述:

remote$ipython笔记本电脑--无浏览器--端口=8889

local$ssh-N-f-L localhost:8888:localhost:8889 remote_user@remote_host

但是,我不能使用本节或中所述的http协议进行简单访问

remote$ipython笔记本电脑--无浏览器--端口=8889


并将我的本地浏览器指向
http://mypublicip:8889
,浏览器在没有任何警告的情况下失败。

要解决此问题,我需要:

  • 在所有IP地址上运行笔记本服务器侦听添加cli标志--IP=*

    remote$ipython笔记本--无浏览器--ip=*--port=8889

  • 将入站规则添加到amazon ec2实例,以便侦听端口8889。
    
    +-----------------+----------+------------+-----------+
    |类型|协议|端口范围|源|
    +=================+==========+============+===========+
    |自定义TCP规则| TCP | 8889 | 0.0.0/0|
    +-----------------+----------+------------+-----------+
    


  • 当然,现在最好添加身份验证,因为端口正在侦听所有ip地址

    ,正如Monkpit在下面所写的,您的shell可能会尝试glob
    *
    字符。在这种情况下,您应该编写
    --ip=\*
    ——显式地将ip地址添加到localhost也有帮助:

     ipython notebook --no-browser --ip=localhost  --port=7777
    

    有些shell需要转义星号。这不起作用的原因是shell试图展开glob
    *
    。替换为
    --ip=\*
    以退出glob,您可以接受来自任何ip的连接。完美答案!只需将
    --ip=localhost
    更改为
    --ip=yourip
    ,就可以了。