Ubuntu 服務器配置與 Cloudflare Tunnel 部署指南
本文檔總結了服務器配置相關內容,包括 Ubuntu 服務器配置、硬盤擴容、靜態 IP 設置以及 Cloudflare Tunnel 的部署步驟。
目錄
- 硬盤分區與擴容
- 設置靜態 IP
- Cloudflare Tunnel 部署
- SSH 通過 Cloudflare Tunnel
- 常見問題與解決方案
硬盤分區與擴容
問題分析
物理硬盤為 128GB,但 Ubuntu 服務器只使用了約 58GB 空間。通過 lsblk
命令查看:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 1.1G 0 part /boot/efi
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 116.2G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 58.1G 0 lvm /
解決方案
LVM 邏輯卷只使用了 58.1GB,而物理分區 sda3 有 116.2GB。需要擴展 LVM 邏輯卷:
# 1. 查看卷組中可用空間
sudo vgdisplay ubuntu-vg# 2. 擴展邏輯卷以使用所有可用空間
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv# 3. 調整文件系統大小以匹配邏輯卷大小
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
設置靜態 IP
配置步驟
-
確定網絡接口名稱:
ip a
找到主要網絡接口名稱(如 eth0、ens33 等)
-
創建/編輯 Netplan 配置文件:
sudo nano /etc/netplan/01-netcfg.yaml
-
添加靜態 IP 配置(國內優化版):
network:version: 2renderer: networkdethernets:<你的網絡接口>:dhcp4: noaddresses:- 192.168.1.20/24gateway4: 192.168.1.1nameservers:addresses: [223.5.5.5, 223.6.6.6, 114.114.114.114]
-
應用配置:
sudo netplan apply
-
驗證配置:
ip a ping -c 4 baidu.com
Cloudflare Tunnel 部署
安裝與配置
-
關閉防火墻
-
設置魔法
export http_proxy=http://192.168.1.2:7890 export https_proxy=http://192.168.1.2:7890 export no_proxy=localhost,127.0.0.1
-
測試網絡
curl -v https://www.魔法
-
安裝 cloudflared:
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb sudo dpkg -i cloudflared-linux-amd64.deb cloudflared --version
-
登錄 Cloudflare(需先切換root用戶以確保證書位置正確):
sudo -i cloudflared login
-
創建隧道:
cloudflared tunnel create fengche-homeserver
-
配置隧道:
sudo mkdir -p /etc/cloudflared sudo nano /etc/cloudflared/config.yml
配置文件內容:
tunnel: <你的隧道ID> credentials-file: /root/.cloudflared/<你的隧道ID>.json origincert: /root/.cloudflared/cert.pemingress:- hostname: <你的域名>service: http://localhost:80- service: http_status:404
-
配置 DNS:
cloudflared tunnel route dns fengche-homeserver [fcchat.xyz](https://fcchat.xyz)
注意:如果域名已有 DNS 記錄,使用子域名或先刪除現有記錄。
設置為系統服務
-
創建自定義系統服務文件:
sudo nano /etc/systemd/system/cloudflared.service
添加以下內容:
[Unit] Description=Cloudflare Tunnel After=network.target[Service] Type=simple User=root ExecStart=/usr/bin/cloudflared tunnel run fengche-homeserver Restart=on-failure RestartSec=5s[Install] WantedBy=multi-user.target
-
啟動并設置開機自啟:
sudo systemctl daemon-reload sudo systemctl start cloudflared sudo systemctl status cloudflared sudo systemctl enable cloudflared
演示站 fengche.site
使用 Token 啟動 Cloudflare Tunnel
如何獲取 tunnel 的 token
cloudflared tunnel list
cloudflared tunnel token 1dc1ad22-f9c3-40c3-b9a5-46a178077e84
執行以上命令即可獲取 tunnel 的 token。
準備工作
-
確保你有 cloudflared 的 token
例如:eyJhIjoiNzUzNDFjOGY2YjNlNDczOTdkZjBlNjAzNTQyMDc4YzUiLCJzIjoiVmhyTWw3bE0zc05NcExwK3BlK21UM3FjekRCZXQ1MmtsUy95d1lUV2tPMD0iLCJ0IjoiMWRjMWFkMjItZjljMy00MGMzLWI5YTUtNDZhMTc4MDc3ZTg0In0=
-
確認你的本地服務端口
例如:localhost:3001
創建 cloudflared 配置文件(可選)
如果你想用配置文件自定義轉發規則,可以在 /root/.cloudflared/config.yml
寫入如下內容:
tunnel: 1dc1ad22-f9c3-40c3-b9a5-46a178077e84 # 你的 tunnel ID
ingress:- hostname: fcchat.xyz # 你的域名service: http://localhost:3001 # 你的本地服務端口- service: http_status:404
如果你只用 token 啟動且只轉發一個端口,這一步可以省略。
編寫啟動腳本
-
進入 cloudflared 目錄
cd /root/.cloudflared/
-
新建腳本文件
nano start-tunnel.sh
-
寫入以下內容(請替換為你的 token 和端口)
#!/bin/bash # 啟動 cloudflared tunnel,token請替換為你的真實token cloudflared tunnel run --token "eyJhIjoiNzUzNDFjOGY2YjNlNDczOTdkZjBlNjAzNTQyMDc4YzUiLCJzIjoiVmhyTWw3bE0zc05NcExwK3BlK21UM3FjekRCZXQ1MmtsUy95d1lUV2tPMD0iLCJ0IjoiMWRjMWFkMjItZjljMy00MGMzLWI5YTUtNDZhMTc4MDc3ZTg0In0="
如果你有 config.yml,cloudflared 會自動讀取,無需額外指定端口。
-
保存并退出
- nano 下按
Ctrl+O
回車保存,Ctrl+X
退出。
- nano 下按
-
賦予腳本執行權限
chmod +x /root/.cloudflared/start-tunnel.sh
啟動 tunnel
以后只需運行:
/root/.cloudflared/start-tunnel.sh
即可一鍵啟動 Cloudflare Tunnel。
設置為后臺或開機自啟(可選)
- 后臺運行:
nohup /root/.cloudflared/start-tunnel.sh > /root/.cloudflared/tunnel.log 2>&1 &
- 開機自啟動可使用 systemd 或 rc.local 配置。
總結
作者 https://xoxome.online
- 獲取 token 和本地端口。
- (可選)寫 config.yml 配置轉發規則。
- 寫 start-tunnel.sh 腳本,內容為 cloudflared tunnel run --token “你的token”。
- 賦權并運行腳本即可。