← Cloudflare One / cloudflare-one / networks / connectors / cloudflare-tunnel / use-cases
Отобразите VNC-клиент в браузере
Сервер Virtual Network Computer (VNC) предоставляет пользователям удаленный доступ к рабочему столу компьютера. Cloudflare может отображать терминал VNC в браузере без какого-либо программного обеспечения или настроек на стороне клиента.
Для VNC, отображаемого в браузере, требуется подключить VNC-сервер к Cloudflare и направлять трафик через публичное имя хоста. Чтобы получить доступ к VNC-серверу, пользователи переходят по URL-адресу публичного имени хоста и входят через Cloudflare Access с помощью настроенного поставщика удостоверений. Cloudflare применит ваш Политики доступа и, если доступ пользователю разрешен, отображает клиент VNC в его браузере.
Предварительные требования
- Одна активный домен в Cloudflare.
- Домен использует либо полная настройка или частичная (
CNAME) настройка.
1. Настройте VNC-сервер
В качестве примера мы создадим сервер TightVNC на виртуальной машине (VM) Ubuntu, размещённой в Google Cloud Project (GCP). Мы настроим VNC-сервер для запуска XFCE, легковесной среды рабочего стола, подходящей для удалённого доступа. Если у вас уже установлен VNC-сервер, этот шаг можно пропустить и перейдите к шагу 2.
-
Откройте окно терминала для вашей виртуальной машины Ubuntu.
-
Установите XFCE и TightVNC, выполнив следующую команду:
sudo apt update sudo apt install xfce4 xfce4-goodies dbus-x11 tightvncserver -yЭта команда устанавливает рабочий стол, несколько полезных утилит и программное обеспечение сервера VNC.
-
Чтобы инициализировать VNC-сервер:
-
Создайте инстанс сервера VNC:
vncserver -
Вам будет предложено задать пароль. Он будет использоваться для подключения к вашему VNC-серверу и не может превышать 8 символов.
TightVNC создаст файлы конфигурации и запустит VNC-сессию на дисплее
:1(который использует порт5901). -
Вам будет предложено создать пароль только для просмотра. Можно нажать
nдля «нет». -
Завершите эту начальную сессию, чтобы можно было изменить её конфигурацию:
vncserver -kill :1
-
-
Настройте VNC для запуска рабочего стола XFCE:
- Создайте каталог конфигурации VNC, если он отсутствует:
mkdir -p ~/.vnc- Откройте
xstartupфайл в текстовом редакторе. Например,
vim ~/.vnc/xstartup- Обновите файл в соответствии со следующей конфигурацией:
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS startxfce4- Сделайте файл исполняемым:
chmod +x ~/.vnc/xstartup -
Запустите сервер VNC снова:
vncserver -localhost :1-localhostфлаг гарантирует, что VNC-сервер принимает подключения только от самой ВМ, а не из интернета. Теперь ваш VNC-сервер запущен на порте5901, но доступ к нему есть только изlocalhost(127.0.0.1) внутри виртуальной машины. -
(Рекомендуется) Протестируйте сервер VNC с помощью существующего клиента VNC, чтобы проверить отсутствующие пакеты или изменения конфигурации. Например, чтобы протестировать сервер VNC, размещённый в GCP:
-
Откройте терминал на клиентской машине.
-
Подключение к серверу VNC через SSH с перенаправлением своего локального порта
5901к порту прослушивания сервера VNC:gcloud compute ssh [YOUR_VM_NAME] --zone=[YOUR_ZONE] -- -L 5901:localhost:5901 -
Откройте предпочитаемое приложение VNC-клиента.
-
В VNC-клиенте подключитесь по адресу
localhost:5901и введите пароль своего VNC-сервера.
Вы должны увидеть рабочий стол виртуальной машины Ubuntu.
-
-
(Необязательно) Настройте запуск VNC-сервера при загрузке:
-
Найдите полный путь к
vncserverкоманда:which vncserver/usr/bin/vncserver -
Создайте новый конфигурационный файл службы:
sudo vim /etc/systemd/system/[email protected]-
Скопируйте следующее содержимое и вставьте его. Замените
[YOUR_USERNAME]с пользователем VNC-сервера. При необходимости обновите/usr/bin/vncserverв вашvncserverпуть.[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=[YOUR_USERNAME] WorkingDirectory=/home/[YOUR_USERNAME] PIDFile=/home/[YOUR_USERNAME]/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -localhost :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target- Перезагрузить
systemdдля чтения в новом файле службы:
sudo systemctl daemon-reload- Включите запуск службы при загрузке:
sudo systemctl enable [email protected]1переменная настраивает службу VNC на использование дисплея:1(который работает на порту5901).- По умолчанию
systemdпользовательские службы запускаются только тогда, когда этот пользователь выполнил вход. Чтобы служба VNC запускалась при загрузке (до входа в систему), включите linger для своего пользователя:
sudo loginctl enable-linger [YOUR_USERNAME]- Запустите службу:
sudo systemctl start [email protected]- Проверьте его статус:
sudo systemctl status [email protected]Теперь сервер VNC будет запускаться автоматически при каждой загрузке ВМ.
- Перезагрузить
-
2. Подключите сервер к Cloudflare
-
Создайте Cloudflare Tunnel, следуя руководство по настройке в панели управления.
-
Перейдите в Сеть > Tunnels, затем выберите свой туннель.
Перейдите в Tunnels ↗ -
На Маршруты вкладке выберите Добавить маршрут, затем выберите Опубликованное приложение.
-
Выберите домен из раскрывающегося списка и укажите любой поддомен (например,
vnc.example.com). -
Для Сервис, выберите TCP и введите
localhost:<5901>. Если VNC-сервер находится на другой машине, отличной от той, где установлен туннель, введите<SERVER_IP>:5901.Замените
5901с портом прослушивания вашего VNC-сервера. Чтобы определить порт прослушивания VNC, выполнитеsudo ss -lnptи найдитеvncв списке процессов. -
Сохраните маршрут.
Ваш VNC-сервер теперь готов принимать входящие запросы от Cloudflare.
3. Создайте приложение Access для VNC
Создайте приложение Cloudflare Access, к которому пользователи смогут получить доступ через браузер:
-
В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Приложения.
-
Выберите Создать новое приложение.
-
Выберите Самостоятельный хостинг и конфиденциальность.
-
Выберите Добавьте общедоступное имя хоста и введите имя хоста опубликованного приложения (
vnc.example.com). -
Включите Разрешить доступ через сессии RDP, SSH или VNC в браузере, затем выберите VNC.
-
В разделе Политики доступа, добавьте существующую политику или создать новую политику чтобы управлять тем, кто может подключаться к вашему приложению. Все приложения Access по умолчанию запрещают доступ: пользователь должен соответствовать политике Allow, прежде чем получить доступ.
-
Выберите Создание.
4. Подключитесь как пользователь
Теперь пользователи могут получать доступ к среде удалённого рабочего стола прямо в веб-браузере без установки какого-либо ПО VNC-клиента.
Чтобы подключиться к серверу VNC:
- Откройте браузер и перейдите по публичному URL-адресу имени хоста (например,
https://vnc.example.com). - Войдите в Cloudflare Access через настроенного поставщика идентификации.
- Введите пароль сервера VNC.
В браузере должен отобразиться рабочий стол удалённого сервера VNC. Все подключения защищены сетью Cloudflare, а доступ контролируется политиками Access.