{"id":15715599,"url":"https://github.com/avenom/synology-cloudflare-tunnel","last_synced_at":"2026-05-10T05:18:08.316Z","repository":{"id":253395884,"uuid":"843380803","full_name":"avenom/synology-cloudflare-tunnel","owner":"avenom","description":"Установка и настройка Cloudflare Tunnel для Synology DSM со своим доменом","archived":false,"fork":false,"pushed_at":"2024-08-16T13:23:26.000Z","size":104,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T20:18:07.177Z","etag":null,"topics":["cloudflare","cloudflare-tunnel","cloudflare-zero-trust","clouflared","container-manager","docker","docker-compose","dsm","guide","nas","synology","synology-nas","tunnel","xpenology","zero-trust"],"latest_commit_sha":null,"homepage":"https://avenom.ru/posts/synology-cloudflare-tunnel","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avenom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-16T11:45:06.000Z","updated_at":"2025-03-28T07:50:53.000Z","dependencies_parsed_at":"2024-08-16T12:59:55.033Z","dependency_job_id":"2de1f617-e295-48f6-aaab-b884f0e9715d","html_url":"https://github.com/avenom/synology-cloudflare-tunnel","commit_stats":null,"previous_names":["avenom/synology-cloudflare-tunnel"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/avenom/synology-cloudflare-tunnel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avenom%2Fsynology-cloudflare-tunnel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avenom%2Fsynology-cloudflare-tunnel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avenom%2Fsynology-cloudflare-tunnel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avenom%2Fsynology-cloudflare-tunnel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avenom","download_url":"https://codeload.github.com/avenom/synology-cloudflare-tunnel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avenom%2Fsynology-cloudflare-tunnel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266240896,"owners_count":23898062,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare","cloudflare-tunnel","cloudflare-zero-trust","clouflared","container-manager","docker","docker-compose","dsm","guide","nas","synology","synology-nas","tunnel","xpenology","zero-trust"],"created_at":"2024-10-03T21:42:06.819Z","updated_at":"2026-05-10T05:18:08.283Z","avatar_url":"https://github.com/avenom.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Установка и настройка Cloudflare Tunnel для Synology NAS\n\u003cimg src=\"https://github.com/avenom/synology-cloudflare-tunnel/blob/main/images/synology-cloudflare-tunnel.png\"\u003e\n\nCloudflare Tunnel создает зашифрованный туннель между вашим исходным веб-сервером и ближайшим центром обработки данных Cloudflare, не открывая при этом общедоступных входящих портов. Позволяет быстро развернуть инфраструктуру в среде Zero Trust, и все запросы, обращенные к вашим ресурсам, будут сначала проходить через надежные фильтры безопасности, настроенные в сети Cloudflare.\n\nДостаточно добавить ваш домен в Cloudflare, а затем настроить один из доступных клиентов (коннекторов) для Linux, Windows, macOS и Docker. После этого служба станет доступной через интернет на вашем домене.\n\nПлюсы:\n- Нет необходимости использовать Synology QuickConnect, Synology DDNS, обратные прокси.\n- Для доступа из интернета нет необходимости открывать порты в роутере.\n- Автоматический HTTPS с SSL-сертификатом.\n- Для отключения доступа достаточно остановить контейнер Cloudflared в Docker.\n\nМинусы:\n- Нужен платный домен.\n- Весь трафик будет проходить через серверы Cloudflare, так что если вам необходима максимальная конфиденциальность данных, то лучше использовать свой VPN.\n\n## Оглавление\n\n1. [Требования](#requirements)\n2. [Добавление и настройка домена в Cloudflare](#cloudflare)\n3. [Настройка Cloudflare Zero Trust и Cloudflared Docker Compose](#zero)\n4. [Настройка безопасности Cloudflare Tunnel](#security)\n\n## 1. Требования \u003ca name=\"requirements\"\u003e\u003c/a\u003e\n\n- Доменное имя.\n- Учетная запись [Cloudflare](https://dash.cloudflare.com/sign-up).\n- Кредитная карта иностранного банка для Cloudflare Zero Trust (нужна только для активации бесплатного плана).\n- Container Manager в Synology DSM.\n\n## 2. Добавление и настройка домена в Cloudflare \u003ca name=\"cloudflare\"\u003e\u003c/a\u003e\n\n1. Купите доменное имя у регистратора, в качестве примера будет использован домен хостера [Timeweb](https://timeweb.com/ru/services/domains/). После покупки, вы сможете начать работать с доменом после обновления информации на DNS-серверах. Обычно это занимает не больше 3 часов, реже - до 24 часов.\n\n2. Залогиньтесь в [Cloudflare](https://dash.cloudflare.com/login).\n\n3. В аккаунте [Cloudflare](https://dash.cloudflare.com/), на верхней панели нажмите + Add \u003e Existing domain, добавьте ваш домен site.ru, выберите Quick scan for DNS records и нажмите Continue.\n\n\u003cimg src=\"https://github.com/avenom/synology-cloudflare-tunnel/blob/main/images/add.png\"\u003e\n\n\u003cimg src=\"https://github.com/avenom/synology-cloudflare-tunnel/blob/main/images/site.png\"\u003e\n\n4. Прокрутите страницу вниз, выберите план Free и нажмите Continue.\n\n5. Далее ваш домен просканируется и его DNS-записи импортируются в Cloudflare, нажмите Continue.\n\n6. Найдите на странице Cloudflare nameservers.\n\nПример:\n\n```\nname1.ns.cloudflare.com\nname2.ns.cloudflare.com\n```\n\n7. Пример настройки nameservers домена хостера Timeweb. На [странице доменов](https://hosting.timeweb.ru/domains) нажмите рядом с вашим доменом кнопку настройки и нажмите \"Настройки DNS\", сверху страницы нажмите \"Редактировать NS-серверы\".\n\n\u003cimg src=\"https://github.com/avenom/synology-cloudflare-tunnel/blob/main/images/dns.png\"\u003e\n\nОставьте только два сервера Cloudflare:\n\n```\nname1.ns.cloudflare.com\nname2.ns.cloudflare.com\n```\n\n\u003cimg src=\"https://github.com/avenom/synology-cloudflare-tunnel/blob/main/images/dns-ns.png\"\u003e\n\n8. Дождитесь от вашего регистратора письма с успешнным изменением данных домена и делегированием на серверы Cloudflare. На странице Cloudflare нажмите \"Check nameservers now\" и дождитесь письма от Cloudflare с содержанием \"[Cloudflare]: site.ru is now active on a Cloudflare Free plan\" и нажмите \"Continue\".\n\n9. Далее нажмите Get started и отметьте следующие настройки:\n\n```\nAutomatic HTTPS Rewrites: Yes\nAlways use HTTPS: Yes\n```\n\nНажмите Summary и Finish.\n\n## 3. Настройка Cloudflare Zero Trust и Cloudflared Docker Compose \u003ca name=\"zero\"\u003e\u003c/a\u003e\n\n1. Вернитесь на главную [Cloudflare](https://dash.cloudflare.com), в левом меню выберите Zero Trust.\n\n2. Придумайте имя команды. Имя команды создает уникальный домен для вашей учетной записи Cloudflare Zero Trust. Вы можете изменить его позже. Нажмите \"Continue\".\n\n3. Выберите план Free \u003e Select plan \u003e Proceed to payment \u003e Add payment method \u003e Введите данные кредитной карты иностранного банка \u003e Done \u003e Purchase \u003e Getting Started with Cloudflare Zero Trust Free.\n\n4. В левом меню выберите Networks \u003e Tunnels \u003e Create a tunnel \u003e Select Cloudflared \u003e Next \u003e Придумайте название для туннеля \u003e Save Tunnel.\n\n5. На странице Configure выберите Docker, скопируйте и сохраните куда-нибудь код docker run (кнопкой возле кода).\n\n6. В Synology DSM откройте File Station и создайте следующую структуру папок:\n\n```\n/docker/cloudflared/\n```\n\n7. Создайте в Container Manager новый проект с названием cloudflared, выберите путь /docker/cloudflared/, выберите в источнике \"Создать docker-compose.yml\", вставьте в окно ниже следующий код:\n\n```\nservices:\n  cloudflared:\n    image: cloudflare/cloudflared:latest\n    container_name: cloudflared\n    network_mode: host\n    command: tunnel run\n    environment:\n      - TUNNEL_TOKEN=ВАШТОКЕН # Вставьте из скопированного ранее кода все, что после --token \n    restart: always\n```\n\n8. Вернитесь на страницу Configure, в Connectors должен быть Status: Connected, нажмите Next.\n\n9. На странице Route Traffic откройте вкладку Public Hostnames и введите ваши данные:\n\n```\nSubdomain: nas\nDomain: site.ru\nType: HTTP\nURL: synologyip:5000 # Локальный IP-адрес вашего Synology DSM.\n```\n\nНажмите Save tunnel.\n\n10. Теперь можете проверить доступ к Synology NAS с домена https://nas.site.ru - соединение HTTPS с SSL-сертификатом и без открытия порта 443 в роутере.\n\nТаким же способом с помощью субдоменов можно настроить доступ для других пакетов DSM и контейнеров Docker, выбрав в Networks \u003e Tunnels ранее созданный туннель и нажав Edit, открыв вкладку Public Hostname и нажав Add a public hostname.\n\n## 4. Настройка безопасности Cloudflare Tunnel \u003ca name=\"security\"\u003e\u003c/a\u003e\n\n1. Вернитесь на главную [Cloudflare](https://dash.cloudflare.com), в левом меню выберите Zero Trust \u003e Settings \u003e Authentication. Проверьте выбран ли в Login methods: One-time PIN (одноразовый пин-код на вашу почту).\n\n2. В левом меню выберите Access \u003e Access groups \u003e Add a Group. Добавим доступ к вашему домену только из определенной страны с пин-кодом на вашу почту:\n\n```\nGroup name: Russia + Email\nSet as default group: Включить\n\nInclude\nSelector: Country\nValue: Russian Federation\n\n+ Add require\n\nRequire\nSelector: Emails\nValue: Ваша почта\n```\n\nНажмите Save.\n\n3. В левом меню выберите Access \u003e Applications \u003e Add an application \u003e Self-hosted \u003e Select и введите следующие данные:\n\n```\nApplication Configuration\nApplication name: NAS\nSession Duration: 24 hours\n\nApplication domain\nSubdomain: * \nDomain: site.ru\n```\n\nС субдоменом * аутентификацию будут проходить Synology DSM и все субдомены. Пройдя аутентификацию на любом субдомене *.site.ru, вы получаете доступ сразу ко всем субдоменам.\n\nНажмите Next и введите следующие данные:\n\n```\nPolicy name: NAS Access\nAction: Allow\nВ Assign a group отметить Russia + Email\n```\n\nНажмите Next, нажмите Add application.\n\n4. Теперь когда вы зайдете на https://nas.site.ru, сперва откроется страница Cloudflare с вводом вашей почты:\n\n\u003cimg src=\"https://github.com/avenom/synology-cloudflare-tunnel/blob/main/images/email.png\"\u003e\n\nПосле чего нужно будет ввести код, который придет на вашу почту:\n\n\u003cimg src=\"https://github.com/avenom/synology-cloudflare-tunnel/blob/main/images/email-code.png\"\u003e\n\nЕсли на сайт зайдет пользователь не из России, то он увидит такую страницу:\n\n\u003cimg src=\"https://github.com/avenom/synology-cloudflare-tunnel/blob/main/images/country.png\"\u003e\n\nНастройка Cloudflare Tunnel завершена!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favenom%2Fsynology-cloudflare-tunnel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favenom%2Fsynology-cloudflare-tunnel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favenom%2Fsynology-cloudflare-tunnel/lists"}