Homelab Server ⟩ Cloudflare Tunnel

Cloudflare Tunnel

Привет, рассказываю про классную штуку от Сloudflare, о которой вы могли не знать.

Недавно я решил, что мне надоело платить за тот самый Vaultwarden, которым я хотел дешево заменить 1password, но в итоге стал платить еще больше, поэтому пора бы уже перетащить пароли на домашний сервер. В целом, интернет в Португалии работает хорошо, электричество, конечно, отключали пару раз, но то было ночью и некритично.

Но с домашним сервером есть пара проблем:

  1. У меня нет статического ip от провайдера, но вроде как есть услуга Dynamic DNS бесплатная;
  2. Сервер стоит за NAT, поэтому придется проковыривать дырку наружу.

Одна проблема: мне очень не хочется вываливать весь сервер в интернет, потому что мало ли что там запущено на нем, ну его нафиг. Начал изучать, какие есть варианты:

  1. Можно купить VPS, прокинуть до него впн и проксировать все запросы Nginxом в домашний сервер (но я как бы наоборот хочу перестать платить за VPS);
  2. Можно просто через Cloudflare проксировать весь трафик на домашний сервер, который торчит наружу и надеяться, что его не найдут, хаха;
  3. А МОЖНО через тот же Cloudflare сделать туннель до домашнего сервера и заворачивать весь трафик в него.

Последний вариант — это вообще бомба. Объясняю: вы запускаете на своем сервере cloudflared агент, который соединяется с ближайшим Cloudflare сервером и привязывает домен к туннелю. Весь трафик с домена идет по этому туннелю, при этом сервер остается в приватной сети, за NAT, наружу торчит только конкретный порт. Ну не пушка ли? Причем поддерживаются не только http(s), но и tcp, udp, ssh и т.д.

Самое главное, что это все бесплатно, не нужны никакие промежуточные публичные сервера. Вы просто следите за тем, чтобы домашний сервер был включен и подключен к интернетам. А еще вы получаете защиту от DDoS из коробки и HTTPS сертификат, который не надо руками обновлять.