VNC-Android
Теперь настроим автоматический запуск x11vnc при старте системы.
Настройка автозапуска x11vnc
1. Убедитесь, что пароль VNC создан
bash
ls -la ~/.vnc/passwd
Если файла нет, создайте:
bash
x11vnc -storepasswd
2. Создайте службу systemd
bash
sudo nano /etc/systemd/system/x11vnc.service
3. Вставьте следующее содержимое:
ini
[Unit]
Description=x11vnc VNC Server
After=graphical.target multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -display :1 -auth /run/user/1000/gdm/Xauthority -forever -shared -rfbauth /home/alensav64/.vnc/passwd -noxdamage
Restart=on-failure
RestartSec=5
User=alensav64
Environment=DISPLAY=:1
[Install]
WantedBy=multi-user.target
Пояснения:
- -display :1 — ваш графический дисплей
- -auth /run/user/1000/gdm/Xauthority — файл авторизации
- -forever — не завершаться после отключения клиента
- -shared — разрешить несколько одновременных подключений
- -rfbauth — файл с паролем
- -noxdamage — улучшает совместимость
- Restart=on-failure — автоматически перезапускать при сбое
4. Сохраните файл
- Нажмите Ctrl+O, затем Enter
- Нажмите Ctrl+X для выхода
5. Включите и запустите службу
bash
# Перезагрузить конфигурацию systemd
sudo systemctl daemon-reload
# Включить автозапуск
sudo systemctl enable x11vnc.service
# Запустить сейчас
sudo systemctl start x11vnc.service
6. Проверьте статус
bash
sudo systemctl status x11vnc.service
Должно быть active (running).
7. Проверьте, что порт открыт
bash
sudo ss -tlnp | grep 5900
🔧 Откройте порт в брандмауэре (если еще не сделали)
bash
sudo ufw allow 5900/tcp
sudo ufw reload
📋 Управление службой
bash
# Проверить статус
sudo systemctl status x11vnc
# Остановить
sudo systemctl stop x11vnc
# Запустить
sudo systemctl start x11vnc
# Перезапустить
sudo systemctl restart x11vnc
# Отключить автозапуск
sudo systemctl disable x11vnc
# Посмотреть логи
sudo journalctl -u x11vnc -f
⚠️ Важное примечание
Путь к файлу авторизации /run/user/1000/gdm/Xauthority может меняться при:
- Перезагрузке системы
- Выходе из системы и повторном входе
Если после перезагрузки VNC не работает, выполните:
bash
# Найти актуальный путь к Xauthority
sudo find /run/user -name "Xauthority" 2>/dev/null
# Обновить путь в службе
sudo nano /etc/systemd/system/x11vnc.service
Измените строку -auth на новый путь, затем:
bash
sudo systemctl daemon-reload
sudo systemctl restart x11vnc
🎯 Альтернатива: более надежный способ с XDG_RUNTIME_DIR
Если путь к Xauthority часто меняется, можно использовать более гибкий вариант:
1. Создайте скрипт запуска
bash
nano ~/.local/bin/start-vnc.sh
2. Вставьте содержимое:
bash
#!/bin/bash
XAUTH=$(find /run/user/1000 -name "Xauthority" 2>/dev/null | head -1)
if [ -n "$XAUTH" ]; then
/usr/bin/x11vnc -display :1 -auth "$XAUTH" -forever -shared -rfbauth /home/alensav64/.vnc/passwd -noxdamage
else
/usr/bin/x11vnc -display :1 -forever -shared -rfbauth /home/alensav64/.vnc/passwd -noxdamage
fi
3. Сделайте скрипт исполняемым
bash
mkdir -p ~/.local/bin
chmod +x ~/.local/bin/start-vnc.sh
4. Обновите службу systemd
bash
sudo nano /etc/systemd/system/x11vnc.service
Замените содержимое:
ini
[Unit]
Description=x11vnc VNC Server
After=graphical.target
[Service]
Type=simple
ExecStart=/home/alensav64/.local/bin/start-vnc.sh
Restart=on-failure
RestartSec=5
User=alensav64
[Install]
WantedBy=multi-user.target
5. Перезапустите службу
bash
sudo systemctl daemon-reload
sudo systemctl restart x11vnc
sudo systemctl status x11vnc
Проверка
После настройки:
- Перезагрузите компьютер:
bash
sudo reboot
- После загрузки проверьте:
bash
sudo systemctl status x11vnc
sudo ss -tlnp | grep 5900
- Подключитесь с телефона:
- Адрес: 192.168.1.124:5900
- Пароль: ваш VNC пароль
Теперь VNC будет запускаться автоматически при каждой загрузке системы!