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

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: 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]
    
  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.pemingress:- 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. 赋权并运行脚本即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/82744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

降低实验检测报告编制耗时 质检LIMS系统的应用策略

在质检工作流程中&#xff0c;检测报告编制往往是耗时耗力的关键环节。传统人工编制报告不仅效率低下&#xff0c;还容易出现数据错误、格式不统一等问题。质检 LIMS 系统凭借其强大的自动化、智能化功能&#xff0c;为检测报告编制带来革命性变革&#xff0c;能够将编制时间减…

同为.net/C#的跨平台运行时的mono和.net Core有什么区别?

Mono 和 .NET Core&#xff08;现已统一为 .NET&#xff09;都是 .NET 生态的跨平台实现&#xff0c;但它们在设计目标、技术特性和应用场景上有显著区别。以下是详细对比&#xff1a; ​​1. 历史背景​​ ​​项目​​​​诞生时间​​​​开发者​​​​当前状态​​​​Mo…

Android AIDL Hal最低保证出现的问题

1. AIDL HAL 的“最低保证”特性 &#xff08;1&#xff09;协议层级的强制支持 在 IComposer AIDL 接口定义中&#xff08;如 android.hardware.graphics.composer3&#xff09;&#xff0c;Google 已经将部分功能列为 必须支持的特性&#xff08;MUST&#xff09;。例如&am…

苹果FINDMY和谷歌FIND HUB增强共享位置功能

近期&#xff0c;苹果Findmy增强了追踪和分享丢失物品位置方面的功能&#xff0c;“共享物品位置”&#xff0c;用户可以安全地与航空a公司等第三方分享丢失物品的位置&#xff0c;以便于行李找回。 iOS 18.2的这一新功能使用户可以轻松、安全地与航空公司等第三方分享AirTag或…

基于GA遗传优化的FIR滤波器幅频相频均衡补偿算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 在数字信号处理领域&#xff0c;有限冲激响应&#xff08;FIR&#xff09;滤波器因其结构简单、稳定性好且易于实现线性相位等优点被广泛应用。然而&#xff0c;实…

双路物理CPU机器上安装Ubuntu并部署KVM以实现系统多开

在双路物理CPU机器上安装Ubuntu并部署KVM以实现系统多开&#xff0c;并追求性能最优&#xff0c;需要从硬件、宿主机系统、KVM配置、虚拟机配置等多个层面进行优化。 以下是详细的操作指南和优化建议&#xff1a; 阶段一&#xff1a;BIOS/UEFI 设置优化 (重启进入) 启用虚拟化…

adb查看、设置cpu相关信息

查内存 adb shell dumpsys meminfo查CPU top -m 10打开 system_monitor adb shell am start -n eu.chainfire.perfmon/.LaunchActivity设置CPU的核心数 在/sys/devices/system/cpu目录下可以看到你的CPU有几个核心&#xff0c;如果是双核&#xff0c;就是cpu0和cpu1&#xff0c…

【Unity基础】Unity新手实战教程:用ScriptableObject控制Cube颜色

目录 项目概述&#x1f6e0;️ 完整操作步骤&#xff08;10分钟内完成&#xff09;步骤1&#xff1a;创建ScriptableObject类步骤2&#xff1a;创建颜色配置资产步骤3&#xff1a;创建Cube控制器步骤4&#xff1a;设置场景和Cube步骤5&#xff1a;添加简单UI提示步骤6&#xff…

One Year~

入局 作为科班学生&#xff0c;没事就在CSDN闲逛&#xff0c;只作为旁观者的身份去体会别人的好文。当时也没想着说去自己写一些博客记录学习过程。相信大多数同学和我有一样的心理。 但在看鱼皮哥的课程时&#xff0c;发现他有着写文档和博客的习惯&#xff0c;整理自己的思路…

【Redis】第3节|深入理解Redis线程模型

一、Redis基础认知 &#xff08;一&#xff09;定义与定位 Redis&#xff08;Remote Dictionary Server&#xff09;是开源高性能键值数据库&#xff0c;核心特点如下&#xff1a; 数据结构丰富&#xff1a;支持字符串、哈希、列表、集合、有序集合等复杂数据类型&#xff0…

vben-admin 2.8.0 版本修改 axios响应处理逻辑

