---
# System prepended metadata

title: 如何讓 Ollama 在 Linux 上對外開放連線
tags: [linux, networking, ollama, systemd]

---

# 如何讓 Ollama 在 Linux 上對外開放連線
###### tags:`ollama` `linux` `networking` `systemd`
:::info
**適用環境**：Linux 系統（包含 Proxmox LXC 容器）
**目標**：讓 Ollama 服務可以接受外部機器的連接請求
:::

## 問題診斷

### 檢查 Ollama 執行狀態
```bash
# 檢查 Ollama 是否正在執行
ps aux | grep ollama

# 檢查 Ollama 偵聽的 ip 和 port
sudo ss -tlnp | grep 11434
```

:::warning
如果看到 `127.0.0.1:11434`，表示 Ollama 只偵聽本機連線，需要修改設定
:::
![image](https://hackmd.io/_uploads/HJWkx6zhle.png)

## 解決方案

### Step 1：建立 systemd 服務覆蓋目錄
```bash
sudo mkdir -p /etc/systemd/system/ollama.service.d/
```

### Step 2：建立環境變數設定文件
```bash
sudo tee /etc/systemd/system/ollama.service.d/override.conf << EOF
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
EOF
```

### Step 3：重新載入並重啟服務
```bash
# 重新載入 systemd 設定
sudo systemctl daemon-reload

# 重啟 Ollama 服務
sudo systemctl restart ollama
```

### Step 4：驗證設定成功
```bash
# 檢查是否監聽所有介面
sudo ss -tlnp | grep 11434
```

:::success
**成功標誌**：應該看到 `0.0.0.0:11434` 而不是 `127.0.0.1:11434`
:::
![image](https://hackmd.io/_uploads/HyFTJ6zhex.png)


### Step 5：測試連接

#### 本地測試
```bash
# 測試本機連線
curl http://localhost:11434/api/tags
```
![image](https://hackmd.io/_uploads/HJpmbpG3le.png)

## 故障排除

### 如果 systemd 方法無效
```bash
# 停止 systemd 服務
sudo systemctl stop ollama

# 手動啟動並設定環境變數
sudo OLLAMA_HOST=0.0.0.0:11434 /usr/local/bin/ollama serve
```

### 防火牆檢查
```bash
# 檢查防火牆狀態
sudo ufw status

# 如需要，開放 11434 port
sudo ufw allow 11434
```

:::danger
**安全提醒**：對外開放 Ollama 服務時，請確保網路環境安全，避免未授權存取
:::

---

