Сбой сервера VNC с «A VNC server is already running as :X» во время перезапуска vncserver

by itisgood

Проблема

Ошибка сервера VNC: «A VNC server is already running as :X во время перезапуска vncserver.

VNC-сервер не запускается и выдает следующую ошибку.

# service vncserver restart
Shutting down VNC server: 3:testuser 5:testuser2     [FAILED]
Starting VNC server: 3:ctmagt70
New 'test1:3 (testuser)' desktop is test1:3

Starting applications specified in /tsc/apps/testuser/.vnc/xstartup
Log file is /tsc/apps/testuser/.vnc/tscpinf001:3.log
5:testuser2 A VNC server is already running as :5    [FAILED]

Коренная причина

Эта ошибка может произойти из-за другого процесса, работающего в порту 6005, который препятствовал соединению vnc.

VNC-сервер прослушивает соединения для VNC-клиента по следующим TCP-портам.

5800+x, 5900+x, and 6000+x ( где x - это дисплей, который по умолчанию начинается с нуля)

Например:

  • VNC-сервер на дисплее 5 будет прослушивать TCP-порты 5805, 5905 и 6005
  • Дисплей 2 будет прослушивать TCP-порты 5802, 5902 и 6002
  • Дисплей 18 будет прослушивать TCP-порты 5818, 5918 и 6018

Следующее уравнение объяснит предопределенное использование каждого порта, связанного с сервером VNC.

  • 5800 + x – используется для отправки пользователю приложения vncviewer на основе java (при подключении из веб-браузера к порту 5800 + x)
  • 5900 + x – VNC клиентский порт. Сам протокол VNC работает через этот порт.
  • 6000 + x – X Серверный Порт

Вы можете проверить вывод netstat, чтобы убедиться, что зарезервированные порты vnc свободны на момент выпуска.

tcp  0  0 216.75.201.48:6005  216.75.201.48:46968  ESTABLISHED 505  217168781  26544/pmrepagent off (0.00/0/0)

Обходной путь

– Сделайте так, чтобы программа прослушивала порт 6000 + X, чтобы прослушивать другой порт.

– Временное решение: добавить параметр -nolisten в /usr/bin/vncserver, чтобы можно было отключить Xorg, который прослушивает 6000 + n, где n – номер дисплея. Пожалуйста, обратитесь к man-страницам man Xserver и man xorg за подробной информацией.

– Создайте резервную копию /usr/bin/vncserver и добавьте следующие строки в /usr/bin/vncserver после строки «$cmd =« Xvnc: $displayNumber »;»

# vi /usr/bin/vncserver
$cmd .= " -nolisten tcp";

 

You may also like

2 комментария

serge 21.02.2020 - 10:12

Какое же оно кривое…

Reply
itisgood 21.02.2020 - 11:29

VNC?

Reply

Leave a Comment