使用OpenVPN+OneAPI+Ollama+Dify搭建一个兼容OpenAI的API发布及AI应用开发系统(一)搭建OpneVPN

因为众所周知的原因,国内无法方便的使用OpenAI的API进行软件开发,所以这里提供了一套兼容OpenAI的API格式的发布系统,它可以模拟OpenAI的API格式,并提供LLM的API服务。

为保证私密性同时又希望大幅度节省费用的小伙伴,可以在家里使用P40或3090搭建廉价的LLM系统,为了同API发布系统对接,又想保证必要的安全性,我们使用了OpenVPN作为连接你家庭LLM服务器的一个内网穿透工具兼具有VPN加密的安全作用,拓扑图如下所示:

从图上我们看到我们需要准备的工具:

1、需要在运营商处购卖VPS主机一台,配置2C2G就可以了。

2、在你的家里我们需要搭建Ollama LLM服务。

3、需要搭建从家里到VPS的VPN服务,这里我们使用OpenVPN。

4、在租用的VPS主机里搭建OneAPI,并设置用户访问。

5、安装Nginx为OneAPI提供HTTPS服务。

6、安装Dify并创建自己的私密AI应用。

该系统接近商业化运作 ,如你想商业化使用,请遵守开源软件的相关授权要求。

一:环境准备

为你的VPS主机与家里的AI工作站之间搭建一条VPN加密链路,实现内网穿透和数据加密,以确保你的数据安全,这里我们使用了OpneVPN为什么推荐他呢,主要原因就是省钱,他的证书可以非常方便的生成,不需要花钱向运营购买。

1、AI工作站我这里是用P40搭建的,安装了Ollama,具体的安装方法请参考:在ubuntu24.04上安装Ollama并设置跨域访问-CSDN博客

这里不再做介绍了,有需要了解的小伙伴自己参考一下上面的文档。

2、AI工作站与VPS操作系统使用了Ubuntu24.04。

3、为你的VPS申请一个域名并正确解析到你的VPS。

建议API使用二级域名,例如:agent.example.com,并将这个二级域名也解析到你的VPS。

二:部署OpenVPN

1、安装openvpn服务器

登录你的vps ubuntu24.04服务器,安装openvpn软件

sudo apt update && sudo apt upgrade -y
sudo apt install -y openvpn openvpn-systemd-resolved easy-rsa

2、设置证书身份验证

#设置证书颁发服务器
sudo make-cadir /etc/openvpn/easy-rsa

#切换到root用户
su - root

#初始化公钥
cd /etc/openvpn/easy-rsa/
./easyrsa init-pki

#创建一个证书颁发机构。
./easyrsa build-ca

3、创建服务器密钥和证书

#生成密钥对
./easyrsa gen-req agent.example.com nopass

#生成 Diffie Hellman 参数。
./easyrsa gen-dh

#创建服务器证书
./easyrsa sign-req server agent.example.com

#生成 OpenVPN 静态密钥以增强 SSL/TLS 安全性。
openvpn --genkey tls-auth /etc/openvpn/easy-rsa/pki/ta.key

 注意服务器证书生成时需要输入上面设置的CA密码。

4、创建客户端密钥和证书

#为用户生成证书请求
./easyrsa gen-req user01 nopass

#创建客户端证书
./easyrsa sign-req client user01

注意:创建用户时,还要再输一次CA密码。

支持多用户,需要为每一个用户创建证和密钥。

三:配置OpenVPN服务

1、复制配置文件

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server.conf

2、编辑此文件

sudo vim /etc/openvpn/server.conf

修改内容如下:

#去掉udp前的注释
proto udp

#指定 CA 证书、服务器证书和服务器私钥的路径
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/agent.linuxbabe.com.crt
key /etc/openvpn/easy-rsa/pki/private/agent.linuxbabe.com.key

#指定dh的路径
dh /etc/openvpn/easy-rsa/pki/dh.pem

#指定 OpenVPN 的专用 IPv4 网络,先使用默认IP。去掉注释
server 10.8.0.0 255.255.255.0

#使用子网络拓扑,去掉注释
topology subnet

#OpenVPN服务器将成为 VPN 客户端的网关,去掉注释
push "redirect-gateway def1 bypass-dhcp"

#指定DNS服务器,适用国内用户。
push "dhcp-option DNS 223.5.5.5"
push "dhcp-option DNS 119.29.29.29"

#VPN客户端可以相互ping,去掉注释
client-to-client

#指定OpenVPN静态密钥的路径
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0

 注意此处的修改。

3、启动VPN服务器

sudo systemctl enable --now openvpn@server

4、查看状态

sudo systemctl status openvpn@server

5、启用IP转发

echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/60-custom.conf
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.d/60-custom.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.d/60-custom.conf

6、重新加载60-custom.conf并保存更改

sudo sysctl -p /etc/sysctl.d/60-custom.conf

四:开启Firewall

为确保后端的安装,我们在操作系统层开启防火墙。

1、安装ufw

sudo apt install ufw

2、开放相关端口

#ssh端口
sudo ufw allow 22/tcp  

#vpn协议端口
sudo ufw allow 1194/tcp
sudo ufw allow 1194/udp

3、编辑规则

sudo vim /etc/ufw/before.rules

内容如下:

# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o tun0 -j MASQUERADE  #网卡的具体名称请用ip a查看,这里是tun0

# End each table with the 'COMMIT' line or these rules won't be processed
COMMIT

#设置数据包转发
# allow forwarding for trusted network
-A ufw-before-forward -s 10.8.0.0/24 -j ACCEPT
-A ufw-before-forward -d 10.8.0.0/24 -j ACCEPT

执行ip addr查看vpn虚拟网卡,如下图: 

 设置NAT转发时,请注意修改VPN转发的网卡,就是上面查到的“tun0”。

 数据转发如下图参考:

注:vpn虚拟地址使用的是默认地址,请根据你的实际情况进行更改。

4、启用UFW

#启用UFW
sudo ufw enable

#重新启动UFW
sudo systemctl restart ufw

#查看规则
sudo iptables -t nat -L POSTROUTING

5、配置本地DNS解析

(1)安装bind9

sudo apt install -y bind9

(2)指定DNS服务器

sudo ufw insert 1 allow in from 10.8.0.0/24

(3)设置bind9

sudo vim /etc/bind/named.conf.options

添加递归DNS查询

allow-recursion { 127.0.0.1; 10.8.0.0/24; };

支持ipv4

#查询根DNS服务器
sudo vim /etc/default/named

#修改为:
OPTIONS="-u bind -4"

(4) 重新启动bind9

sudo systemctl restart named

至此服务器端的设置就结束了。接下来,放家里的Ollama工作站,我们定义为客户端,下一节我们就要进入客户端的设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BBM的开源HUB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值