Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AlgorithmAlchemy/1c866c55585bc0a6a535bce85b1565f2 to your computer and use it in GitHub Desktop.
Save AlgorithmAlchemy/1c866c55585bc0a6a535bce85b1565f2 to your computer and use it in GitHub Desktop.
VNC-сервера на Ubuntu 22.04

Полный гайд по настройке VNC-сервера на Ubuntu 22.04

Это руководство поможет вам настроить VNC-сервер на Ubuntu 22.04 для удалённого доступа к графическому интерфейсу.

Содержание

  1. Установка необходимых компонентов
  2. Настройка VNC-сервера
  3. Запуск VNC-сервера
  4. Настройка брандмауэра
  5. Автозапуск VNC-сервера
  6. Подключение к VNC-серверу
  7. Устранение неполадок

Установка необходимых компонентов

Обновите систему и установите необходимые пакеты:

sudo apt update && sudo apt upgrade -y
sudo apt install -y tigervnc-standalone-server tigervnc-common

Настройка VNC-сервера

  1. Установите пароль для VNC-доступа:
vncpasswd

Вам будет предложено ввести и подтвердить пароль, а также установить опцию только для чтения (по желанию).

  1. Создайте конфигурационный файл:
mkdir -p ~/.vnc
cat > ~/.vnc/xstartup << 'EOF'
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/xinit/xinitrc
EOF
chmod +x ~/.vnc/xstartup

Запуск VNC-сервера

Запустите VNC-сервер на дисплее :1:

vncserver :1 -geometry 1920x1080 -depth 24 -localhost no

Проверьте, что сервер запущен и слушает на всех интерфейсах:

ss -tulnp | grep vnc

Вы должны увидеть примерно следующее:

tcp   LISTEN 0      5           0.0.0.0:5901       0.0.0.0:*    users:(("Xtigervnc",pid=XXXX,fd=9))
tcp   LISTEN 0      5              [::]:5901          [::]:*    users:(("Xtigervnc",pid=XXXX,fd=10))

Настройка брандмауэра

Разрешите подключения к VNC-серверу:

sudo ufw allow 5901/tcp
sudo ufw enable

Автозапуск VNC-сервера

Для автоматического запуска VNC-сервера при загрузке системы:

  1. Создайте systemd-службу:
sudo nano /etc/systemd/system/[email protected]
  1. Добавьте следующее содержимое:
[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=%i
Group=%i
WorkingDirectory=/home/%i
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -localhost no -geometry 1920x1080 -depth 24 %i
ExecStop=/usr/bin/vncserver -kill %i

[Install]
WantedBy=multi-user.target
  1. Активируйте и запустите службу:
sudo systemctl daemon-reload
sudo systemctl enable [email protected]
sudo systemctl start [email protected]

Подключение к VNC-серверу

Для подключения к серверу вам понадобится:

  • IP-адрес сервера
  • Порт (5901 для дисплея :1)
  • Пароль, установленный командой vncpasswd

Рекомендуемые клиенты:

  • Windows: TigerVNC Viewer, RealVNC Viewer, TightVNC
  • Linux: Remmina, Vinagre, xtigervncviewer
  • Mac: Chicken of the VNC, RealVNC Viewer

Пример подключения через TigerVNC Viewer:

xtigervncviewer <IP_адрес>:1

Устранение неполадок

  1. Не удаётся подключиться:

    • Проверьте, что сервер запущен: sudo systemctl status vncserver@1
    • Проверьте открытые порты: ss -tulnp | grep vnc
    • Проверьте журналы: journalctl -u vncserver@1 -f
  2. Чёрный экран при подключении:

    • Убедитесь, что файл ~/.vnc/xstartup существует и исполняем
    • Установите графическую оболочку (например, GNOME): sudo apt install ubuntu-desktop
  3. Сервер не слушает на внешних интерфейсах:

    • Убедитесь, что используется параметр -localhost no
    • Проверьте настройки брандмауэра: sudo ufw status

Теперь у вас должен быть полностью настроенный VNC-сервер на Ubuntu 22.04, доступный для подключения из локальной сети или интернета.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment