无法从本地访问远程HPC上的Jupyter Notebook求助
解决Jupyter Notebook远程连接HPC无法访问的问题
核心问题定位
你在端口转发时将本地8889端口映射到远程8888端口,但浏览器访问的是本地8888,这是直接的端口不匹配问题。除此之外,还有几个可能的配置问题需要排查。
分步解决方案
1. 修正端口转发与访问地址
你当前的转发命令是:
ssh -N -f -L localhost:8889:localhost:8888 a06upi0e@cometa.hpc.cineca.it
该命令的作用是把本地8889端口的请求转发到远程HPC的8888端口。因此你需要在浏览器中访问:
http://127.0.0.1:8889/?token=2c11ef7864a2804cae3b0f650527067f5420778909baf5e1
仅需将端口从8888改为8889,保持token不变即可。
2. 优化Jupyter启动配置
启动Jupyter时,建议将绑定IP改为0.0.0.0(允许所有网卡访问),避免仅绑定回环地址导致的潜在问题:
jupyter notebook --no-browser --ip=0.0.0.0 --port=8888
这种配置也能适配后续在计算节点运行Jupyter的场景(部分HPC禁止在登录节点运行服务)。
3. 排查端口占用问题
- 远程HPC端:检查8888端口是否被其他进程占用
若有占用,更换未被使用的端口(如8890),同步修改Jupyter启动命令、端口转发命令和访问地址。lsof -i :8888 - 本地端:检查8889端口是否被占用
若被占用,更换本地转发端口(如8891),转发命令改为:# Linux/macOS lsof -i :8889 # Windows netstat -ano | findstr :8889
浏览器对应访问ssh -N -f -L localhost:8891:localhost:8888 a06upi0e@cometa.hpc.cineca.ithttp://127.0.0.1:8891/?token=xxx
4. 确认SSH转发是否生效
通过本地终端测试连通性:
curl http://127.0.0.1:8889/?token=2c11ef7864a2804cae3b0f650527067f5420778909baf5e1
- 若返回HTML内容,说明转发正常,问题可能出在浏览器设置(如代理)
- 若连接超时,说明SSH转发未建立,需检查:
- HPC登录地址是否正确
- 本地SSH客户端版本是否支持转发参数
- 本地或远程防火墙是否拦截端口
5. HPC环境特殊注意事项
部分HPC系统禁止在登录节点运行Jupyter,要求提交到计算节点:
- 登录登录节点后,提交交互式作业到计算节点(命令参考HPC文档,如
salloc或qsub -I) - 在计算节点上加载Anaconda、激活环境、启动Jupyter(绑定
0.0.0.0和指定端口) - 重新建立端口转发,需通过登录节点中转到计算节点,命令格式为:
计算节点IP可通过ssh -N -f -L localhost:8889:<计算节点IP>:8888 a06upi0e@cometa.hpc.cineca.ithostname -i在交互式作业中获取。
内容的提问来源于stack exchange,提问作者Diego F.
相关产品推荐
相关产品推荐

