我正在尝试从远程服务器运行ipython笔记本(Amazon EC2上的Ubuntu 14.04 64位)。
我可以通过ssh隧道访问ipython笔记本,如coderwall blog中所述:
remote$ipython notebook --no-browser --port=8889
local$ssh -N -f -L localhost:8888:localhost:8889 remote_user@remote_host
但我无法使用http协议进行简单访问,如official doc或此tutorial
所述 remote$ipython notebook --no-browser --port=8889
并将我的本地浏览器指向http://mypublicip:8889
,浏览器在没有任何警告的情况下失败。
答案 0 :(得分:18)
要解决此问题,我需要:
运行笔记本电脑服务器监听所有IP地址,添加cli标志 - ip = * :
remote$ipython notebook --no-browser --ip=* --port=8889
将入站规则添加到amazon ec2实例以侦听端口8889。
+-----------------+----------+------------+-----------+
| Type | Protocol | Port Range | Source |
+=================+==========+============+===========+
| Custom TCP Rule | TCP | 8889 | 0.0.0.0/0 |
+-----------------+----------+------------+-----------+
当然现在最好添加身份验证,因为端口正在侦听所有IP地址
答案 1 :(得分:4)
正如Monkpit在下面写的那样,你的shell可能会尝试使用glob *
字符。在这种情况下,你应该写--ip=\*
- 明确地向localhost添加IP地址也有帮助:
ipython notebook --no-browser --ip=localhost --port=7777