如何在本地计算机上调用内网服务器的web服务(以本地调用服务器端大模型为例)

一、前置条件

  1. 本地计算机A
  2. 具有公网IP的跳板机B
  3. 内网服务器C

二、步骤

1. 在内网服务器上启动Web服务

以大模型部署为例,在内网服务器C上使用LLama-Factory,在其8000端口启动大模型调用API服务:

CUDA_VISIBLE_DEVICES=0 API_PORT=8000 llamafactory-cli api examples/inference/qwen1_5_1_8B.yaml

启动服务后,可以先在内网服务器C上测试服务是否正常:

curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "qwen", "messages": [{"role": "user", "content": "hello"}], "temperature": 0.7}'

若有文本结果返回,说明服务启动成功。

2. 搭建SSH反向代理

为了让本地计算机A访问内网服务器,需要构建SSH反向代理,利用具有公网IP的服务器作为跳板机,访问内网服务器。

1.在内网服务器C上配置ssh config文件,方便后续连接。在内网服务器C上,为~/.ssh/config添加跳板机别名:

Host t1
  HostName 跳板机IP
  User 跳板机用户名
  ServerAliveInterval 120

2.将内网服务器C的公钥添加到跳板机B上。

3.在内网服务器C上运行反向代理命令(以2000端口为例):

ssh -R 2000:localhost:22 t1

若能够连接到跳板机B上,且登录跳板机B后,运行ssh 内网服务器用户名@localhost -p 2000,在输入内网服务器用户对应的密码后可以正常连接,说明反向代理建立成功。

注意:

  • 为了让该命令持续运行,可以使用nohup、tmux等方法。
  • 为了让该命令稳定运行,可以使用autossh工具。

3. 在本地计算机上调用内网服务器上的API

1.为方便连接,在本地计算机上配置ssh config文件,即添加以下内容:

Host t1
  HostName 跳板机IP
  User 跳板机用户名
  ServerAliveInterval 120

Host c1
  HostName localhost
  User 内网服务器用户名
  ProxyJump t1
  ServerAliveInterval 120
  Port 2000

2.在本地计算机A上进行端口转发,以3000端口为例:

ssh -L 3000:localhost:8000 c1

3.测试本地计算机上api调用:
在本地计算机A上运行:

curl http://localhost:3000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "qwen", "messages": [{"role": "user", "content": "hello"}], "temperature": 0.7}'

若有文本结果返回,说明端口转发成功。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值