领取免费200卡时算力,云端私有服务 如 AMD云GPU如何开放外网访问,如何上传下载文件,cpolar ngrok打通公网隧道
ngrok打通公网隧道完整详解(适配AMD云GPU+vLLM私有化DeepSeek场景)
注册 AMD AI 开发者计划,领取免费200卡时算力
http://marketing.csdn.net/questions/Q2604140858304426315?utm_source=zhangfeng1133
AMD Developer Cloud(AMD云GPU)完整指南:外网开放 + 文件上传下载
前置核心说明
- AMD云容器禁用账号密码登录,全程仅支持SSH密钥鉴权;
- JupyterLab、vLLM仅容器本地
127.0.0.1监听,默认无公网访问权限,必须内网穿透(ngrok/cpolar); - 分两大类需求:
- ① 外网访问Web服务(Jupyter、vLLM 8000推理接口)
- ② 本地Mac/电脑 ↔ 云端 上传/下载数据集、模型权重
一、外网开放Web服务(JupyterLab / vLLM)两种方案
方案1:cpolar(国内首选,低延迟、无强制人机验证)
1. 云端容器一键安装cpolar
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
sudo systemctl enable cpolar
sudo systemctl start cpolar
2. 绑定账号Token
浏览器打开容器内面板:http://127.0.0.1:9200,登录cpolar官网复制Authtoken填入绑定。
3. 穿透端口
# 暴露JupyterLab 8888端口,公网访问Jupyter传文件、写代码
cpolar http 8888
# 同时暴露vLLM推理接口8000端口,本地Mac远程调用大模型
cpolar http 8000
执行后输出公网HTTPS地址:https://xxx.cpolar.top
- 免费版:域名24小时自动刷新;
- 付费专业版:可固定二级域名,永久不变,适合长期跑模型。
方案2:ngrok(海外节点,适合海外设备访问)
就是你前文第七步完整流程,简要复述:
- 安装ngrok官方源
- 注册账号配置authtoken(必须,否则4018报错)
- 穿透端口
ngrok http 8000 # vLLM
ngrok http 8888 # Jupyter
两者对比(AMD云场景)
| 工具 | 网络 | 免费版限制 | API调用友好度 |
|---|---|---|---|
| cpolar | 国内节点,延迟低 | 域名24h刷新,带宽1Mbps | 无弹窗,程序可直接调用vLLM |
| ngrok | 海外节点,国内易超时 | 重启隧道域名变更 | 免费外网访问弹出人机验证,脚本调用易失败 |
二、文件上传下载4套方案(适配无密码SSH密钥环境)
方案1:JupyterLab网页传输(最简单,无需SSH/额外隧道)
操作步骤
-
用cpolar/ngrok打通
8888端口,打开公网Jupyter地址; -
左侧文件面板:
- 上传:点顶部上传图标,单选/多选文件;
- 下载:右键文件 → Download;
-
文件夹处理:
Jupyter原生不支持直接上传文件夹,云端终端打包压缩:# 压缩文件夹 tar -zcvf dataset.tar.gz ./my_dataset # 解压上传后的压缩包 tar -zxvf dataset.tar.gz
适用场景:临时小文件、调试、不想配置SSH密钥
方案2:SFTP图形化拖拽(FileZilla,大模型/批量文件夹首选)
依赖AMD云自带SSH密钥登录,全程不用密码
- 获取容器SSH信息
实例详情页 → Interactive Endpoints,复制:
- SSH私钥Secret Key
- 公网SSH地址、端口
- 本地Mac配置FileZilla
- 协议:
SFTP - SSH文件传输 - 主机:AMD给出的SSH域名/IP
- 端口:分配的SSH端口
- 用户:默认
root - 登录类型:密钥文件,导入平台下载的私钥,密码框留空
- 直接左右面板拖拽文件夹,支持几十GB模型断点续传
方案3:命令行SCP/Rsync(Mac终端无软件,自动化同步)
1)本地上传文件/文件夹到云端
# 单文件
scp -P SSH端口 /本地文件路径 root@AMD_SSH地址:/workspace/models
# 文件夹(加-r)
scp -P SSH端口 -r /本地数据集 root@AMD_SSH地址:/workspace/dataset
2)云端下载大模型到本地(推荐rsync,断点续传)
rsync -avz --progress --partial -e "ssh -p SSH端口" root@AMD_SSH地址:/workspace/deepseek-r1-14b ./本地保存目录
方案4:简易HTTP静态文件服务(一键公网批量下载模型)
不想进Jupyter、SFTP,直接对外开放模型目录下载
- 进入模型目录,启动静态文件服务
cd /workspace/models
python -m http.server 8001
- 新开cpolar/ngrok隧道暴露8001
cpolar http 8001
- 本地浏览器打开公网地址,一键下载全部权重文件
三、SFTP vs Jupyter网页 怎么选?
| 传输方式 | 优势 | 短板 | 适合场景 |
|---|---|---|---|
| Jupyter网页 | 零配置、复用现有HTTP隧道、不用密钥 | 不支持文件夹直传、大文件慢 | 临时调试、小文件、多人浏览器操作 |
| SFTP FileZilla | 拖拽文件夹、断点续传、大模型高速传输 | 需要配置SSH密钥 | 4GB+模型权重、数据集批量同步 |
四、高频避坑(AMD云专属)
- 无法用密码SFTP登录
AMD容器强制SSH密钥鉴权,任何密码输入都会拒绝,FileZilla必须选择「密钥登录」; - ngrok免费版每次重启隧道URL变更
每次重启ngrok http 8000后,本地vLLM客户端API地址要同步修改; - cpolar免费带宽1Mbps,大模型上传卡顿
批量几十GB权重建议升级专业版3Mbps带宽,或本地先压缩tar.gz再上传; - Jupyter网页超时断开
大文件上传时不要关闭浏览器页面,超时重新上传即可; - 容器闲置自动销毁
不用时导出模型文件,实例销毁后所有数据清空。
五、最简工作流(跑vLLM远程调用场景)
- AMD云启动vLLM服务,监听8000;
- 云端安装cpolar,打通8000(推理)+8888(Jupyter传文件);
- 本地Mac浏览器打开cpolar Jupyter地址,上传数据集;
- 本地Mac用curl/AI客户端调用cpolar 8000公网地址的vLLM接口;
- 训练完成后FileZilla SFTP批量下载模型权重到本地。
AMD云GPU 各类上传下载方案速度实测全对比
分四大类:cpolar穿透、ngrok穿透、Jupyter网页、AMD原生直连SFTP,结合你跑vLLM/大模型权重场景讲清楚速度上限、优缺点、适合多大文件。
一、cpolar(国内穿透,你日常Mac远程首选)
1. 免费版(1Mbps总带宽,上行+下行共享)
- 理论峰值:125 KB/s,实测稳定 80~110 KB/s
- 1GB文件:约20分钟;10GB模型权重:3小时+
- 限制:每月1GB流量上限、24小时随机域名、单隧道限速,晚高峰会跌到30~50KB/s
- 适用:几十MB小数据集、单文件调试、偶尔下载推理结果
2. 付费基础版(2Mbps)
- 实测稳定 200~240 KB/s,10GB ≈1.5小时
3. 专业版(3~10Mbps)
- 3Mbps ≈350KB/s,10Mbps ≈1.1MB/s
- 无流量限制、固定域名,适合长期频繁传几十GB模型
速度短板
- HTTP隧道(Jupyter网页、静态文件服务)有HTTPS加密开销,比同带宽TCP(SFTP)慢10%~20%
- 免费版共享节点,多人同时使用会严重降速
二、ngrok(海外穿透,国内访问极不推荐传大文件)
- 带宽无官方硬限速,但跨境国际出口瓶颈严重
- 国内Mac实测:20~100KB/s波动极大,高峰期甚至10KB/s以内、频繁断连
- 额外问题:
- 免费外网访问弹出人机验证,浏览器下载会中断
- TCP隧道每次重启端口随机,SFTP传文件极折腾
- 适用场景:仅临时调试vLLM API,绝不适合上传/下载模型权重
三、JupyterLab网页上传下载(复用8888 HTTP隧道)
速度完全依附当前cpolar/ngrok带宽,额外多一层浏览器文件分片开销:
- cpolar免费版:70~95KB/s,比纯TCP-SFTP慢15%左右
- 致命短板:
- 不支持文件夹直传,必须先云端打包tar.gz
- 大文件(>2GB)浏览器容易超时断开,无断点续传
- 适合:<500MB小文件、csv、代码、推理输出图片
四、AMD云原生直连SFTP(最快、优先大模型传输)
不用任何穿透工具,直接使用AMD云实例自带SSH公网地址,本地Mac密钥免密SFTP/SCP/Rsync:
速度表现
- 国内家庭千兆宽带:3~8 MB/s,是cpolar免费版的30~80倍
- 企业专线可冲到10~15MB/s
- 40GB大模型:千兆网40分钟~2小时完成,支持rsync断点续传
优势
- 无第三方带宽限速、无流量限制、无域名过期问题
- FileZilla图形拖拽、支持多文件并发、断点续传
局限
需要AMD实例开放交互式SSH端点,每次新建实例要重新配置本地密钥
五种传输方案速度总表(直观对比)
| 传输方式 | 实测稳定速度 | 40GB模型耗时 | 断点续传 | 适合场景 |
|---|---|---|---|---|
| AMD原生SFTP直连 | 3~8 MB/s | 40min~2h | ✅ rsync支持 | 大模型权重、批量数据集(首选) |
| cpolar专业版10Mbps TCP-SFTP | ~1.1 MB/s | 10h | ✅ | 长期远程无固定公网、国内稳定访问 |
| cpolar免费版TCP-SFTP | 80~110 KB/s | 10h+ | ❌ | 临时小文件应急 |
| cpolar免费版Jupyter网页 | 70~95 KB/s | 12h+ | ❌ | 代码、小csv、图片 |
| ngrok国内穿透(任意隧道) | 20~100 KB/s波动 | 极易中断失败 | ❌ | 仅调试API,不适合传文件 |
关键提速实操建议(针对AMD云GPU传模型)
1. 4GB以上大文件:优先原生SFTP,放弃穿透工具
本地Mac用rsync,支持断点续传,断网后不用重新从头传:
rsync -avz --progress --partial -e "ssh -p AMD_SSH端口" root@AMD地址:/workspace/models ./本地文件夹
2. 只能用cpolar穿透的场景(无原生SSH权限)
- 传文件一律用 cpolar tcp 22 开SFTP隧道,不要用Jupyter网页,速度快15%
- 传输前云端打包压缩:
tar -zcvf model.tar.gz 模型文件夹,压缩后体积减半,传输时间直接减半
3. 避坑点
- cpolar免费版每月仅1GB流量,频繁传模型会直接限速429报错;
- ngrok跨境链路不适合大文件,几十GB权重大概率中途断开;
- Jupyter网页单文件建议控制在2GB以内,超大文件必崩;
- SFTP加密有10%~20%性能损耗,纯内网直连时速度最优。
场景选型总结
- 频繁上传/下载DeepSeek 14B/几十GB权重:AMD原生SFTP直连(速度碾压所有穿透工具)
- 家里Mac随时远程调用vLLM,偶尔传小文件:cpolar免费版HTTP Jupyter网页
- 长期稳定远程、无原生SSH权限:cpolar专业版TCP 22 SFTP隧道
- 海外设备调用API、完全不建议传文件:ngrok仅做接口调试,不用来传输数据
一、为什么本部署流程必须用ngrok
AMD云GPU实例属于云端私有隔离网络,vLLM推理服务仅绑定localhost:8000,外网、本地Mac/Windows电脑无法直接访问容器内API。
ngrok是加密内网穿透隧道工具,无需公网IP、不用配置防火墙/安全组,一键把容器内8000端口暴露为公网HTTPS地址,本地AI客户端(Cherry Studio/OpenCode)可远程调用私有化大模型,所有对话数据只在AMD云GPU内流转,不会上传第三方AI服务商。
ngrok核心工作原理
- 云容器内安装ngrok客户端,主动向外与ngrok全球云服务器建立持久TLS加密双向隧道(出站连接,规避容器防火墙拦截);
- ngrok云端分配专属临时HTTPS域名
https://xxxx.ngrok-free.app; - 本地电脑发起API请求 → ngrok云端 → 加密隧道转发至AMD云容器
localhost:8000(vLLM服务); - 模型推理结果沿原加密隧道原路返回本地,全程HTTPS加密传输。
简单比喻:AMD云GPU是封闭小黑屋,ngrok相当于在公网搭建一条加密专用通道,外部设备才能进入屋内调用模型。
二、分步完整拆解操作流程
步骤1:Debian容器安装ngrok(AMD云环境专用脚本)
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
&& echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \
| sudo tee /etc/apt/sources.list.d/ngrok.list \
&& sudo apt update \
&& sudo apt install ngrok
- 操作逻辑:导入ngrok官方GPG密钥→添加官方apt软件源→更新软件列表→安装客户端;
- 常见提示说明:安装时弹出
compute-artifactory.amd.com源解析失败警告,是AMD容器内部私有源失效,不影响ngrok安装,直接忽略。
步骤2:注册账号并获取Authtoken(强制必填,2023年底后新规则)
- 注册地址:https://dashboard.ngrok.com/signup
支持GitHub/Google/邮箱注册,必须完成邮箱验证,否则token失效; - 密钥获取页:https://dashboard.ngrok.com/get-started/your-authtoken
- Authtoken作用:ngrok身份凭证,用来绑定隧道会话,无token直接启动隧道会抛出
ERR_NGROK_4018报错。
步骤3:容器内配置身份令牌
ngrok config add-authtoken 你的复制token字符串
命令会自动写入~/.ngrok2/ngrok.yml配置文件,持久生效,重启终端无需重复配置。
步骤4:启动隧道,暴露vLLM 8000端口
ngrok http 8000
启动成功输出示例
Session Status online
Forwarding https://xxxx.ngrok-free.app -> http://localhost:8000
https://xxxx.ngrok-free.app:公网访问根地址,后续客户端配置核心参数;- 后台同步开启本地调试面板:
http://127.0.0.1:4040,可查看所有API请求日志、调试报错。
步骤5:本地电脑验证公网连通性(Mac/Windows终端通用)
curl https://xxxx.ngrok-free.app/v1/models \
-H "Authorization: Bearer no-key"
验证成功标准
返回标准JSON,data[0].id字段值为deepseek-r1-14b,代表公网隧道正常转发请求到vLLM推理服务。
vLLM本地服务不校验API密钥,请求头随便填写非空字符串(示例
no-key)即可。
三、高频报错与避坑指南
1. ERR_NGROK_4018 认证失败
- 原因:ngrok新版强制账号+token认证,未执行
add-authtoken直接启动隧道; - 解决:完成账号注册、邮箱验证,复制token执行配置命令后重启隧道。
2. 免费版域名每次重启随机变化
免费策略限制:每次关闭ngrok http 8000再重启,xxxx.ngrok-free.app子域名会变更;
- 影响:Cherry Studio、OpenCode内配置的API Host地址失效,无法连接模型;
- 解决方案:每次重启隧道后,同步修改本地客户端的公网URL配置。
3. 免费版硬性资源限制(AMD云部署需注意)
- 同一账号仅支持1个同时在线隧道,无法同时穿透多个端口;
- 月度流量、HTTP请求数有上限(每月20000次请求、1GB出站流量),大模型高频对话容易超限断连;
- 隧道会话存在超时机制,长时间闲置会自动断开,需要重新启动;
- 不支持自定义固定域名,商用长期部署建议付费版。
4. 本地curl返回连接拒绝/超时
排查顺序:
- 确认AMD云Terminal中vLLM服务正常运行(
INFO: Application startup complete); - 确认ngrok会话状态为
online,无断开重连提示; - 核对URL无拼写错误,区分
ngrok-free.app,不要多打/少字符; - 检查AMD云实例未被关闭,实例销毁后GPU与隧道全部失效。
四、适配DeepSeek-vLLM私有化场景的使用价值
- 数据隐私闭环:模型、算力全部在AMD云GPU,用户提示词、代码、文档仅在容器内流转,不用上传第三方AI平台;
- 跨设备远程访问:办公室、家里Mac/Windows均可随时连接私有14B大模型;
- 标准OpenAI兼容API:ngrok转发后地址完全兼容Cherry Studio、OpenCode、Python OpenAI SDK等主流客户端;
- 零网络改造:不用申请公网IP、不用修改云服务器安全组,一条命令完成端口公网暴露。
五、补充:ngrok与本流程上下游联动关系
整体链路:
本地电脑(Cherry/OpenCode)→ ngrok公网HTTPS域名 → ngrok加密隧道 → AMD云容器ngrok客户端 → localhost:8000(vLLM推理服务)→ DeepSeek-R1-14B模型
- 上游:vLLM启动必须监听8000端口,隧道端口参数要和服务端口严格对应;
- 下游:客户端配置时,API Host填写
https://xxxx.ngrok-free.app,API路径拼接/v1(OpenAI协议标准); - 收尾提醒:不用GPU时,务必删除AMD云实例,否则持续消耗200小时免费算力额度,ngrok隧道也会同步失效。
六、替代方案对比(长期使用建议)
- ngrok免费版:适合短期测试、学习部署,零成本,但域名变动、流量有限;
- ngrok付费版:固定域名、不限流量,适合个人长期私有模型使用;
- FRP(内网穿透):自建服务器做中转,无流量限制,但需要自备公网服务器,部署复杂度更高;
- cpolar:国内替代穿透工具,国内网络稳定性优于ngrok国际节点。
一、内网穿透通用应用场景(适配 ngrok / cpolar,包含你文中 vLLM 远程调用场景)
1. AI 大模型远程调用(你原文核心场景)
本地/云端GPU容器部署 vLLM、Ollama、Dify、DeepSeek、Llama 推理服务,仅内网可访问:
- 办公室Mac、笔记本、手机随时随地调用私有大模型API;
- 异地团队协作调试本地微调模型、RAG知识库;
- 不用购买公网IP、不用修改云服务器安全组,一行命令生成公网HTTPS地址;
- 完全隔离模型权重、业务数据,不用上传第三方AI平台,数据隐私可控。
2. 开发调试 Web / 接口 / Webhook(程序员高频)
- 公众号、小程序、企业微信、钉钉开发:本地接口接收平台消息回调,不用反复部署测试环境;
- 支付、OAuth、第三方登录回调调试(支付宝/微信支付、Stripe);
- GitHub/Gitee Webhook、自动化CI测试本地接收推送事件;
- 移动端App、小程序联调本地后端接口,手机直接访问本地服务。
3. 临时项目公网演示
- 未上线的网站、后台管理系统、可视化大屏,发给客户/领导远程预览;
- 前端Vue/React本地热更新,外网实时查看修改效果,省去打包部署流程。
4. 远程内网设备管理(TCP隧道)
- SSH远程连接云端Linux、家里树莓派、NAS;
- 远程桌面(Windows 3389、Mac VNC)在外控制内网电脑;
- 穿透数据库端口(MySQL/PostgreSQL),临时远程连接本地数据库调试;
- 智能家居、监控摄像头、工业设备外网远程管理。
5. 个人/家庭私有服务外网访问
- 家庭NAS网盘、影音库、私人博客、本地文件管理器公网访问;
- 本地搭建私人ChatGPT、知识库、文档服务,出门随时使用。
6. 远程办公、企业内网系统访问
- 出差远程访问公司CRM、ERP、财务系统、内部OA;
- 分支机构无需搭建复杂VPN,轻量化临时内网穿透。
7. 本地服务对外提供临时API
测试第三方系统对接自有接口、临时开放接口给合作方,用完直接关闭隧道,安全性高。
二、cpolar 完整介绍(国内 ngrok 平替)
1. 基本定义
cpolar(极点云)是国产商用内网穿透工具,原理和 ngrok 完全一致:客户端建立加密长连接到国内中继服务器,把内网端口映射为公网HTTPS/TCP地址,无需公网IP、无需路由器端口映射,专门适配国内网络环境。
2. 核心工作流程
- 云服务器/本地电脑安装 cpolar 客户端;
- 执行
cpolar http 8000(对应vLLM端口)建立隧道; - 客户端主动连接国内云中继节点,生成公网地址
https://xxx.cpolar.top; - 外网请求经由国内服务器加密转发至本地8000端口vLLM服务;
- 自带本地调试面板
127.0.0.1:4040,查看所有API请求日志。
3. 核心功能
基础能力
- 同时支持 HTTP/HTTPS / TCP 隧道,覆盖Web、数据库、SSH、远程桌面;
- 自动签发HTTPS证书,所有公网地址默认加密;
- 全平台兼容:Windows、macOS、Linux、ARM树莓派、Docker容器;
- 图形化中文Web管理面板 + 命令行双操作模式,新手友好;
- 分国内专属节点,国内访问延迟远低于ngrok海外节点。
进阶付费功能
- 保留固定二级子域名(免费版24小时随机变更,每次重启地址变);
- 自定义域名绑定、泛域名支持;
- 固定TCP端口、多并发隧道、更高带宽;
- IP白名单访问控制,限制仅指定设备调用你的vLLM服务;
- 多进程同时在线、流量统计、长期保活隧道。
4. 套餐资费(2026)
| 版本 | 价格 | 核心限制 |
|---|---|---|
| 免费版 | 永久免费 | 1Mbps带宽、域名24小时刷新、1进程、4隧道 |
| 基础版 | 99元/年 | 2Mbps、保留3个子域名、8隧道 |
| 专业版 | 149元/年 | 3Mbps、自定义域名、固定TCP端口 |
| 商业版 | 204元/年 | IP白名单、泛域名、多进程、企业支持 |
5. 和 ngrok 关键对比(针对vLLM远程调用场景)
cpolar 优势
- 国内网络稳定:服务器在国内,Mac本地访问云端vLLM无海外延迟、丢包,不用翻墙;
- 中文控制台、中文文档,报错提示易懂;
- 免费版访问无强制人机验证页面(ngrok免费版外网打开会弹出确认页,影响API程序调用);
- 国内支付、售后客服响应快;
- 云服务器、国内GPU云环境兼容性更好。
cpolar 短板
- 免费二级域名每24小时自动更换,每次远程调用vLLM都要更新客户端URL(付费版可锁定固定域名);
- 免费带宽仅1Mbps,大模型长对话、批量推理会有速度瓶颈;
- 海外访问速度弱于ngrok全球节点。
ngrok 优势
- 免费域名重启会话才变更,24小时内不变;
- 全球多节点,海外设备访问流畅;
- 生态完善,AI网关、OAuth鉴权、流量策略等企业功能更强。
ngrok 短板
- 海外服务器,国内访问延迟高、偶发超时,调用vLLM容易卡顿;
- 免费版公网访问强制弹窗,程序自动化调用会失败;
- 付费套餐美元计价,成本更高;
- 国内网络环境偶发连接失败。
6. cpolar 快速部署示例(替换原文ngrok打通vLLM)
1)Linux云服务器安装
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
sudo systemctl enable cpolar
sudo systemctl start cpolar
2)网页后台注册账号、获取Authtoken
后台地址:http://127.0.0.1:9200,绑定账号token
3)穿透vLLM 8000端口
cpolar http 8000
输出公网地址 https://xxx.cpolar.top,本地Mac curl测试:
curl https://xxx.cpolar.top/v1/models -H "Authorization: Bearer no-key"
7. 适用人群选择建议
- 纯国内使用、本地Mac远程连国内AMD/阿里云GPU跑vLLM → 优先 cpolar,延迟低、无弹窗;
- 有海外设备需要调用模型、短期临时测试 → ngrok;
- 长期稳定私有大模型服务 → cpolar专业版(固定域名+更高带宽);
- 仅临时调试Webhook、短期演示 → 两者免费版均可。
三、补充避坑(cpolar专属)
- 免费域名24小时自动重置:每天需要更新本地AI客户端的API地址,长期使用建议升级专业版保留域名;
- 免费1Mbps带宽限制:批量推理、长文本对话会速度慢,大模型场景建议付费升级带宽;
- 云服务器防火墙放行9200(cpolar管理面板)、8000(vLLM)端口,否则隧道无法正常转发。
一、结论:ngrok / cpolar 不只能做HTTP,完全支持FTP上传下载
两者都分两种隧道类型:
- http 隧道:只给网页、API、vLLM这类Web服务用;
- tcp 隧道:底层裸端口转发,支持FTP、SSH、数据库、远程桌面等所有TCP协议,FTP上传下载必须用TCP隧道。
关键难点:FTP是双通道协议(坑最多)
FTP分两条独立TCP链路:
- 控制通道(21端口):登录、列目录、发指令;
- 数据通道(随机高端口):真正上传/下载文件;
被动模式(现在通用)会随机开一段端口传输数据,只用一条21端口隧道会出现能登录、看不到文件、传文件报错。
二、cpolar 穿透FTP两种方案(国内优先推荐)
方案1:官方专用FTP隧道(付费专业版/商业版,最简单)
cpolar后台支持预留专用FTP地址,自动配套一组固定数据端口段,不用手动开多条TCP隧道:
- 登录cpolar后台 → 【预留】→ 拉到最底部【保留FTP地址】
- 选择国内节点,生成一组地址:
1.tcp.cpolar.top:xxxx+ 配套数据端口段(如25125-25127) - 服务器FTP软件(vsftpd/FileZilla)修改被动端口范围,和后台给的数据端口段完全一致
- 本地cpolar创建隧道,隧道类型选FTP,绑定本地21端口
- 外网FileZilla连接:主机=1.tcp.cpolar.top,端口=xxxx,传输模式勾选被动
优点:一条隧道搞定,端口永久固定,国内延迟低,适合长期传大文件。
方案2:手动多条TCP隧道(免费版可用,麻烦)
免费版没有专用FTP隧道,需要同时创建两类TCP隧道:
- 隧道1:TCP,本地21端口(控制端口)
cpolar tcp 21
输出公网地址:2.tcp.cpolar.top:51234
2. 服务器FTP配置固定被动端口范围,例如pasv_min_port=40000 pasv_max_port=40010
3. 对4000040010每个端口单独开TCP隧道(最少35个够用)
cpolar tcp 40000
cpolar tcp 40001
cpolar tcp 40002
- FileZilla连接时填写被动模式,端口范围匹配cpolar分配的公网端口
vsftpd 服务器配置示例(Linux云服务器)
# /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
# 固定被动端口区间
pasv_min_port=40000
pasv_max_port=40010
# 填写cpolar分配的公网域名
pasv_address=2.tcp.cpolar.top
改完重启服务:sudo systemctl restart vsftpd
三、ngrok 穿透FTP方式(海外节点,国内不稳定)
ngrok同样靠tcp隧道实现FTP,逻辑和cpolar手动多隧道一致:
- 开启控制端口隧道
ngrok tcp 21
得到地址 0.tcp.ngrok.io:15230
2. FTP服务锁定被动端口段,批量启动对应端口tcp隧道
ngrok tcp 40000 &
ngrok tcp 40001 &
ngrok tcp 40002 &
ngrok FTP短板
- 免费版TCP端口每次重启随机变,每次传文件要改FileZilla端口;
- 国内访问海外TCP隧道延迟高、大文件上传容易中断;
- 免费版单账号仅1条在线隧道,同时开多条FTP隧道会超限。
四、FTP穿透替代方案(更简单,避双通道麻烦)
SFTP(强烈推荐,替代传统FTP)
SFTP基于SSH 22端口,单端口完成登录+文件传输,没有被动端口一堆坑:
- 只需要一条TCP隧道穿透22端口即可上传下载;
- 传输全程加密,明文FTP有泄露账号、文件风险;
- cpolar/ngrok一条命令搞定:
# cpolar
cpolar tcp 22
# ngrok
ngrok tcp 22
FileZilla直接选「SFTP-SSH文件传输协议」,填TCP公网地址+端口,不用配置被动模式。
五、cpolar vs ngrok 做FTP对比
| 维度 | cpolar | ngrok |
|---|---|---|
| 网络节点 | 国内节点,上传下载稳定低延迟 | 海外节点,国内大文件易超时 |
| FTP专用隧道 | 付费版支持一键FTP,自动配套数据端口 | 无专用FTP隧道,需手动多TCP |
| TCP端口稳定性 | 付费版可固定TCP端口 | 免费版端口每次重启全部变化 |
| 免费限制 | 多TCP隧道可同时在线,带宽1Mbps | 仅1条隧道同时在线 |
| 加密 | FTP/FTPS/SFTP全支持 | 仅底层TCP转发,无内置FTP加密 |
六、实操避坑总结
- 只用http隧道绝对无法实现FTP文件上传下载,必须用TCP隧道;
- 传统FTP必须配置被动模式+固定端口段,否则只能登录不能传文件;
- 长期稳定传文件优先cpolar专业版FTP隧道,临时测试用SFTP;
- 明文FTP不安全,生产环境建议FTPS或SFTP;
- 免费工具FTP多隧道繁琐,频繁传文件建议升级付费固定端口套餐。
AMD云GPU(JupyterLab无密码环境)文件传输完整方案
先理清核心矛盾:
AMD Developer Cloud 实例默认只用SSH密钥鉴权,没有登录密码,传统SFTP/FileZilla填密码的方式走不通;但分两类方案,优先不用SSH、直接复用你已经搭好的ngrok/cpolar Jupyter隧道,其次是SSH密钥免密SFTP。
方案一:完全不用SFTP,直接用JupyterLab公网网页传文件(最简单,适配你现有ngrok 8000/8888隧道)
你现在已经用 ngrok/cpolar 打通了JupyterLab公网HTTPS地址,网页自带上传/下载功能,不需要SSH、不需要账号密码,完美匹配无密码环境。
操作方式
- 打开公网地址
https://xxx.ngrok-free.app进入JupyterLab; - 左侧文件浏览器:
- 上传文件:点顶部「上传图标」,本地单选/多选文件;
- 下载文件:右键文件 → Download;
- 限制:原生界面不支持直接上传整个文件夹,解决办法:
- 云端打包压缩:
tar -zcvf data.tar.gz 文件夹名,下载压缩包; - 本地打包zip/tar,上传压缩包后在Jupyter终端解压。
- 云端打包压缩:
优势(适配你的vLLM场景)
- 复用已有的HTTP隧道,不用额外开TCP隧道、不用配置SSH密钥;
- 零额外配置,本地Mac浏览器直接操作,不需要FileZilla、WinSCP;
- 鉴权复用Jupyter本身的token,不用新增一套账号密码;
- 小文件、模型权重单包传输完全够用。
短板
批量几十GB多文件频繁同步效率偏低,适合临时取模型输出、上传数据集。
方案二:SSH密钥免密SFTP(适合大文件、批量文件夹拖拉拽)
AMD云实例创建时强制绑定SSH公钥,本地持有私钥即可免密SFTP,全程不需要密码,搭配cpolar/ngrok TCP隧道穿透22端口使用。
完整流程
1. 本地Mac生成SSH密钥(一次生成永久使用)
ssh-keygen -t ed25519
一路回车,不要设置密钥密码,生成免密私钥文件 ~/.ssh/id_ed25519。
2. AMD云控制台添加公钥
复制 ~/.ssh/id_ed25519.pub 全部内容,在创建GPU实例页面粘贴到SSH Key框,创建实例时绑定密钥对。
实例创建完成后,本地可直接 ssh root@实例公网IP 免密登录。
3. 用cpolar/ngrok打通22端口TCP隧道(云端执行)
# cpolar
cpolar tcp 22
# ngrok
ngrok tcp 22
输出类似 2.tcp.cpolar.top:56789,这是公网SFTP连接地址。
4. FileZilla免密SFTP连接(Mac/Windows通用)
- 协议:
SFTP - SSH File Transfer Protocol - 主机:cpolar/ngrok给出的TCP域名
- 端口:隧道分配的端口号
- 用户:
root(AMD云默认用户名) - 登录类型:密钥文件,选择本地私钥
id_ed25519,密码框留空 - 连接成功后可直接拖拉文件夹,支持断点续传大模型权重。
关键说明
这里完全不需要服务器密码,身份靠本地私钥加密校验,完美适配AMD无密码实例;免费ngrok TCP端口每次重启会变,长期使用建议cpolar付费版固定TCP端口。
方案三:命令行免密SCP/Rsync(Mac终端直传,无图形软件)
不用FileZilla,本地终端直接上传/下载,依赖SSH密钥免密,搭配TCP隧道地址:
上传本地文件夹到云端
# cpolar示例地址 2.tcp.cpolar.top:56789
scp -r -P 56789 /本地数据集路径 root@2.tcp.cpolar.top:/workspace/models
云端大文件夹下载到本地(推荐rsync,支持断点续传,适合几十GB模型)
rsync -avz --progress --partial -e "ssh -p 56789" root@2.tcp.cpolar.top:/workspace/output ./本地保存目录
方案四:进阶:HTTP文件服务隧道(兼顾vLLM 8000端口+文件下载,不用Jupyter界面)
如果不想打开Jupyter,只想公网直接拉取模型文件,在云端起简易HTTP文件服务,复用现有ngrok 8000隧道或新开端口:
# 在模型目录启动静态文件服务,端口8001
cd /workspace/models
python -m http.server 8001
# 新开隧道暴露8001
ngrok http 8001
本地浏览器打开公网地址,直接下载全部文件,同样无密码,仅HTTP访问。
四种方案对比(针对AMD Jupyter无密码场景)
| 方案 | 是否需要SSH/密钥 | 是否额外隧道 | 适合场景 |
|---|---|---|---|
| Jupyter网页上传下载 | 不需要 | 复用现有8888/8000 HTTP隧道 | 临时小文件、日常调试、不想配置密钥 |
| 密钥SFTP+FileZilla | 需要SSH密钥 | 新增TCP 22隧道 | 批量文件夹、几十GB大模型、频繁同步 |
| SCP/Rsync命令行 | 需要SSH密钥 | 新增TCP 22隧道 | Mac习惯终端操作、脚本自动同步 |
| Python静态HTTP服务 | 不需要 | 新开一条HTTP隧道 | 批量下载模型权重、对外临时分发文件 |
避坑重点(AMD云专属)
- 不要尝试填服务器密码:实例禁用密码登录,仅SSH密钥鉴权,SFTP必须切换「密钥登录」;
- ngrok免费版TCP隧道端口随机,每次重启隧道后FileZilla连接端口要同步修改;
- 免费cpolar HTTP域名24小时刷新,Jupyter网页上传每天要更新地址;
- 大模型文件优先压缩tar.gz再传输,大幅减少上传耗时;
- 如果你只做vLLM推理、偶尔传文件,首选方案一Jupyter网页,不用折腾SSH和TCP隧道。
更多推荐



所有评论(0)