Amazon ec2 无法连接到AWS EC2实例上的Jupyter笔记本

Amazon ec2 无法连接到AWS EC2实例上的Jupyter笔记本,amazon-ec2,jupyter-notebook,Amazon Ec2,Jupyter Notebook,我正在AWS EC2实例上运行Ubuntu14.04 LTS。 我正试图从MacBookPro连接到Safari中的Jypter。 我在安全组中打开了https端口443和TCP 8888 ubuntu@ip-10-0-1-62:~$ netstat -a | grep 8888 tcp 0 0 localhost:8888 *:* LISTEN tcp 0 0 localhos

我正在AWS EC2实例上运行Ubuntu14.04 LTS。 我正试图从MacBookPro连接到Safari中的Jypter。 我在安全组中打开了https端口443和TCP 8888

ubuntu@ip-10-0-1-62:~$ netstat -a  | grep 8888
tcp        0      0 localhost:8888          *:*                     LISTEN     
tcp        0      0 localhost:8888          localhost:36190         TIME_WAIT  
ubuntu@ip-10-0-1-62:~$ netstat -a  | grep 443
unix  3      [ ]         STREAM     CONNECTED     12443    
ubuntu@ip-10-0-1-62:~$ 
我无法从Mac上的Safari浏览器连接到Jupyter。 (我可以连接到端口6006上的张力板)


对我来说,ssh隧道在这种情况下非常有效

ssh -i /path/to/your/AWS/key/file -NL 8157:localhost:8888 user@host
其中,用户和主机依赖于您的ec2实例

之后,您可以浏览到

好的,找到问题:

编辑jupyter配置:

jupyter notebook --generate-config

vim /home/ubuntu/.jupyter/jupyter_notebook_config.py
确保

c.NotebookApp.ip = '*'
还要确保在EC2服务器中打开了相关的安全组(例如端口8888)

运行Jupyter:

jupyter notebook

现在,您可以使用正确的端口远程访问它

确保您的AWS实例安全组配置如下屏幕截图:

如果您确定AWS的权限配置正确,请检查您的网络是否未阻止出站流量。当SSHing到实例中时,您可以尝试执行端口隧道,方法是:

ssh-i-l8888:127.0.0.1:8888

然后,您可以通过浏览器上的localhost:8888本地访问jupyter

我遇到上述错误,但尝试了以下命令:jupyter notebook--ip=*


这对我很有用。

这里是一个完整的工作流程,可以在Amazon AWS EC2实例上运行Jupyter笔记本或Jupyterlab。(扩展@alexopoulos7的回答)

  • 启动AWS EC2实例,例如T2 micro,用于使用免费层进行测试
  • 将系统磁盘的存储大小从8GB增加到20GB,以便有更多空间安装软件包
  • 只需使用默认的安全组即可无需在此添加任何内容默认值应为:入站
    SSH
    、端口
    22
    、源
    0.0.0/0
    、出站所有流量、所有端口)
  • 选择默认密钥对创建一个新密钥对
    .pem
    文件)
  • 将密钥文件保存到本地主目录,例如
    ~/ec2.pem
    。使用
    chmod 400~/ec2.pem
    设置适当的文件权限

  • 获取实例的公共IPv4地址(等待实例实际运行)
  • SSH到您的实例使用
    SSH-iec2.pem ec2 user@<您实例的公共IPv4地址>
    。例如,如果IP地址是
    18.1.10.199
    ,那么命令是
    ssh-iec2.pem ec2-user@18.1.10.199
  • 使用
    wget安装https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    ,然后
    bash Miniconda3-latest-Linux-x86_64.sh
    。出现提示时确认所有默认选择。当被问及是否希望安装程序初始化Miniconda时,用
    yes
    确认
  • 退出
    并再次ssh到实例中,以使更改生效
  • 使用
    conda Create-n myenv python=3.8
    创建一个conda环境
  • 使用
    conda Activate myenv
    激活环境
  • 使用
    conda安装jupyter笔记本电脑jupyterlab安装jupyter/jupyterlab
  • 使用jupyter lab启动jupyter/lab,例如,
    jupyter lab——无浏览器
  • 在本地计算机上使用
    ssh-i EC2.pem-NL 9999:localhost:8888 EC2设置到EC2实例的ssh隧道-user@18.1.10.199
    。参数:
    -i
    设置密钥文件,
    -N
    只转发端口而不执行远程命令,
    -L
    设置从本地端口(在我们的示例中为
    9999
    )到远程主机/端口的连接
  • 在本地使用不同于默认的
    8888
    端口的优点是,您可以同时在本地远程使用jupyter笔记本电脑

  • 在本地计算机上打开浏览器窗口,输入
    localhost:9999
    作为URL,并使用启动jupyter时在远程shell中看到的令牌登录。你应该可以走了。。。你找到解决办法了吗?也有这个问题。我已经在ec2控制台中打开了端口443和8888,但我自己仍然有问题。使用jupyter notebook--ip=*
    启动笔记本对我来说很有用。可能需要您允许。jupyter笔记本--ip=*--允许源=*
    c.NotebookApp.ip = '*'
    
    jupyter notebook