在本地部署了自己的deepseek后不局限于在本地或是仅在局域网中访问,此时想到了本人还有一个空闲的云服务器,于是便通过frp实现内网穿透,借助云服务器的公网ip,可以实现直接访问 公网ip:端口号 就能够访问本地部署的Open-WebUI、deepseek

frp分为两部分,一部分是frps,置于服务端;另一部分是frpc,置于客户端。

笔者的云服务器是华为云的,选装的镜像为Ubuntu22.04,此时要先在服务器上下载frp

apt-get  install frp

下载后是一个带有版本号的frp文件夹,可以使用

mv  frp***  frp        重命名为frp

在将本地部署好的Open-WebUI借助具有公网ip的云服务器暴露到公网中,云服务器即为服务端,此时仅保留frp中的frps的部分。

此时需要配置frps.ini,在frps.ini中配置如下内容,在服务器中的设置比较简单,配置完成后要开放端口

[common]
bind_port = 8000         #此处默认应为7000
authentication_method = token      #相当于口令
token = sdhsjdsd               #自己设置 服务端与客户端须相同

为了更加直观的对比服务器端和客户端的.ini文件的内容,我将frpc.ini也放在下方

[common]
server_addr = 111.113.***.**       #此处为你的服务器公网ip
server_port = 8000                    #刚才上方那个默认7000
token = ah******          #客服端与服务端的口令相同才可以连接

[tcp_port]
type = tcp                          
local_ip = 10.11.2*.1*                #本地的ip    
local_port = 3000                    #本地部署服务的端口号,即Open-WebUI外部端口号为3000
remote_port = 80       #这个就是指定的穿透成功后 公网ip:80 即可以访问本地部署的内容 

windows客户端同样需要安装frp,

通过网盘分享的文件:frp安装包
链接: https://pan.baidu.com/s/1qNu8nBqT7asWmKQLgjP-qQ 提取码: sc7c

下载该安装包后,将其解压,解压后的文件移动到一个固定路径下,作为客户端,仅保留以下内容。

按照上述内容,配置号frpc.ini后,需要启动服务端和客户端

服务器端:进入frp文件夹内,运行

./frps -c frps.ini

windows客户端:同样的,进入frp的文件夹

frpc.exe  -c frpc.ini      

服务器端开放端口,使用firewall-cmd开放端口,要开放80,8000,还要在云服务器的控制台,安全组中配置出方向规则,要开放上述两个端口。此处笔者在开放本地部署端口时,想用其他的端口,比如说8085,而且在安全组增加这个端口,在实际操作中,云服务器上可以通过curl 0.0.0.0:8085请求到本地部署的Open-WebUI的内容,即页面的代码,但是你在本地用云服务器的公网ip:8085却请求不到Open-WebUI的页面。此时需注意。

然后我看有的说要在本地windows防火墙配置入站规则,设置一个3000,一个8085,但实际应用时,使用8085配置完入站规则,还是不行,然后使用80端口成功后,我将原先配置的入站规则删除之后,本地依然能通过服务器公网ip直接访问。

ps:须配置出站规则

最终实现效果,通过服务器公网ip成功访问本地部署的服务。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