Инсталиране и конфигуриране на Cloudflare Tunnel

Инсталиране и конфигуриране на Cloudflare Tunnel

Cloudflare Tunnel (преди известен като Argo Tunnel) е мощен инструмент, който позволява сигурно свързване на локални услуги с Cloudflare, без да се налага да отваряте портове във файръула. Това е идеално решение за хостване на уеб приложения, SSH сървъри или други услуги зад NAT или строг файръул.

В тази статия ще ви преведем стъпка по стъпка през:

  1. Инсталирането на Cloudflare Tunnel в Linux.
  2. Създаването на tunnel и свързването му с вашия акаунт.
  3. Конфигурирането на tunnel за публикуване на локален сървър.
  4. Управлението на tunnel и основните команди.

📋 Предварителни изисквания

Преди да започнете, уверете се, че имате:

  • Linux сървър или машина (Ubuntu/Debian/CentOS).
  • Cloudflare акаунт с добавени домейни.
  • Доступ до sudo или root права.
  • Инсталиран curl и systemd (за управление на услуги).

🔧 Стъпка 1: Инсталиране на cloudflared

Cloudflare Tunnel се управлява от официалния клиент cloudflared. Инсталирайте го чрез следните команди:

За Debian/Ubuntu:

Terminal
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb

За RHEL/CentOS:

Terminal
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm -o cloudflared.rpm
sudo rpm -i cloudflared.rpm

Проверка на версията:

Terminal
cloudflared –version

🔑 Стъпка 2: Аутентикация с Cloudflare

  1. Вход в Cloudflare акаунта:
Terminal
cloudflared tunnel login
  • Ще се отвори браузър, където трябва да изберете домейна, към който ще се свържете.
  • След успешен вход, cloudflared ще запише сертификата в ~/.cloudflared/cert.pem.

🏗️ Стъпка 3: Създаване на Tunnel

  1. Създайте нов tunnel:
Terminal
cloudflared tunnel create ИМЕ_НА_TUNNEL
  • Заменете ИМЕ_НА_TUNNEL с желаното име (напр. my-tunnel).
  • Командата ще върне Tunnel ID, който ще ви трябва за конфигурацията.

Запишете конфигурационния файл:

  • Отидете в директорията ~/.cloudflared и създайте файл config.yml:
Terminal
nano ~/.cloudflared/config.yml

Добавете следното съдържание (адаптирано за вашия сървър):

tunnel: ТУНЕЛ_ID  
credentials-file: /home/ПОТРЕБИТЕЛ/.cloudflared/ТУНЕЛ_ID.json  

ingress:  
  - hostname: поддомейн.вашиятдомейн.com  
    service: http://localhost:80  
  - service: http_status:404  
  • Заменете:
    • ТУНЕЛ_ID с вашия tunnel ID.
    • ПОТРЕБИТЕЛ с вашето потребителско име.
    • поддомейн.вашиятдомейн.com с желания поддомейн.

🌐 Стъпка 4: Публикуване на DNS запис

  1. Създайте DNS запис за поддомейна:
Terminal
cloudflared tunnel route dns ИМЕ_НА_TUNNEL поддомейн.вашиятдомейн.com
  • Това автоматично ще добави CNAME запис в Cloudflare DNS.

⚙️ Стъпка 5: Стартиране на Tunnel

  1. Тестване на конфигурацията:
Terminal
cloudflared tunnel –config ~/.cloudflared/config.yml run ИМЕ_НА_TUNNEL
  • Ако всичко е наред, ще видите съобщение за успешно свързване.

Стартиране като услуга (systemd):

  • Създайте systemd услуга за автоматично стартиране:
Terminal
sudo nano /etc/systemd/system/cloudflared.service

Добавете следното:

[Unit]  
Description=Cloudflare Tunnel  
After=network.target  

[Service]  
ExecStart=/usr/local/bin/cloudflared tunnel --config /home/ПОТРЕБИТЕЛ/.cloudflared/config.yml run ИМЕ_НА_TUNNEL  
Restart=always  
User=ПОТРЕБИТЕЛ  

[Install]  
WantedBy=multi-user.target  
  • Активирайте и стартирайте услугата:
Terminal
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared

🔍 Стъпка 6: Проверка и управление

Основни команди:

КомандаОписание
cloudflared tunnel listПоказва всички tunnels
cloudflared tunnel delete ИМЕ_НА_TUNNELИзтрива tunnel
cloudflared tunnel info ИМЕ_НА_TUNNELПоказва информация за tunnel

Логове:

Terminal
journalctl -u cloudflared -f

🛠️ Често срещани проблеми

❌ „Failed to connect“

  • Проверете дали config.yml е правилен.
  • Уверете се, че локалният сървър работи (curl http://localhost:80).

❌ „Permission denied“

  • Проверете правата на cert.pem и config.yml.

🎯 Заключение

Cloudflare Tunnel предоставя сигурен, лесен и ефективен начин за публикуване на локални услуги без отваряне на портове. След тази инструкция вече можете да:
✅ Инсталирате cloudflared.
✅ Създадете и конфигурирате tunnel.
✅ Пуснете го като услуга за автоматично стартиране.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: 🔰