hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Ubuntu
Hướng dẫn tạo cloudflared tunnel để phục vụ web cho home server trong trường hợp không mở port public

Hướng dẫn tạo cloudflared tunnel để phục vụ web cho home server trong trường hợp không mở port public

  • 30-10-2025
  • Toanngo92
  • 0 Comments

Mục lục

  • 1. Thêm tên miền và chuyển DNS cho Cloudflare
  • 2. Cài đặt phần mềm cloudflared trên máy chủ tại nhà
  • 5. Tạo file cấu hình (config.yml)
  • 6. Trỏ DNS hoặc route hostname qua Tunnel
  • 7. Chạy Tunnel
  • 8. Chuyển thành service
  • 3. Nạp, bật và chạy service
  • 4. Kiểm tra log/trạng thái

1. Thêm tên miền và chuyển DNS cho Cloudflare

  • Đăng nhập vào tài khoản Cloudflare.
  • Thêm tên miền của bạn vào Cloudflare (Add Site) → chọn gói (bản Free đã đủ cho nhiều trường hợp). crosstalksolutions.com+1
  • Cloudflare sẽ yêu cầu bạn thay đổi nameservers của tên miền về nameservers của Cloudflare (do nhà đăng ký tên miền của bạn cung cấp). crosstalksolutions.com+1
  • Chờ cho việc chuyển nameservers được xác nhận, tên miền kích hoạt qua Cloudflare.

2. Cài đặt phần mềm cloudflared trên máy chủ tại nhà

  • Truy cập vào máy chủ của bạn (ví dụ Linux) và tải cloudflared. Ví dụ trên Linux:
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared-linux-amd64.deb sudo dpkg -i cloudflared-linux-amd64.deb
  • Sau khi cài, kiểm tra phiên bản:
cloudflared --version

Xác thực với cloudflared:

cloudflared tunnel login

Lệnh này sẽ mở trình duyệt, bạn đăng nhập vào tài khoản Cloudflare và chọn tên miền để xác thực.

Lệnh này sinh ra chứng chỉ (cert.pem hoặc tương đương) dùng để kết nối.

Tạo một Tunnel

cloudflared tunnel create <TÊN_TUNNEL>

Lệnh này tạo 1 tunnel, sinh file credentials (file JSON của tunnel). Cloudflare Docs

Lưu lại Tunnel UUID và đường dẫn tới tập tin credentials.

5. Tạo file cấu hình (config.yml)

  • Tạo thư mục .cloudflared (hoặc vị trí phù hợp) và trong đó tạo config.yml. Ví dụ cấu hình:
tunnel: <Tunnel-UUID>
credentials-file: /home/youruser/.cloudflared/<Tunnel-UUID>.json

ingress:
  - hostname: subdomain.yourdomain.com
    service: http://localhost:8080
  - service: http_status:404

Trong đó, Tunnel-UUID chính là Tunnel-UUID vừa nhận được sau khi chạy ở lệnh trước

hostname: tên miền phụ bạn muốn dùng để truy cập dịch vụ nhà (ví dụ nas.yourdomain.com).

service: địa chỉ nội bộ của dịch vụ bạn muốn xuất ra (ví dụ máy chủ ở localhost:8080).

6. Trỏ DNS hoặc route hostname qua Tunnel

  • Trong dashboard Cloudflare → Zero Trust → Access → Tunnels → chọn tunnel của bạn. crosstalksolutions.com+1
  • Thêm Public Hostname: subdomain + domain + chọn kiểu service (HTTP, TCP, etc) → Service URL: nội bộ (ví dụ http://192.168.1.100:5000). crosstalksolutions.com
  • Hoặc sử dụng CLI:
cloudflared tunnel route dns <UUID_or_NAME> <hostname>

Ví dụ:

cloudflared tunnel route dns home_server_tunnel abc.com

Kiểm tra xem route thành công chưa, gõ lệnh:

cloudflared tunnel route ip show

7. Chạy Tunnel

  • Từ máy chủ, chạy:
cloudflared tunnel run <UUID_or_NAME>

Nếu có config, chạy:

cloudflared --config /home/youruser/.cloudflared/config.yml tunnel run <NAME>

Lưu ý, nếu server sử dụng CSF, cần allow UDP 7844 trong csf.conf nếu có, hoặc bất kỳ firewall nào

OUT_UDP = "20,21,53,113,123,7844"

8. Chuyển thành service

1. Tạo user riêng và di chuyển cấu hình

# tạo user không đăng nhập
useradd -r -s /usr/sbin/nologin cloudflared

# tạo thư mục cấu hình chuẩn
mkdir -p /etc/cloudflared

# di chuyển/copy file cấu hình & credentials (giữ nguyên đường dẫn trong config nếu đã đúng)
cp /root/.cloudflared/config.yml /etc/cloudflared/config.yml
cp /root/.cloudflared/*.json /etc/cloudflared/
cp /root/.cloudflared/pem.cert /etc/cloudflared/pem.cert

# phân quyền an toàn
chown -R cloudflared:cloudflared /etc/cloudflared
chmod 640 /etc/cloudflared/config.yml
chmod 640 /etc/cloudflared/*.json
chmod 640 /etc/cloudflared/pem.cert

Tạo Unit file

nano /etc/systemd/system/cloudflared.service

Nội dung unit

[Unit]
Description=Cloudflare Tunnel
After=network-online.target
Wants=network-online.target

[Service]
# nếu bạn đã copy binary vào /usr/local/bin
ExecStart=/usr/local/bin/cloudflared --no-autoupdate \
  --config /etc/cloudflared/config.yml \
  tunnel run home_server_tunnel

# CHỌN 1 trong 2 dòng User dưới đây:
# 1) nếu đã di chuyển cấu hình/credentials sang /etc/cloudflared (khuyên dùng):
User=cloudflared
# 2) nếu vẫn để config/credentials ở /root/.cloudflared thì dùng root:
#User=root

Restart=always
RestartSec=3
# Hạn mức file descriptor hợp lý
LimitNOFILE=65536

# Nếu bản cloudflared của bạn hỗ trợ systemd notify thì có thể thay Type=notify
Type=simple

[Install]
WantedBy=multi-user.target

3. Nạp, bật và chạy service

systemctl daemon-reload
systemctl enable cloudflared
systemctl start cloudflared

4. Kiểm tra log/trạng thái

systemctl status cloudflared
journalctl -u cloudflared -f

Bài viết liên quan:

Hướng dẫn sử dụng Rclone backup VPS lên google drive
Hướng dẫn backup linux server bằng Rsync

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Hướng dẫn tạo cloudflared tunnel để phục vụ web cho home server trong trường hợp không mở port public

Giải thuật Qui hoạch động (Dynamic Programming) 

Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng

Sắp xếp chọn – Selection Sort

Cấu trúc dữ liệu danh sách liên kết (LinkedList)

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×