家用服务器 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. 安装 cloudflared

    wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
    sudo dpkg -i cloudflared-linux-amd64.deb
    cloudflared --version
    
  2. 登录 Cloudflare

    cloudflared login
    
  3. 创建隧道

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

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

    cloudflared tunnel route dns fengche-homeserver <你的域名或子域名>
    

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

SSH 通过 Cloudflare Tunnel

配置步骤

  1. 修改配置文件

    sudo nano /etc/cloudflared/config.yml
    

    添加 SSH 服务:

    tunnel: <你的隧道ID>
    credentials-file: /root/.cloudflared/<你的隧道ID>.json
    origincert: /root/.cloudflared/cert.pemingress:- hostname: ssh.<你的域名>service: ssh://localhost:22- hostname: <你的域名>service: http://localhost:80- service: http_status:404
    
  2. 更新 DNS 记录

    cloudflared tunnel route dns fengche-homeserver ssh.<你的域名>
    
  3. 重启服务

    sudo systemctl restart cloudflared
    

客户端连接

使用 cloudflared 作为代理:

  1. 在客户端安装 cloudflared
  2. 使用以下命令连接:
    cloudflared access ssh --hostname ssh.<你的域名>
    

或配置 SSH 配置文件:

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

常见问题与解决方案

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

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

隧道凭证问题

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

  1. 确保以相同用户身份创建和运行隧道
  2. 检查凭证文件路径是否正确
  3. 必要时重新创建隧道

服务启动失败

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

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

DNS 记录冲突

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

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

演示站 fengche.site

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

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

相关文章

分享5款开源、美观的 WinForm UI 控件库

前言 今天大姚给大家分享5款开源、美观的 WinForm UI 控件库&#xff0c;助力让我们的 WinForm 应用更好看。 WinForm WinForm是一个传统的桌面应用程序框架&#xff0c;它基于 Windows 操作系统的原生控件和窗体。通过简单易用的 API&#xff0c;开发者可以快速构建基于窗体…

PHP盲盒商城系统源码从零搭建部署:专业级开发与优化实践

【导语&#xff1a;技术驱动商业创新】 在2025年社交电商全面升级的浪潮下&#xff0c;基于PHP的盲盒系统凭借其高开发效率与低成本优势&#xff0c;成为中小企业的首选方案。本文将深度拆解盲盒源码从开发到部署的全流程技术细节&#xff0c;涵盖架构设计、性能优化与安全防护…

(33)VTK C++开发示例 ---图片转3D

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 这是 VTK 测试 clipArt.tcl 的改编版本。 提供带有 2D 剪贴画的 jpg 文件&#xff0c;该示例将创建 3D 多边形数据模…

2025东三省B题深圳杯B题数学建模挑战赛数模思路代码文章教学

完整内容请看文章最下面的推广群 已经完成全部问题的代码和建模 一、问题一的模型构建与优化&#xff08;RGB颜色空间转换模型&#xff09; 基础模型&#xff08;线性映射模型&#xff09;/高斯过程回归模型&#xff08;GPR&#xff09;&#xff1a; 针对高清视频源&#xff0…

linux netlink实现用户态和内核态数据交互

1&#xff0c;内核态代码 #include <linux/module.h> #include <linux/netlink.h> #include <net/sock.h> #define NETLINK_TEST 31 struct sock *nl_sk NULL; static void nl_recv_msg(struct sk_buff *skb) { struct nlmsghdr *nlh; int pid; …

LeetCode:DP-多状态问题

简单 面试题 17.16. 按摩师 一个有名的按摩师会收到源源不断的预约请求&#xff0c;每个预约都可以选择接或不接。在每次预约服务之间要有休息时间&#xff0c;因此她不能接受相邻的预约。给定一个预约请求序列&#xff0c;替按摩师找到最优的预约集合&#xff08;总预约时间最…

Spring AOP---面向切面编程由认识到使用

1. AOP AOP(Aspect-Oriented Programming), 是一种思想, 面向切面编程。 在前文统一异常处理&#xff0c;统一结果返回就是使用了这一思想&#xff08;都是在集中处理某一类事情, 但又不影响原有代码的正常运行&#xff09;&#xff0c;但他们不是AOP&#xff0c;只是应用了这…

专题二十四:虚拟专用网络

一、VPN简介 VPN&#xff08;Virtual Personal Network&#xff09;即虚拟专用网&#xff0c;泛指通过VPN技术在公用网络上构建的虚拟专用网络。VPN用户在此虚拟网络中传输私网流量&#xff0c;在不改变网络现状的情况下实现安全、可靠的连接。其主要功能是在公用网络上建立专…

Milvus(12):分析器

