Amazon ec2 无法连接到AWS EC2实例上的Jupyter笔记本
我正在AWS EC2实例上运行Ubuntu14.04 LTS。 我正试图从MacBookPro连接到Safari中的Jypter。 我在安全组中打开了https端口443和TCP 8888Amazon 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
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到您的实例使用
。例如,如果IP地址是SSH-iec2.pem ec2 user@<您实例的公共IPv4地址>
,那么命令是18.1.10.199
ssh-iec2.pem ec2-user@18.1.10.199
- 使用
https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh,然后wget安装
。出现提示时确认所有默认选择。当被问及是否希望安装程序初始化Miniconda时,用bash Miniconda3-latest-Linux-x86_64.sh
确认yes
并再次ssh到实例中,以使更改生效退出
- 使用
创建一个conda环境conda Create-n myenv python=3.8
- 使用
激活环境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
- 在本地使用不同于默认的
端口的优点是,您可以同时在本地和远程使用jupyter笔记本电脑8888
- 在本地计算机上打开浏览器窗口,输入
作为URL,并使用启动jupyter时在远程shell中看到的令牌登录。你应该可以走了。。。你找到解决办法了吗?也有这个问题。我已经在ec2控制台中打开了端口443和8888,但我自己仍然有问题。使用jupyter notebook--ip=*启动笔记本对我来说很有用。可能需要您允许。jupyter笔记本--ip=*--允许源=*localhost:9999
c.NotebookApp.ip = '*'
jupyter notebook