Coze插件开发:腾讯云服务器+远程GPU服务器+jupyter搭建自定义插件开发平台
你现在之所以只需要重启 Jupyter 就能重新访问,很大概率是 iptables / nginx 转发规则还在,只是。# PREROUTING: 把外部访问 8888 的流量转发到 GPU 电脑 10.66.66.3:8888。(可以是 iptables,也可以是 nginx 反向代理,只要当时配置成功,这部分一般不需要每次动)→ 关闭 token 验证,访问不用输 token(方便,但不安全,
一、需求与场景说明
目标:
在家里的 GPU 电脑上跑 Jupyter Lab,用它的显卡训练模型;
但对外只暴露腾讯云服务器的公网 IP,通过:
http://15452.1346.25325.228:8888/lab就能从任意地方访问这台 GPU 电脑上的 Jupyter。
关键角色:
-
🖥 GPU 电脑(家里 / 实验室的 Windows 机)
-
有显卡,但没有公网 IP
-
通过 WireGuard 接入腾讯云的私网,地址是
10.66.66.3/32
-
-
☁ 腾讯云服务器(有公网 IP 的云主机)
-
公网 IP:
http://15452.1346.25325.228 -
作为 入口网关 + WireGuard 服务器 + 端口转发节点
-
-
💻 你的笔记本 / 任何外部设备
-
只需要能访问公网
-
通过浏览器打开
http://15452.1346.25325.228:8877888/l6ab使用 Jupyter
-
核心思路一句话:
Jupyter 实际运行在 GPU 电脑上,但对外“借用”的是腾讯云的公网 IP。
二、整体网络拓扑(逻辑关系)
用文字画一下拓扑图:
[笔记本] <----公网 HTTP 8888----> [腾讯云服务器 ]
│
│ WireGuard 隧道 (UDP 51820, 10.66.66.0/24)
│
[GPU 电脑 10.66.66.3]
(Jupyter Lab 监听 0.0.0.0:8888)
-
腾讯云服务器对外开放
8888端口 -
内部通过 WireGuard 把流量转发到 GPU 电脑
10.66.66.3:8888 -
GPU 电脑上启动 Jupyter Lab,真正干活的是它。
三、前置条件回顾
你目前已经需要已经完成:
-
腾讯云服务器已经安装并配置好 WireGuard,作为服务端
-
GPU 电脑上安装了 WireGuard 客户端,并成功连上,获得地址:
10.66.66.3/32 -
腾讯云控制台 / 防火墙 已放行:
-
UDP
51820(WireGuard 端口) -
TCP
8888(对外访问 Jupyter 的入口端口)
-
-
之前已经配置好从
http://15452.1346.25325.228:8888转发到10.66.66.3:8888的规则
(可以是 iptables,也可以是 nginx 反向代理,只要当时配置成功,这部分一般不需要每次动)
真正会“丢”的,通常是第 4 步——GPU 电脑上的 Jupyter 没有重新启动。
四、WireGuard 配置结构说明(方便你之后看懂)
1. 腾讯云服务器(服务端)大致配置结构
[Interface]
Address = 10.66.66.1/24
ListenPort = 51820
PrivateKey = <server_private_key># GPU 电脑作为客户端
[Peer]
PublicKey = <gpu_client_public_key>
AllowedIPs = 10.66.66.3/32
2. GPU 电脑(客户端)配置结构(你截图里的内容)
大致是这样的:
[Interface] PrivateKey = <client_private_key> Address = 10.66.66.3/32 DNS = 1.1.1.1 [Peer] PublicKey = <server_public_key> AllowedIPs = 10.66.66.0/24 Endpoint = 152.137.228.222:51820 PersistentKeepalive = 25
关键字段解释:
-
Address = 10.66.66.3/32
→ GPU 电脑在 WireGuard 内网中的地址 -
Endpoint =152.137.228.222:51820
→ 腾讯云服务器公网 IP + WireGuard 监听端口 -
AllowedIPs = 10.66.66.0/24
→ 把访问 10.66.66.x 网段的流量都走 WireGuard
只要 WireGuard 显示“已连接 / 最近握手时间 xx 秒前 / 有流量计数”,内网就畅通。
五、在 GPU 电脑上启动 Jupyter Lab(最关键的一步)
1. 进入你要用的 Conda 环境
conda activate CV_GP
2. 启动 Jupyter Lab 监听 0.0.0.0:8888
jupyter lab --ip=0.0.0.0 --port=8888 --NotebookApp.token=''
解释一下参数:
-
--ip=0.0.0.0
→ 允许所有网卡访问(包括 WireGuard 的 10.66.66.3) -
--port=8888
→ 必须和腾讯云那边的转发规则一致(你就是用 8888) -
--NotebookApp.token=''
→ 关闭 token 验证,访问不用输 token(方便,但不安全,生产环境建议改成密码)
💡 只要这一行命令执行成功,这次的“Jupyter 下线”就被修复了。
你刚才就是这样解决问题的。
3. 本地 GPU 机上可以先自测一下
在 GPU 电脑上打开浏览器,访问:
http://localhost:8888/lab
如果页面正常 → 说明 Jupyter 本地 OK,可以继续下一步。
六、腾讯云服务器:对外暴露 8888 端口(逻辑说明)
这一部分你之前已经搞定了,现在只做逻辑回顾 + 便于下次查:
1. 安全组 / 防火墙放行
在 腾讯云控制台 → 安全组 中开放:
-
入站规则:TCP
8888允许 0.0.0.0/0 -
服务器本机会再通过 iptables / nginx 把该流量转给 GPU 电脑
2. 端口转发思路(两种典型做法)
这里写一下逻辑和示例,方便你或者别人日后复盘/复现。
做法 A:iptables 端口转发(NAT)
在腾讯云服务器上:
# 开启内核转发 echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward # PREROUTING: 把外部访问 8888 的流量转发到 GPU 电脑 10.66.66.3:8888 sudo iptables -t nat -A PREROUTING -p tcp --dport 8888 -j DNAT --to-destination 10.66.66.3:8888 # POSTROUTING: 返回流量伪装一下,让 GPU 返回包还能正确回到云服务器再回公网 sudo iptables -t nat -A POSTROUTING -p tcp -d 10.66.66.3 --dport 8888 -j MASQUERADE
一旦规则配置好,并且保存(例如用
iptables-save),以后只需保证规则仍然在,你只要重新启动 GPU 上的 Jupyter 就行了。
做法 B:Nginx 反向代理(如果你走 HTTP 转发)
/etc/nginx/conf.d/jupyter.conf 举例:
server {
listen 8888;
location / {
proxy_pass http://10.66.66.3:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
然后:
sudo nginx -s reload
外部就可以通过 http://152.137.228:8888/ 访问到 GPU 电脑的 Jupyter。
你现在之所以只需要重启 Jupyter 就能重新访问,很大概率是 iptables / nginx 转发规则还在,只是 Jupyter 进程挂了。
七、从外部笔记本访问的完整路径
完整流量路径是这样的:
浏览器(例如你在咖啡店的笔记本) │ │ HTTP 请求:152.137.228.222:51820:8888 ▼ [腾讯云服务器 152.137.228.222:51820] │ │ (iptables 或 nginx 把流量转发到 10.66.66.3:8888) ▼ [WireGuard 内网 10.66.66.0/24] ▼ [GPU 电脑 10.66.66.3:8888 上的 Jupyter Lab]
你就可以在任何地方通过:
http://152.137.228.222:8888/lab
使用你的 GPU 电脑。
八、以后重启时的“超简版操作清单”
下次只要按这个 checklist 来就行:
-
✅ 确认 WireGuard 已连接
-
GPU 电脑的 WireGuard 客户端显示:
已连接 / 最近握手 xx 秒前 / 有流量
-
-
✅ 在 GPU 电脑上打开终端,激活环境:
conda activate CV_GPU
-
✅ 启动 Jupyter Lab(关键命令):
jupyter lab --ip=0.0.0.0 --port=8888 --NotebookApp.token='' -
✅ 本地试一下(GPU 机浏览器):
http://localhost:8888/lab -
✅ 最后在外网笔记本访问:
http://152.137.228.222:51820:8888/lab
如果第 5 步访问失败,就按顺序排查:
-
先看第 4 步本地是否正常
-
再从云服务器执行:
curl http://10.66.66.3:8888看内网是否通 -
再检查云服务器安全组和 8888 转发规则是否还在
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)