1 分析器概述 在文本处理中&#xff0c;分析器是将原始文本转换为结构化可搜索格式的关键组件。每个分析器通常由两个核心部件组成&#xff1a;标记器和过滤器。它们共同将输入文本转换为标记&#xff0c;完善这些标记&#xff0c;并为高效索引和检索做好准备。 在 Milvus 中&a…

Power Query精通指南1:查询结构设计、数据类型、数据导入与迁移(平面文件、Excel、Web)

文章目录 零、Power Query简介0.1 Power Query 主要功能0.2 Power Query 的优势0.3 Power Query 组件 一、Power Query数据处理基本流程1.1 前期准备1.2 提取1.3 转换1.3.1 Power Query 编辑器界面1.3.2 默认转换1.3.3 自定义转换 1.4 加载1.4.1 自动检测数据类型1.4.2 重命名查…

WebRTC 服务器之Janus概述和环境搭建

1 概述 Janus 是由 Meetecho 开发的通用 WebRTC 服务器&#xff0c;它为构建 WebRTC 应用程序提供了一个模块化框架。服务器目标&#xff1a;Janus WebRTC 网关被设计为轻量级、通用的 WebRTC 服务器&#xff0c;除了实现以下方法外&#xff0c;它本身不提供任何功能&#xff1…

19:常见的Halcon数据格式

遍历文件夹与文件选择 1&#xff09;遍历文件夹&#xff1a; list_files( : : Directory, Options : Files) Directory&#xff1a;目录&#xff08;文件夹路径&#xff09; Options&#xff1a;选项 files 指定搜索的格式为文件 directories 指定搜索的格式为文件夹 re…

QML图像提供器 (Image Provider)

QML 中的图像提供器是一种自定义图像加载机制&#xff0c;允许你从非文件源&#xff08;如数据库、网络或程序生成的内容&#xff09;提供图像数据。 主要类型 QQuickImageProvider - 基础图像提供器 QPixmapImageProvider - 提供 QPixmap 图像 QImageImageProvider - 提供 …

计算机视觉与深度学习 | 双目立体匹配算法理论+Opencv实践+matlab实践

双目立体匹配 一、双目立体匹配算法理论与OpenCV、matlab实践一、双目立体匹配理论二、OpenCV实践三、优化建议四、算法对比与适用场景二、双目立体匹配算法理论及Matlab实践指南一、双目立体匹配理论二、Matlab实践步骤三、算法对比与优化建议四、完整流程示例五、常见问题与解…

AI国学智慧语录视频,条条视频10W+播放量

家人们&#xff01;图书类带货玩法真的非常多&#xff0c;之前也分享过蛮多&#xff0c;例如情感语录、育儿教育、爆款图书金句类、AI历史人物解说类等等。 本期继续来分享一个对于普通人来说&#xff0c;上手相当简单&#xff0c;容易起号&#xff0c;可作为长线深耕的AI带货…

echart图表使用

2、接口编写 该部分代码定义了UserController控制器类&#xff0c;用于处理与用户相关的请求。包含一个用于跳转页面的方法和一个返回用户详细数据&#xff08;以 JSON 格式呈现&#xff09;的接口。前者负责将用户导航至指定页面&#xff0c;后者通过构建ChartVO对象并填充数…

Android短信监控技术实现:合法合规的远程采集方案

一年经验的全栈程序员&#xff0c;目前头发健在&#xff0c;但不知道能撑多久。 该项目已成功部署并稳定运行于企业生产环境&#xff0c;如需个性化定制方案&#xff0c;欢迎联系作者进行深度合作。 文章目录 前言 一、页面设计 1.页面显示 2.代码实现 二、具体代码实现 1.添加…

前端跨域问题怎么在后端解决

目录 简单的解决方法&#xff1a; 添加配置类&#xff1a; 为什么会跨域 1. 什么是源 2. URL结构 3. 同源不同源举&#x1f330; 同源例子 不同源例子 4. 浏览器为什么需要同源策略 5. 常规前端请求跨域 简单的解决方法&#xff1a; 添加配置类&#xff1a; packag…

【中间件】brpc_基础_execution_queue

execution_queue 源码 1 简介 execution_queue.h 是 Apache BRPC 中实现 高性能异步任务执行队列 的核心组件&#xff0c;主要用于在用户态线程&#xff08;bthread&#xff09;中实现任务的 异步提交、有序执行和高效调度。 该模块通过解耦任务提交与执行过程&#xff0c;提…

java学习之数据结构:一、数组

主要是对数组所有的东西进行总结&#xff0c;整理 适合小白~ 目录 1.什么是数组 1.1数组定义 1.2数组创建 1&#xff09;静态创建 2&#xff09;动态创建 1.3数组遍历 1&#xff09;for和while遍历 2&#xff09;foreach遍历 2.数组越界问题及解决 2.1数组越界问题 2…