Deepseek本地搭建+公网访问
本文发布于35天前,本文最后更新于14 天前,其中的信息可能已经过时,如有错误请发送邮件到firewormq@qq.com

相关文件下载

搭建资源(亦可到官网下载):Deepseek本地搭建+公网访问资源.zip

文章下载:Deepseek本地搭建+公网访问.zip

Deepseek本地搭建

搭建环境

  • Ubuntu 22.04
  • Ollama
  • Docker
  • Open-webui

环境配置

配置网络为静态IP

# 下载vim命令
sudo apt install vim -y
# 备份01-network-manager-all.yaml
sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak
# 编辑network配置文件
sudo vim /etc/netplan/01-network-manager-all.yaml

01-network-manager-all.yaml文件内容如下

# Let NetworkManager manage all devices on this system
network:
renderer: NetworkManager
ethernets:
  ens33:
    addresses:
      - 10.1.1.200/24
    routes:
      - to: default
        via: 10.1.1.2
    nameservers:
      addresses:
        - 10.1.1.2
        - 114.114.114.114
version: 2

注:ens33为自己的网卡名称,根据实际情况配置网关、IP地址、DNS服务器

# 修改文件权限,以免触发警告
sudo chmod 600 /etc/netplan/01-network-manager-all.yaml
#应用Netplan网络配置
sudo netplan apply

Ollama安装

1.下载Ollama 二进制文件

官网:https://github.com/ollama/ollama/releases/download/v0.6.1/ollama-linux-amd64.tgz

网盘下载:ollama-linux-amd64.tgz

# 下载wget命令
sudo apt install wget
# 切换到"/opt/"目录下
cd /opt/
# 下载Ollama二进制文件到指定目录
sudo wget https://github.com/ollama/ollama/releases/download/v0.6.1/ollama-linux-amd64.tgz
# 解压文件
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

2.将Ollama添加为自启动服务

# 为目录添加权限
sudo chmod 755 /usr/bin/ollama
# 为Ollama创建用户
sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama  
# 创建服务配置文件ollama.service
sudo vim /etc/systemd/system/ollama.service

服务配置文件内容如下:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
# 配置ollama能识别到的显卡显卡数(0,1,2,...)
Environment="CUDA_VISIBLE_DEVICES=0,1"
# 均衡显卡使用
Environment="OLLAMA_SCHED_SPREAD=1"
# 控制模型在内存/显存中驻留时间("-1"为长期驻留)
Environment="OLLAMA_KEEP_ALIVE=-1"
# 配置远程访问
Environment="OLLAMA_HOST=0.0.0.0"
# 配置跨域请求
Environment="OLLAMA_ORIGINS=*"
# 配置OLLAMA的模型存放路径(默认路径为"/usr/share/ollama/.ollama/models/")
Environment="OLLAMA_MODELS=/data/soft/ollama/.ollama/models"

[Install]
WantedBy=default.target

设置Ollama开机自启动

# 重新加载系统配置文件
sudo systemctl daemon-reload
# 将Ollama服务设置为开启自动
sudo systemctl enable ollama
# 启动Ollama服务
sudo systemctl start ollama  

Open-WebUI安装

1.下载Docker

# 下载Docker
sudo apt install Docker.io -y

2.拉取Open-WebUI容器

sudo docker run --init -d -p 80:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main
"--init":启动容器时启用一个轻量级初始化进程,避免僵尸进程堆积。
"-d":以后台(Detached)模式运行容器。
"-p 80:8080":将宿主机的 80 端口 映射到容器的 8080 端口。
"--add-host=host.docker.internal:host-gateway":在容器的 /etc/hosts 文件中添加一条记录,将 host.docker.internal 解析为宿主机的网关 IP(即 host-gateway)。
"-v open-webui:/app/backend/data":将名为 open-webui的Docker卷挂载到容器内的/app/backend/data 目录。
"--name open-webui":为容器指定名称 open-webui,便于后续管理(如启动、停止、日志查看)。
"--restart always":配置容器在退出时自动重启(无论退出状态码如何)。

访问deepsek服务器地址http://10.1.1.200/

设置管理员第一次登录可能耗费时间较长,会去访问openai,关闭里面的的”OpenAI API”连接,后面访问就会很快。

至此Deepseek本地搭建完成

公网访问

搭建环境

  • Ubuntu 22.04(公网服务器)
  • frp
  • Apache

