You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过静态IP主机做SSH桥接 实现两台动态IP设备间的Jupyter Notebook访问

方案说明

你已经完成了中转主机的SSH反向隧道配置,只需要在原有脚本逻辑基础上增加一层端口转发即可,三个主机的角色约定如下:

  • 中转主机:公网静态IP,对应你之前脚本的$servername,用户名记为$trans_user
  • 远端目标PC:动态IP,需要运行Jupyter Notebook的设备,用户名记为$remote_user
  • 本地PC:你的工作设备,需要打开浏览器访问Jupyter

操作步骤

1. 远端动态IP主机侧配置(仅需执行一次,后台保持运行)

除了原有SSH端口的反向转发,不需要额外配置,保持如下进程后台运行即可,增加的参数可以避免隧道超时断开:

ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=5 -R 20000:127.0.0.1:22 $trans_user@$servername

2. 本地PC侧脚本修改

和你原有使用逻辑完全兼容,修改后的完整脚本如下:

# 清理本地占用的端口
sudo fuser -k 8881/tcp 8000/tcp
echo 'Port 8881、8000 is free now'
# 第一步:建立本地到中转主机的SSH隧道,映射远端PC的22端口到本地8000
ssh -N -f -L localhost:8000:127.0.0.1:20000 $trans_user@$servername
read -p '中转隧道创建完成 - 按回车继续'
# 第二步:通过本地8000端口映射远端PC的Jupyter端口到本地8881
ssh -N -f -L localhost:8881:localhost:8888 $remote_user@127.0.0.1 -p 8000
# 第三步:远程启动远端PC上的Jupyter Notebook
ssh $remote_user@127.0.0.1 -p 8000 "nohup jupyter notebook --no-browser --notebook-dir=\"$notebookdir\" >/dev/null 2>&1 &"
wait
echo '请等待几秒后自动打开浏览器'
nohup $browser http://localhost:8881/ >/dev/null 2>&1 &

可选优化配置

如果需要避免频繁输入密码,可以将本地PC的SSH公钥上传到远端目标PC,同时将远端目标PC的SSH公钥上传到中转主机,实现免密登录。


内容的提问来源于stack exchange,提问作者Pedro S. Ferreira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:15:04