
小白也能学会如何远程访问公司内网的 FastAPI 服务用最简单的话教你通过 SSH 隧道在公司外面也能访问内网部署的 FastAPI 服务。适用人群零基础新手只需要会复制粘贴命令就行。 为什么要看这篇文章很多公司会把业务系统比如一个用 FastAPI 写的后端服务部署在公司内网的服务器上。服务器在内网比如 IP 是192.168.0.xxx你在家里或外出办公没法直接访问这个内网地址但公司给你开了一个远程通道常见叫法frp / VPN / 堡垒机给你一个对外地址和端口比如“deepseek.test.com:10101”你的 FastAPI 服务就跑在那台服务器上监听某个端口比如6101问题来了我在外面怎么访问这个服务答案打个电话SSH 隧道把服务器的端口接到你本地电脑上就能像访问本机服务一样访问它了️ 准备工作你需要准备哪些信息(下面内容为构造的模拟信息仅为举例说明非真实账号信息)项目说明你从哪里找服务器地址deepseek.test.com公司分配的远程通道域名SSH 端口10101远程通道端口用户名yyq服务器登录账号密码Yyq2026..登录密码服务端口6101FastAPI 服务监听的端口小技巧这些信息通常在项目的部署文档里都能找到或者直接问维护服务器的同事。检查电脑有没有 SSH在 Windows 搜索框输入cmd回车打开命令提示符输入ssh如果出现usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] ...说明你的电脑自带 SSHWindows 10/11 默认都有不用额外装。实例如果提示不是内部或外部命令说明系统较老搜索如何在 Windows 安装 OpenSSH装一下即可。 第一步打电话建立 SSH 隧道操作步骤第 1 步打开 cmd 或 PowerShell按Win R键输入cmd回车出现一个黑色窗口第 2 步输入建立隧道的命令命令格式如下把里面的占位符换成你自己的信息ssh-p你的SSH端口-L本地端口:127.0.0.1:服务端口 用户名服务器地址我们的实际命令ssh-p10101-L6101:127.0.0.1:6101 yyqdeepseek.test.com第 3 步输入密码第一次连接会提示确认主机指纹输入yes回车然后提示输入密码Yyq2025..注意输密码时屏幕不显示任何字符这是正常的防止偷看直接输完按回车第 4 步看到成功提示看到类似这样的界面就说明连上了Welcome to Ubuntu 24.04.2 LTS 你的用户名你的服务器:~$重要这个窗口不要关不要关不要关关了就断了。 第二步打开浏览器访问保持 SSH 窗口开着打开浏览器Chrome、Edge 等访问http://127.0.0.1:本地端口/health比如你本地端口用的 6101就访问http://127.0.0.1:6101/health如果看到类似{status:ok}恭喜你成功了还能看什么地址看什么http://127.0.0.1:6101/health健康检查最简单http://127.0.0.1:6101/docsFastAPI 自带接口文档Swagger最直观http://127.0.0.1:6101/redoc接口文档另一种风格强烈建议打开http://127.0.0.1:6101/docsFastAPI 框架会自动生成一个漂亮的接口文档页面上面列出所有 API 接口每个接口都可以直接点击“Try it out”按钮测试调用超级方便 第三步调用需要钥匙的接口很多业务接口不是免费开放的需要带Token可以理解成一把钥匙。Token 是什么Token 是一串授权字符串通常长这样dataset-xxxxxxxxxxxxxxxxxxxxxxxxxx有了它接口才知道你有权限访问。Token 一般由系统管理员或后端同事提供。使用方式方式一在浏览器 docs 页面测试最简单打开http://127.0.0.1:6101/docs找到右上角的Authorize按钮输入Bearer 你的Token点击 Authorize然后随便点一个接口点“Try it out”就能测试方式二用 curl 命令敲键盘# 打开一个 cmd 窗口输入curlhttp://127.0.0.1:6101/v1/datasets^-HAuthorization: Bearer 你的Token小提示^是 Windows cmd 里的换行符如果命令写在一行就不用加。⚠️ 常见问题小白必看Q1为什么我连不上按顺序检查✅ SSH 窗口还开着吗关了就连不上了✅ 密码输对了吗注意大小写✅ 是不是没连公司内网一般需要先连 VPN 才能访问远程通道✅ 服务器地址、端口写对了吗Q2提示端口被占用如果看到bind: Address already in use说明你本地这个端口已经被别的程序占了。换个端口即可比如从 6101 换成 8080ssh-p10101-L8080:127.0.0.1:6101 用户名服务器地址然后浏览器访问http://127.0.0.1:8080/healthQ3提示Host key verification failed第一次连某台服务器时会提示The authenticity of host ... cant be established. Are you sure you want to continue connecting?输入yes回车以后就不会再提示了。Q4怎么断开直接关掉 SSH 窗口或按Ctrl D或输入exit回车。Q5断开后想再连重新打开 cmd再执行一次那条 SSH 命令即可。 一句话总结# 实际命令ssh-p10101-L6101:127.0.0.1:6101 yyqdeepseek.test.com# 然后浏览器访问http://127.0.0.1:6101/docs记住三个关键点 SSH 窗口不要关 需要权限的接口要加Authorization: Bearer 你的Token 浏览器打开http://127.0.0.1:本地端口/docs最方便 进阶为什么这样能行给想深入的同学简单说SSH 的-L参数做了一个端口转发你本地端口 6101 ←→ SSH隧道 ←→ 服务器端口 6101所有发到你本地 6101 端口的请求都会被 SSH悄悄送到服务器的 6101 端口再把服务器的响应原路送回。这样你就感觉像是在访问自己电脑上的服务一样但其实数据都走的是加密的 SSH 通道既安全又方便。这个概念叫SSH 端口转发Port Forwarding是运维和开发同学的常用技能学会它以后很多远程访问问题都能自己解决