frp下载

官网:https://github.com/fatedier/frp/releases/download/v0.61.2/frp_0.61.2_linux_amd64.tar.gz

网盘下载:frp_0.61.2_linux_amd64.tar.gz

服务端搭建frp(公网服务器)

我这里用公网IP以内网服务器IP(10.1.1.128)代替


# 切换到"/opt/"目录
cd /opt/
# 下载frp
sudo wget https://github.com/fatedier/frp/releases/download/v0.61.2/frp_0.61.2_linux_amd64.tar.gz
# 解压包并进入frp目录
sudo tar -C ./ -xzf frp_0.61.2_linux_amd64.tar.gz && cd ./frp_0.61.2_linux_amd64
# 安装vim
sudo apt install vim -y
# 编辑服务端配置文件"frps.toml"
sudo vim frps.toml
# frps.toml
[common]
# 服务端监听地址(0.0.0.0 表示接受所有来源连接)
bind_addr = "0.0.0.0"
# 客户端连接服务端的主端口
bind_port = 7000
# 身份验证 Token(需与客户端一致)
token = "aThgaiwu@2025fj*3a9"

# HTTP 虚拟主机端口(必填,否则无法支持 HTTP 类型代理)
vhost_http_port = 80

# 可选:HTTPS 虚拟主机端口(若需支持 HTTPS 代理)
# vhost_https_port = 443

# Dashboard 监控面板配置
dashboard_addr = "0.0.0.0"
dashboard_port = 7500
dashboard_user = "admin"
dashboard_pwd = "admin@2025"
# 创建frp服务文件
sudo vim /etc/systemd/system/frps.service

文件内容如下:

[Unit]
Description=Frp Server Service
After=network.target  

[Service]
Type=simple
# 指定绝对路径
ExecStart=/opt/frp_0.61.2_linux_amd64/frps -c /opt/frp_0.61.2_linux_amd64/frps.toml
Restart=on-failure
# 以root权限启动
User=root
[Install]
WantedBy=multi-user.target
#重载服务使配置文件生效
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start frps
# 开机自启
sudo systemctl enable frps
# 查看状态
sudo systemctl status frps
# 查看完整日志
journalctl -u frps -f

启动成功后日志中会出现以下提示

3月 19 16:26:55 x-1 frps[5147]: 
3月 19 16:26:55 x-1 systemd[1]: frps.service: Deactivated successfully.
3月 19 16:26:55 x-1 systemd[1]: Stopped Frp Server Service.
3月 19 16:26:57 x-1 systemd[1]: Started Frp Server Service.
3月 19 16:26:57 x-1 frps[5218]: WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
3月 19 16:26:57 x-1 frps[5218]: 2025-03-19 16:26:57.581 [I] [frps/root.go:105] frps uses config file: /opt/frp_0.61.2_linux_amd64/frps.toml
3月 19 16:26:57 x-1 frps[5218]: 2025-03-19 16:26:57.669 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:7000
3月 19 16:26:57 x-1 frps[5218]: 2025-03-19 16:26:57.670 [I] [server/service.go:305] http service listen on 0.0.0.0:8080
3月 19 16:26:57 x-1 frps[5218]: 2025-03-19 16:26:57.670 [I] [frps/root.go:114] frps started successfully
3月 19 16:26:57 x-1 frps[5218]: 2025-03-19 16:26:57.670 [I] [server/service.go:351] dashboard listen on 0.0.0.0:7500

客户端搭建frp(本地/内网服务器)

内网服务器IP(10.1.1.200)

# 切换到"/opt/"目录
cd /opt/
# 下载frp
sudo wget https://github.com/fatedier/frp/releases/download/v0.61.2/frp_0.61.2_linux_amd64.tar.gz
# 解压包并进入frp目录
sudo tar -C ./ -xzf frp_0.61.2_linux_amd64.tar.gz && cd ./frp_0.61.2_linux_amd64
# 安装vim
sudo apt install vim -y
# 编辑客户端配置文件"frpc.toml"
sudo vim frpc.toml

注:如果是Windows客户端配置frpc.toml文件内容相同

# frpc.toml
serverAddr = "10.1.1.128"
serverPort = 7000
auth.token = "aThgaiwu@2025fj*3a9"

