Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南 免费内网穿透家用服务器

发布于:2025-05-30 ⋅ 阅读:(22) ⋅ 点赞:(0)

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

本文档总结了服务器配置相关内容,包括 Ubuntu 服务器配置、硬盘扩容、静态 IP 设置以及 Cloudflare Tunnel 的部署步骤。

目录

  1. 硬盘分区与扩容
  2. 设置静态 IP
  3. Cloudflare Tunnel 部署
  4. SSH 通过 Cloudflare Tunnel
  5. 常见问题与解决方案

硬盘分区与扩容

问题分析

物理硬盘为 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

配置步骤

  1. 确定网络接口名称

    ip a
    

    找到主要网络接口名称(如 eth0、ens33 等)

  2. 创建/编辑 Netplan 配置文件

    sudo nano /etc/netplan/01-netcfg.yaml
    
  3. 添加静态 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]
    
  4. 应用配置

    sudo netplan apply
    
  5. 验证配置

    ip a
    ping -c 4 baidu.com
    

Cloudflare Tunnel 部署

安装与配置

  1. 关闭防火墙

  2. 设置魔法

    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
    
  3. 测试网络

    curl -v https://www.魔法
    
  4. 安装 cloudflared

    wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
    sudo dpkg -i cloudflared-linux-amd64.deb
    cloudflared --version
    
  5. 登录 Cloudflare(需先切换root用户以确保证书位置正确)

    sudo -i
    cloudflared login
    
  6. 创建隧道

    cloudflared tunnel create fengche-homeserver
    
  7. 配置隧道

    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
    
  8. 配置 DNS

    cloudflared tunnel route dns fengche-homeserver [fcchat.xyz](https://fcchat.xyz)
    

    注意:如果域名已有 DNS 记录,使用子域名或先删除现有记录。

设置为系统服务

  1. 创建自定义系统服务文件

    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
    
  2. 启动并设置开机自启

    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。

准备工作

  1. 确保你有 cloudflared 的 token
    例如:

    eyJhIjoiNzUzNDFjOGY2YjNlNDczOTdkZjBlNjAzNTQyMDc4YzUiLCJzIjoiVmhyTWw3bE0zc05NcExwK3BlK21UM3FjekRCZXQ1MmtsUy95d1lUV2tPMD0iLCJ0IjoiMWRjMWFkMjItZjljMy00MGMzLWI5YTUtNDZhMTc4MDc3ZTg0In0=
    
  2. 确认你的本地服务端口
    例如: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 启动且只转发一个端口,这一步可以省略。

编写启动脚本

  1. 进入 cloudflared 目录

    cd /root/.cloudflared/
    
  2. 新建脚本文件

    nano start-tunnel.sh
    
  3. 写入以下内容(请替换为你的 token 和端口)

    #!/bin/bash
    # 启动 cloudflared tunnel,token请替换为你的真实token
    cloudflared tunnel run --token "eyJhIjoiNzUzNDFjOGY2YjNlNDczOTdkZjBlNjAzNTQyMDc4YzUiLCJzIjoiVmhyTWw3bE0zc05NcExwK3BlK21UM3FjekRCZXQ1MmtsUy95d1lUV2tPMD0iLCJ0IjoiMWRjMWFkMjItZjljMy00MGMzLWI5YTUtNDZhMTc4MDc3ZTg0In0="
    

    如果你有 config.yml,cloudflared 会自动读取,无需额外指定端口。

  4. 保存并退出

    • nano 下按 Ctrl+O 回车保存,Ctrl+X 退出。
  5. 赋予脚本执行权限

    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

  1. 获取 token 和本地端口。
  2. (可选)写 config.yml 配置转发规则。
  3. 写 start-tunnel.sh 脚本,内容为 cloudflared tunnel run --token “你的token”。
  4. 赋权并运行脚本即可。

网站公告

今日签到

点亮在社区的每一天
去签到