Amazon AWS EC2实例无法连接Jupyter Notebook求助
排查EC2上Jupyter Notebook无法访问的问题
问题背景
在Amazon Linux 2 AMI的EC2实例上完成Anaconda安装和Jupyter Notebook配置后,无法通过https://ip-xxx-xx-x-xx.us-east-2.compute.internal:8888/访问服务,已开放SSH和HTTPS的安全组入站规则。
排查线索与解决方案
1. 替换访问地址为EC2公网IP/域名
ip-xxx-xx-x-xx.us-east-2.compute.internal是EC2的内网DNS地址,仅能在AWS VPC内部访问,外部网络无法解析。操作步骤:
- 登录AWS控制台,找到该EC2实例的公网IP或已绑定的弹性IP
- 使用
https://<公网IP>:8888/访问Jupyter Notebook
2. 检查安全组端口是否正确开放
你的安全组规则仅开放了HTTPS(443端口),但Jupyter Notebook监听的是8888端口,需在安全组入站规则中添加:
- 类型:自定义TCP
- 端口范围:8888
- 源:0.0.0.0/0(或你需要限制的特定IP段)
3. 验证EC2实例防火墙规则
Amazon Linux 2默认启用firewalld,需确认8888端口允许通行:
# 查看当前防火墙规则 sudo firewall-cmd --list-all # 永久开放8888端口 sudo firewall-cmd --add-port=8888/tcp --permanent # 重启防火墙生效 sudo firewall-cmd --reload
4. 修复证书文件权限
生成的mycert.pem使用sudo创建,可能导致Jupyter进程无读取权限:
# 修改证书文件所属用户和权限 sudo chown ec2-user:ec2-user /home/ec2-user/certs/mycert.pem sudo chmod 600 /home/ec2-user/certs/mycert.pem
修改后重启Jupyter服务:
# 先停止现有进程(替换<pid>为实际进程ID,可通过ps aux | grep jupyter获取) kill <pid> # 重新启动服务 nohup jupyter notebook &
5. 确认Jupyter服务监听状态
验证Jupyter是否在0.0.0.0:8888上监听:
netstat -tulpn | grep 8888
若输出显示0.0.0.0:8888则配置正常;若仅显示内网IP,需检查jupyter_notebook_config.py中c.NotebookApp.ip = '*'是否正确保存。
内容的提问来源于stack exchange,提问作者Hyoceansun
相关产品推荐
相关产品推荐