[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["10.1.1.128"]
# 创建frp服务文件
sudo vim /etc/systemd/system/frpc.service

文件内容如下:

[Unit]
Description=Frp Server Service
After=network.target  

[Service]
Type=simple
ExecStart=/opt/frp_0.61.2_linux_amd64/frpc -c /opt/frp_0.61.2_linux_amd64/frpc.toml
Restart=on-failure
[Install]
WantedBy=multi-user.target
#重载服务使配置文件生效
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start frpc
# 开机自启
sudo systemctl enable frpc
# 查看状态
sudo systemctl status frpc
# 查看完整日志
journalctl -u frpc -f

启动成功后日志中会出现以下提示

3月 19 16:36:56 x-1 systemd[1]: Started Frp Server Service.
3月 19 16:36:56 x-1 frpc[17446]: 2025-03-19 16:36:56.342 [I] [sub/root.go:142] start frpc service for config file [/opt/frp_0.61.2_linux_amd64/frpc.toml]
3月 19 16:36:56 x-1 frpc[17446]: 2025-03-19 16:36:56.343 [I] [client/service.go:295] try to connect to server...
3月 19 16:36:56 x-1 frpc[17446]: 2025-03-19 16:36:56.350 [I] [client/service.go:287] [d0dae5e473279554] login to server success, get run id [d0dae5e473279554]
3月 19 16:36:56 x-1 frpc[17446]: 2025-03-19 16:36:56.350 [I] [proxy/proxy_manager.go:173] [d0dae5e473279554] proxy added: [web]
3月 19 16:36:56 x-1 frpc[17446]: 2025-03-19 16:36:56.354 [I] [client/control.go:168] [d0dae5e473279554] [web] start proxy success

服务端也会出现连接成功

3月 19 16:36:56 x-1 frps[5218]: 2025-03-19 16:36:56.371 [I] [server/service.go:582] [d0dae5e473279554] client login info: ip [10.1.1.200:57596] version [0.61.2] hostname [] os [linux] arch [amd64]
3月 19 16:36:56 x-1 frps[5218]: 2025-03-19 16:36:56.375 [I] [proxy/http.go:111] [d0dae5e473279554] [web] http proxy listen for host [10.1.1.128] location [] group [], routeByHTTPUser []
3月 19 16:36:56 x-1 frps[5218]: 2025-03-19 16:36:56.375 [I] [server/control.go:399] [d0dae5e473279554] new proxy [web] type [http] success

访问公网IP查看是否可以正常访问本地服务器

至此公网访问本地Deepseek已经搭建完成,以下是反向代理配置(不需要的可以忽略)

配置Apache做反向代理

反向代理作用

安全性增强

  • HTTPS加密支持
    • 可为FRP映射的HTTP服务自动添加SSL证书,实现HTTPS加密传输,避免明文数据暴露风险
  • 访问控制与防护
    • 反向代理可通过IP白名单、请求频率限制等功能过滤恶意流量,保护内网服务免受DDoS攻击或非法扫描
  • 隐藏后端细节
    • FRP暴露的端口(如8080)通过反向代理对外仅显示标准端口(80/443),减少端口暴露风险。

运维管理便捷性

  • 统一域名入口
    • 反向代理通过域名路由(如fireworm.cc )区分不同内网服务,无需为每个服务单独配置公网IP和端口
  • 证书自动续签
    • 反向代理工具(如Certbot)可自动化管理SSL证书,避免FRP服务因证书过期导致中断

安装Apache

# 关闭frp服务
sudo systemctl stop frps
# 更新软件源
sudo apt update
# 安装Apache
sudo apt install apache2 -y
# 开启Apache
sudo systemctl start apache2
# 查看软件运行状态
sudo systemctl status apache2
# 设置开机自启
sudo systemctl enable apache2

配置Apache

# 禁用默认虚拟主机
sudo a2dissite 000-default.conf
# 重载配置使其生效
sudo systemctl reload apache2
# 删除`/var/www/html`目录内容,避免Apache返回默认页面
sudo rm -rf /var/www/html
# 启用代理、重写模块、WebSocket模块
sudo a2enmod proxy proxy_http rewrite proxy_wstunnel
# 验证模块状态是否加载
apachectl -M | grep 'proxy\|rewrite|proxy_wstunnel'

配置形式1:无需配置SSL证书(以http形式访问)

写入以下内容

# 创建专用代理配置文件
sudo vim /etc/apache2/sites-available/proxy.conf

文件内容如下:

# 开启WebSocket
<Location "/ws/socket.io/">
  ProxyPass "ws://localhost:8080/ws/socket.io/"
  ProxyPassReverse "ws://localhost:8080/ws/socket.io/"
</Location>

<VirtualHost *:80>
  # 配置域名访问如果需要
  # ServerName ai.fireworm.cc  
  # Redirect permanent "/" "http://ai.fireworm.cc/"
   
  # 关闭文档根目录访问
  DocumentRoot "/var/www/empty"
  <Directory "/var/www/empty">
      Require all denied
  </Directory>

  # 全站转发配置
  ProxyPreserveHost On
  ProxyPass "/" "http://localhost:8080/"
  ProxyPassReverse "/" "http://localhost:8080/"

  # 可选:日志配置
  ErrorLog ${APACHE_LOG_DIR}/proxy_error.log  
  CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined
</VirtualHost>

配置形式2:配置SSL证书(以https形式访问)

# 启用SSL模块 
sudo a2enmod ssl
# 支持HTTPS强制跳转
sudo a2enmod headers
# 创建SSL证书存放目录
sudo mkdir /etc/apache2/ssl
# 赋予相应权限
sudo chmod 700 /etc/apache2/ssl
# 创建专用代理配置文件
sudo vim /etc/apache2/sites-available/proxy.conf

文件内容如下:

# 开启WebSocket
<Location "/ws/socket.io/">
  ProxyPass "ws://localhost:8080/ws/socket.io/"
  ProxyPassReverse "ws://localhost:8080/ws/socket.io/"
</Location>

# 转发80端口到443
<VirtualHost *:80>
  ServerName ai.fireworm.cc  
  Redirect permanent "/" "https://ai.fireworm.cc/"
</VirtualHost>
<VirtualHost *:443>
  ServerName ai.fireworm.cc
  SSLEngine on

  SSLCertificateFile "/etc/apache2/ssl/ai.fireworm.cc.crt"
  SSLCertificateKeyFile "/etc/apache2/ssl/ai.fireworm.cc.key"
  SSLCertificateChainFile "/etc/apache2/ssl/ai.fireworm.ccchain.crt"
   
  ProxyPreserveHost On

  # 反向代理到内网服务的80端口
  ProxyPass "/" "http://localhost:8080/"
  ProxyPassReverse "/" "http://localhost:8080/"

  # 允许所有客户端访问
  <Proxy *>
      Require all granted
  </Proxy>
  # 可选:日志配置
  ErrorLog ${APACHE_LOG_DIR}/proxy_error.log  
  CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined
</VirtualHost>
# 启动配置配置文件
sudo a2ensite proxy.conf
# 重载配置使其生效
sudo systemctl reload apache2
# 修改公网服务器`frps.toml`中的`vhost_http_port`值为`8080`
sudo vim /opt/frp_0.61.2_linux_amd64/frps.toml
# frps.toml
[common]
# 服务端监听地址(0.0.0.0 表示接受所有来源连接)
bind_addr = "0.0.0.0"
# 客户端连接服务端的主端口
bind_port = 7000
# 身份验证 Token(需与客户端一致)
token = "aThgaiwu@2025fj*3a9"

# HTTP 虚拟主机端口(必填,否则无法支持 HTTP 类型代理)
vhost_http_port = 8080

# 可选:HTTPS 虚拟主机端口(若需支持 HTTPS 代理)
# vhost_https_port = 443

# Dashboard 监控面板配置
dashboard_addr = "0.0.0.0"
dashboard_port = 7500
dashboard_user = "admin"
dashboard_pwd = "admin@2025"
#重载服务使配置文件生效
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start frps
# 查看frps状态
sudo systemctl status frps

至此公网访问公网IP(10.1.1.128)Deepseek已经全部搭建完成。

附录

这是我搭建的deepseek(https://ai.fireworm.cc)大家可以玩一下。

如文章有问题或技术深究,欢迎大家畅谈。

我这边免费限时限量提供公网IP&域名访问,可在我的博客官网留言。

注:本文章技术仅供学习和研究使用,请勿使用该项目的技术手段用于非法用途,任何人造成的任何负面影响,与本人无关.

文章来源:https://fireworm.cc

https://www.fireworm.cc/2025/03/21/788/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