三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

小白也能学会!如何远程访问公司内网的 FastAPI 服务

小白也能学会!如何远程访问公司内网的 FastAPI 服务

🚀 小白也能学会!如何远程访问公司内网的 FastAPI 服务

用最简单的话,教你通过 SSH 隧道,在公司外面也能访问内网部署的 FastAPI 服务。

适用人群:零基础新手,只需要会复制粘贴命令就行。


📖 为什么要看这篇文章?

很多公司会把业务系统(比如一个用 FastAPI 写的后端服务)部署在公司内网的服务器上。

  • 服务器在内网,比如 IP 是192.168.0.xxx
  • 你在家里或外出办公,没法直接访问这个内网地址
  • 但公司给你开了一个远程通道(常见叫法:frp / VPN / 堡垒机),给你一个对外地址和端口,比如“deepseek.test.com:10101”
  • 你的 FastAPI 服务就跑在那台服务器上,监听某个端口(比如6101

问题来了:我在外面,怎么访问这个服务?🤔

答案:打个"电话"(SSH 隧道),把服务器的端口"接"到你本地电脑上,就能像访问本机服务一样访问它了!


🛠️ 准备工作

你需要准备哪些信息?(下面内容为构造的模拟信息,仅为举例说明,非真实账号信息)

项目说明你从哪里找
服务器地址deepseek.test.com公司分配的远程通道域名
SSH 端口10101远程通道端口
用户名yyq服务器登录账号
密码Yyq@2026..登录密码
服务端口6101FastAPI 服务监听的端口

💡小技巧:这些信息通常在项目的部署文档里都能找到,或者直接问维护服务器的同事。

检查电脑有没有 SSH

在 Windows 搜索框输入cmd回车,打开命令提示符,输入:

ssh

如果出现:

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] ...

说明你的电脑自带 SSH,Windows 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 yyq@deepseek.test.com

第 3 步:输入密码

  • 第一次连接会提示确认主机指纹,输入yes回车
  • 然后提示输入密码:Yyq@2025..
  • 注意:输密码时屏幕不显示任何字符(这是正常的,防止偷看),直接输完按回车

第 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/docs

FastAPI 框架会自动生成一个漂亮的接口文档页面,上面列出所有 API 接口,每个接口都可以直接点击“Try it out”按钮测试调用,超级方便!


🔑 第三步:调用需要"钥匙"的接口

很多业务接口不是免费开放的,需要带Token(可以理解成一把"钥匙")。

Token 是什么?

Token 是一串授权字符串,通常长这样:

dataset-xxxxxxxxxxxxxxxxxxxxxxxxxx

有了它,接口才知道"你有权限访问"。Token 一般由系统管理员或后端同事提供。

使用方式

方式一:在浏览器 docs 页面测试(最简单)

  1. 打开http://127.0.0.1:6101/docs
  2. 找到右上角的Authorize按钮
  3. 输入Bearer 你的Token
  4. 点击 Authorize
  5. 然后随便点一个接口,点“Try it out”就能测试

方式二:用 curl 命令(敲键盘)

# 打开一个 cmd 窗口,输入:curl"http://127.0.0.1:6101/v1/datasets"^-H"Authorization: Bearer 你的Token"

小提示:^是 Windows cmd 里的换行符,如果命令写在一行就不用加。


⚠️ 常见问题(小白必看)

Q1:为什么我连不上?

按顺序检查:

  1. ✅ SSH 窗口还开着吗?(关了就连不上了)
  2. ✅ 密码输对了吗?(注意大小写)
  3. ✅ 是不是没连公司内网?(一般需要先连 VPN 才能访问远程通道)
  4. ✅ 服务器地址、端口写对了吗?

Q2:提示"端口被占用"

如果看到:

bind: Address already in use

说明你本地这个端口已经被别的程序占了。换个端口即可,比如从 6101 换成 8080:

ssh-p10101-L8080:127.0.0.1:6101 用户名@服务器地址

然后浏览器访问http://127.0.0.1:8080/health

Q3:提示"Host key verification failed"

第一次连某台服务器时会提示:

The authenticity of host ... can't 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 yyq@deepseek.test.com# 然后浏览器访问:http://127.0.0.1:6101/docs

记住三个关键点:

  1. 🪟 SSH 窗口不要关
  2. 🔑 需要权限的接口要加Authorization: Bearer 你的Token
  3. 🌐 浏览器打开http://127.0.0.1:本地端口/docs最方便

🎁 进阶:为什么这样能行?(给想深入的同学)

简单说,SSH 的-L参数做了一个端口转发

你本地端口 6101 ←→ SSH隧道 ←→ 服务器端口 6101

所有发到你本地 6101 端口的请求,都会被 SSH"悄悄送到"服务器的 6101 端口,再把服务器的响应"原路送回"。这样你就感觉像是在访问自己电脑上的服务一样,但其实数据都走的是加密的 SSH 通道,既安全又方便。

这个概念叫SSH 端口转发(Port Forwarding),是运维和开发同学的常用技能,学会它以后很多远程访问问题都能自己解决!

← 返回列表