云计算百科
云计算领域专业知识百科平台

家用服务器 Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南

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: 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 部署

    安装与配置

  • 安装 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:

    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 <你的域名或子域名>

    注意:如果域名已有 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

  • SSH 通过 Cloudflare Tunnel

    配置步骤

  • 修改配置文件:

    sudo nano /etc/cloudflared/config.yml

    添加 SSH 服务:

    tunnel: <你的隧道ID>
    credentials-file: /root/.cloudflared/<你的隧道ID>.json
    origincert: /root/.cloudflared/cert.pem

    ingress:
    hostname: ssh.<你的域名>
    service: ssh://localhost:22
    hostname: <你的域名>
    service: http://localhost:80
    service: http_status:404

  • 更新 DNS 记录:

    cloudflared tunnel route dns fengche-homeserver ssh.<你的域名>

  • 重启服务:

    sudo systemctl restart cloudflared

  • 客户端连接

    使用 cloudflared 作为代理:

  • 在客户端安装 cloudflared
  • 使用以下命令连接:cloudflared access ssh –hostname ssh.<你的域名>
  • 或配置 SSH 配置文件:

    Host <服务器名称>
    ProxyCommand cloudflared access ssh –hostname ssh.<你的域名>
    User <用户名>

    常见问题与解决方案

    Cloudflare Tunnel 在中国大陆的访问情况

    • Cloudflare 的部分 IP 在中国大陆可能被限制访问
    • 访问体验可能不稳定,取决于地理位置和网络提供商
    • 建议先测试访问速度和稳定性,再决定是否全面采用

    隧道凭证问题

    如果遇到 “Tunnel credentials file doesn’t exist” 错误:

  • 确保以相同用户身份创建和运行隧道
  • 检查凭证文件路径是否正确
  • 必要时重新创建隧道
  • 服务启动失败

    如果系统服务启动失败但手动命令可以运行:

  • 使用自定义服务文件直接调用可工作的命令
  • 检查日志获取详细错误信息:sudo journalctl -u cloudflared -f
  • DNS 记录冲突

    如果遇到 “An A, AAAA, or CNAME record with that host already exists” 错误:

  • 使用子域名而不是根域名
  • 或删除现有 DNS 记录后再配置

  • 演示站 fengche.site

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 家用服务器 Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!