缘由是把一台用于安装ollama的服务器挂在已有的梯子上
第一步:安装resolvconf,用于管理wireguard的DNS,这个我尝试过在ubuntu里最靠谱的方式了
在 Linux 系统中,可通过 resolvconf 添加网卡的 DNS,以下是具体步骤:
安装 resolvconf:如果系统中没有安装 resolvconf,需要先进行安装。在基于 Debian 或 Ubuntu 的系统中,可以使用以下命令安装:sudo apt install resolvconf。
启用并启动 resolvconf 服务:安装完成后,启用并启动 resolvconf 服务,使用命令sudo systemctl enable resolvconf.service和sudo systemctl start resolvconf.service。还可以通过sudo systemctl status resolvconf.service命令检查服务的状态,确保服务正常运行。

添加 DNS 服务器地址:打开/etc/resolvconf/resolv.conf.d/head文件,在文件中添加要设置的 DNS 服务器地址,格式为nameserver [DNS服务器IP地址]。例如要添加谷歌的公共 DNS 服务器,可在文件中添加nameserver 8.8.8.8和nameserver 8.8.4.4。也可以添加多个 DNS 服务器,每行一个。
更新 resolv.conf:添加完 DNS 服务器地址后,使用resolvconf命令的-u或update选项将配置写入/etc/resolv.conf文件,命令为sudo resolvconf -u。
验证配置:使用cat /etc/resolv.conf命令查看/etc/resolv.conf文件的内容,确认 DNS 服务器地址已正确添加。
第二步:安装wireguard
在 Ubuntu 22.04 中安装 WireGuard 的步骤如下1:
更新系统:打开终端,执行以下命令确保系统是最新的,以避免因软件包版本问题导致的安装错误。
sudo apt update && sudo apt upgrade -y
安装 WireGuard 及相关工具:使用以下命令安装 WireGuard 及其依赖项。
sudo apt install -y wireguard wireguard-tools
生成密钥对:WireGuard 基于加密密钥对来确保通信安全,每个节点都需要生成自己的密钥对。执行以下命令生成私钥和公钥,并将其保存到/etc/wireguard/目录中(目录随意)。
wg genkey | sudo tee /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/spublic.key
配置 WireGuard:创建一个新的配置文件ollama.conf。
[Interface]
# 客户端在 WireGuard 网络中的 IP 地址,需和服务端配置对应
Address = 10.10.12.2/24(对端配置的是10.10.12.1/24)
ListenPort = 51820(本地端口)
# 刚刚生成的客户端私钥
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXX
# DNS 服务器地址,可按需修改
DNS = 1.1.1.1
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ollama -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ollama -j MASQUERADE
[Peer]
# 服务端的公钥
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# 服务端的 IP 地址和监听端口
Endpoint = ROS的公网IP:监听端口
# 允许通过隧道的流量,这里表示允许所有流量
AllowedIPs = 0.0.0.0/0
# 保持连接的心跳时间,单位为秒
PersistentKeepalive = 25
启动 WireGuard:配置完成后,使用以下命令启动 WireGuard 服务,并设置为开机自启。
sudo systemctl start wg-quick@ollama
sudo systemctl enable wg-quick@ollama
验证安装:可以使用wg命令来查看 WireGuard 的状态,检查是否安装和配置正确。
wg