此前端框架下的 Axios 在后端返回的结果老是无法正常解析&#xff0c;找到他源码的封装类&#xff0c;修正这个问题 文件位于 src\utils\http\axios\index.ts 修改前 transformResponseHook: (res: AxiosResponse<Result>, options: RequestOptions) > {const { t }…

深入理解JavaScript设计模式之原型模式

目录 前言引入原型模式头脑风暴传统方式 vs 原型模式实战案例&#xff1a;飞机大战中的分身术 原型模式实现的关键秘密实战演练&#xff1a;造一架能分身的飞机克隆是创建对象的手段原型模式&#xff1a;轻装上阵的造物术 原型编程范型的一些规则原型编程的四大门规&#xff1a…

【数据库】概述(纯理论)

数据库系统引论 数据管理系统的发展 数据管理&#xff1a;对数据分类、组织、编码、存储、检索、维护 发展&#xff1a;人工管理、文件系统、数据库系统 40-50年代 人工管理 数据不保存&#xff0c;没有专门软件管理数据&#xff0c;应用程序完全依赖于数据&#xff0c;数据…

语音合成之十七 语音合成(TTS)中文自然度:问题、成因、解决方案

语音合成&#xff08;TTS&#xff09;中文自然度&#xff1a;问题、成因、解决方案 中文TTS系统基本架构中文TTS常见问题深度剖析与解决方案音色跳变成因分析解决方案 声调与重读错误成因分析业界解决方案 漏读与断句错误成因分析业界解决方案 在跨语言TTS系统比较中&#xff0…

我在 Linux 进程管理中踩过的坑:僵尸、瞬时与不可中断进程实战实录

作为运维老鸟&#xff0c;我曾在 Linux 进程管理上栽过不少跟头。记得第一次遇到满屏僵尸进程时&#xff0c;服务器直接卡到连 SSH 都登不上&#xff0c;看着ps命令里一排排刺眼的Z状态进程&#xff0c;手心直冒冷汗。后来又碰到过瞬时进程搞崩日志系统&#xff0c;明明监控显示…

【设计模式】简单工厂模式,工厂模式,抽象工厂模式,单例,代理,go案例区分总结

工厂模式三种类型&#xff1a; 一、简单工厂模式&#xff08;Simple Factory&#xff09; 定义&#xff1a; 用一个工厂类&#xff0c;根据传入的参数决定创建哪一种具体产品类实例。 面试说法&#xff1a; 由一个统一的工厂创建所有对象&#xff0c;增加新产品时需要修改工…

某标杆房企BI平台2.0升级实践

当房地产行业从“规模竞赛”转向“精益运营”&#xff0c;数字化转型成为破局关键。某千亿房企携手亿信华辰&#xff0c;以“用数据重构业务价值链”为目标&#xff0c;历经6个月完成BI平台战略性升级。在这场从“数据可视化”到“决策智能化”的跃迁中&#xff0c;亿信华辰ABI…

Lua 脚本在 Redis 中的运用-24 (使用 Lua 脚本实现原子计数器)

实践练习:使用 Lua 脚本实现原子计数器 实现原子计数器是许多应用程序中的常见需求,例如跟踪网站访问量、限制 API 请求或管理库存。虽然 Redis 提供了 INCR 命令用于递增整数,但在复杂场景或与其他操作结合时直接使用它可能并不足够。本课程探讨了如何在 Redis 中利用 Lua…

Rust 学习笔记:使用迭代器改进 minigrep

Rust 学习笔记&#xff1a;使用迭代器改进 minigrep Rust 学习笔记&#xff1a;使用迭代器改进 minigrep不使用 clone&#xff0c;而使用迭代器使用迭代器适配器使代码更清晰在循环或迭代器之间进行选择 Rust 学习笔记&#xff1a;使用迭代器改进 minigrep 前情提要&#xff1…

el-table配置表头固定而且高度变化

根据官网提示只要在 el-table 元素中定义了 height 属性&#xff0c;即可实现固定表头的表格&#xff0c;而不需要额外的代码。 如果你想既要固定表头&#xff0c;又要下方表格高度自适应&#xff0c;可以设置为 height"100%" &#xff1a; 然后外层设置scroll: