Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南
本文档总结了服务器配置相关内容,包括 Ubuntu 服务器配置、硬盘扩容、静态 IP 设置以及 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: 2 renderer: networkd ethernets: <你的网络接口>: dhcp4: no addresses: - 192.168.1.20/24 gateway4: 192.168.1.1 nameservers: 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.pem ingress: - 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 配置。
总结
- 获取 token 和本地端口。
- (可选)写 config.yml 配置转发规则。
- 写 start-tunnel.sh 脚本,内容为 cloudflared tunnel run --token “你的token”。
- 赋权并运行脚本即可。