Vnc linux как отключить

Подключение к удаленному компьютеру по VNC

Работа с VNC-клиентом. Материал ориентирован на неопытного пользователя.

1. Установка VNC-клиента
2. Подключение VNC-клиента к удаленному компьютеру
3. Отключение VNC-клиента от удаленного компьютера
4. Тюнинг VNC-клиента
5. Частые проблемы

Для работы с удаленным компьютером по VNC на компьютере пользователя нужно запустить программу-клиент (VNC viewer, VNC client). Эта программа передает на удаленный компьютер данные о нажатиях на клавиши и о движениях мыши, сделанных пользователем, и показывает информацию, предназначенную к выводу на экран.

1. Установка VNC-клиента

Для ОС Windows можно бесплатно скачать и инсталлировать VNC-клиент UltraVNC и TightVNC.

Mac OS X начиная с версии 10.5 имеет поддержку VNC-клиента в RemoteDesktop. Для предыдущих версий можно использовать VNC-клиенты JollysFastVNC и Chicken.

Для Linux ветви Debian (Ubuntu) VNC-клиент устанавливается из репозитория командой:

apt-get install vncviewer

Для ветви RedHat (CentOS, Fedora) — командой:

yum install vnc

Для FreeBSD VNC-клиент (TightVNC) устанавливается из пакетов командой:

pkg_add -r tightvnc

2. Подключение VNC-клиента к удаленному компьютеру

Для подключения VNC-клиента к удаленному компьютеру требуется указать его IP-адрес или DNS-имя, и номер дисплея (по умолчанию, :0) или номер TCP-порта (по умолчанию, 5900). Если VNC-сервер требует авторизации, то при подключении к нему VNC-клиент запросит пароль. Обратите внимание, что пароль доступа к VNC-серверу не связан с каким-либо аккаунтом (учетной записью пользователя) на удаленном компьютере, а служит только для ограничения доступа к дисплею VNC-сервера.

После установки соединения и открытия экрана, в зависимости от настроек VNC-сервера может потребоваться авторизация пользователя на виртуальном сервере или может быть открыта уже запущенная рабочая сессия какого-либо пользователя.

Так как на компьютере одновременно могут работать несколько VNC-серверов, для их разделения используют параметр номер дисплея. Например, один VNC-сервер может быть запущен на дисплее :0, другой — на дисплее :1. Каждому номеру дисплея соответствует номер TCP-порта, на котором VNC-сервер принимает соединения. Номер порта для дисплея получается прибавлением номера дисплея к базовому номеру порта — 5900. Дисплею :0 соответствует TCP-порт 5900, дисплею :1 — порт 5901.

3. Отключение VNC-клиента от удаленного компьютера

При закрытии окна VNC-клиента или после выхода из окружения средствами рабочего стола, в зависимости от настроек VNC-сервера, рабочая сессия пользователя может закрыться с остановкой всех используемых программ, или продолжать работу и быть доступной снова при повторном подключении к VNC-серверу.

4. Тюнинг VNC-клиента

Большое количество передаваемой на экран информации влечет за собой повышенные требования к скорости канала — к его пропускной способности и времени передачи пакетов. Нахватка пропускной способности приводит к некомфортным задержкам при больших изменениях показывамой на экране информации — открытии новых окон, скроллинге и т.д. Особенно большие задержки будут возникать при показывании фотографий и других изображений или элементов интерфейса, имеющих большое количество цветов и сложные формы.

Главный параметр, который влияет на объем передаваемых данных — алгоритм кодирования передаваемой графики. Для уменьшения объема и, соответственно, ускорения работы, рекомендуется использовать алгоритмы Tight, ZLib, ZRLE — по сравнению с несжатыми данными (Raw), они обеспечивают сжатие в десятки раз, заметно нагружая процессор. Эти алгоритмы кодирования обеспечивают комфортную работу даже на каналах со скоростью 256-512 Кбит/сек.

Для сокращения объема передаваемой по сети информации также можно устанавливать высокий уровень сжатия (Compression Level, Compression Value), низкий уровень качества JPEG (JPEG Quality) и включать режим уменьшения количества цветов (-bgr233, Restricted colors). Самый большой эффект из них при заметном снижении качества изображения дает режим уменьшения количества цветов — объем передаваемой информации уменьшается в 1.5-3 раза, соответственно, в 1.5-3 раза ускоряется отображение на экране.

JPEG применяется алгоритмом кодирования Tight для сжатия участков экрана, содержащих фотографии и другие сложные изображения с большим числом цветов. Использование Tight+JPEG сокращает в 2-5 раз объем передаваемых при этом данных. Другие алгоритмы кодирования JPEG не поддерживают.


1. Выпадающего меню «Система -> Параметры»

Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек при открытии выпадающего меню «Система -> Параметры» (на рисунке меню выделено зеленым пунктиром):

Читайте также:  Нет ввода ключа при установке windows 10
Полноцветный режим 256 цветов (BGR233)
Объем Время Объем Время
ZLib 11 Кб 0.09 сек 7 Кб 0.06 сек
HexTile 208 Кб 1.6 сек 118 Кб 0.95 сек
Raw 248 Кб 2 сек 128 Кб 1 сек
5. Частые проблемы
Не удается подключиться к VNC-серверу
Медленная работа через достаточно быстрый канал

Если VNC-клиент не может согласовать с VNC-сервером использование алгоритм кодирования графики с компрессией данных, выбирается алгоритм по умолчанию — Raw, который передает данные без сжатия. Также кодирование без сжатия или с низким уровнем сжатия может автоматически выбираться VNC-клиентом при работе через быструю локальную сеть. Данную проблему можно исправить, принудительно указав в настройках VNC-клиента алгоритм кодирования с высоким уровнем сжатия — ZLib, ZRLE, Tight.

Однако, для некоторых сочетаний клиента и сервера такое решение может быть бесполезным из-за ошибок в согласовании алгоритма кодирования. Например, клиент TightVNC с сервером RealVNC часто могут работать только с кодировкой Raw. Решением в этом случае будет смена VNC-клиента или VNC-сервера.

Источник

Каков правильный способ убить vncsession в Linux?

Когда я запускаю следующую команду в удаленном поле linux , с которым я подключаюсь, из моего windows 7 ноутбук через VNC Я получаю следующее:

Как я могу убить этот сеанс элегантно? Я знаю, что kill -9

будет делать это, но я думаю, что это сильное чистое и может привести к повреждению файлов.

PS: Я также прочитал из этого источника , чтобы использовать параметр kill из vncserver, но не уверен, как вычислить отображение #.

2 ответа

Как вы заметили, из man vncserver :

Номер дисплея подключается к номеру порта дисплея, если он не установлен вручную (и по-разному), где

например. порт 5901 → дисплей: 1. Эту информацию можно найти в man Xvnc ( vncserver — это просто сценарий оболочки, который вызывает этот инструмент), где он говорит:

Если вы не знаете номер наизусть (но вам нужно знать его, если вы собираетесь подключиться к серверу в любом случае), вы можете проверить, например. ps ax | grep vnc для информации. Если я делаю это локально, я вижу процессы

и, следовательно, я знаю, что они представляют серверы VNC с номерами дисплеев :1 и :2 соответственно и может быть убит

В вашем случае вы видите, что номер дисплея :1 для сервера, указанного в вашем ps .

Я попробовал ответить выше, и это не сработало для меня. Он дал мне сообщение об ошибке, как в этом вопросе: Утилизация процесса VNC вручную

Поэтому мне пришлось убивать их вручную. Я попытался убить -9, а потом больше не могу войти в rdp. Когда я пытался войти в систему, я получил xrdp_mm_process_login_response: login failed .

В принципе, файл сеанса не очищается, когда сервер Xvnc убит. Файл назван для отображения, поэтому, если вы на дисплее: 12, это /tmp/.X11-unix/X12 . Удалите этот файл после kill -9 , и вы вернулись в бизнес.

Источник

VNC CentOS

Введение

Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).

Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.

Система VNC платформонезависима: VNC-клиент, называемый VNC viewer, запущенный на одной операционной системе, может подключаться к VNC-серверу, работающему на любой другой ОС.

Существуют реализации клиентской и серверной части практически для всех операционных систем, в том числе и для Java (включая мобильную платформу J2ME).

К одному VNC-серверу одновременно могут подключаться множественные клиенты.

Наиболее популярные способы использования VNC — удалённая техническая поддержка и доступ к рабочему компьютеру из дома.

Установка tigervnc-server

sudo yum install tigervnc-server

Залогиньтесь под пользователем, которому вы хотите дать доступ по vnc

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used

view-only password это пароль для доступа только с правами на просмотр. Действия мыши и клавиатуры во время такого доступа ограничены.

sudo vi /lib/systemd/system/vncserver@.service

# The vncserver service unit file # # Quick HowTo: # 1. Copy this file to /etc/systemd/system/vncserver@.service # 2. Replace with the actual user name and edit vncserver # parameters in the wrapper script located in /usr/bin/vncserver_wrapper # 3. Run `systemctl daemon-reload` # 4. Run `systemctl enable vncserver@: .service` # # DO NOT RUN THIS SERVICE if your local area network is # untrusted! For a secure way of using VNC, you should # limit connections to the local host and then tunnel from # the machine you want to view VNC on (host A) to the machine # whose VNC output you want to view (host B) # # [user@hostA

Читайте также:  Подготовка windows не выключайте компьютер при включении

]$ ssh -v -C -L 590N:localhost:590M hostB # # this will open a connection on port 590N of your hostA to hostB’s port 590M # (in fact, it ssh-connects to hostB and then connects to localhost (on hostB). # See the ssh man page for details on port forwarding) # # You can then point a VNC client on hostA at vncdisplay N of localhost and with # the help of ssh, you end up seeing what hostB makes available on port 590M # # Use «-nolisten tcp» to prevent X connections to your VNC server via TCP. # # Use «-localhost» to prevent remote VNC clients connecting except when # doing so through a secure tunnel. See the «-via» option in the # `man vncviewer’ manual page. [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=simple # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’ ExecStart=/usr/bin/vncserver_wrapper %i ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’ [Install] WantedBy=multi-user.target

Выполните первый и второй шаги из Quick HowTo

sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@: 1 .service

Обратите внимание на 1 — таким образом указывается номер дисплея для данной версии сервера. Можно было выбрать другое число, главное запомнить этот выбор.

sudo vi /etc/systemd/system/vncserver@\: 1 .service

Замените на имя вашего пользователя. (моего зовут andrei)

Можно вручную через vi а можно с помощью sed

sudo sed -i ‘s / wrapper\ / wrapper\ andrei / ‘ /etc/systemd/system/vncserver@\: 1 .service

Если вашего пользователя зовут vncuser команда будет выглядеть так:

sudo sed -i ‘s / wrapper\ / wrapper\ vncuser / ‘ /etc/systemd/system/vncserver@\: 1 .service

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

Чтобы VNC sever запускался при загрузке системы выполните

systemctl enable vncserver@:1

Запустить VNC sever вручную

sudo systemctl daemon-reload
sudo systemctl start vncserver@:1

Проверить статус VNC сервера

systemctl status vncserver@:1

● vncserver@:1.service — Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2021-03-16 13:49:55 EET; 3min 56s ago Process: 23138 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 23145 (vncserver_wrapp) CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service ├─23145 /bin/sh /usr/bin/vncserver_wrapper andrei :1 └─24097 /bin/sh /usr/bin/vncserver_wrapper andrei :1 Oct 10 16:48:51 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC). Oct 10 16:48:51 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[23145]: New ‘localhost.localdomain:1 (andrei)’ desktop is localhost.localdomain:1 Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[23145]: Creating default startup script /home/andrei/.vnc/xstartup Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[23145]: Creating default config /home/andrei/.vnc/config Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[23145]: Starting applications specified in /home/andrei/.vnc/xstartup Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[23145]: Log file is /home/andrei/.vnc/localhost.localdomain:1.log

Проверить, что vnc server слушает на порту 5901 можно командой

ss -tulpn| grep vnc

tcp LISTEN 0 5 *:5901 *:* users:((«X vnc «,pid=1330,fd=9)) tcp LISTEN 0 128 *:6001 *:* users:((«X vnc «,pid=1330,fd=6)) tcp LISTEN 0 5 [::]:5901 [::]:* users:((«X vnc «,pid=1330,fd=10)) tcp LISTEN 0 128 [::]:6001 [::]:* users:((«X vnc «,pid=1330,fd=5))

Открыть порт в Firewall

Теперь порт 5901 нужно открыть в firewall

sudo firewall-cmd —add-port=5901/tcp —permanent
sudo firewall-cmd —reload
sudo firewall-cmd —list-ports

Как вы можете убедиться — порт 5901 успешно добавлен в список открытых

Если вам вдруг стало интересно — что за порт 19999 — его использует Locust

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

Теперь можно установить VNC клиент, например, Remmina

sudo yum install remmina

И зайти на VNC сервер введя нужный IP адрес и порт :5901

Подключение к Centos по VNC через Remmina

Введите пароль пользователя для которого вы создали vncpasswd

Подключение к Centos по VNC через Remmina

Подключение к Centos по VNC через Remmina

Остановить VNC сервер

systemctl stop vncserver@:1

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: andrei Password: ==== AUTHENTICATION COMPLETE ===

Читайте также:  Предварительный просмотр накопительного обновления для windows 10 version 1909

Изменить порт и дисплей

Если скопировать существующий файл /etc/systemd/system/vncserver@: 1 .service

cp /etc/systemd/system/vncserver@: 1 .service /etc/systemd/system/vncserver@: 0 .service
systemctl daemon-reload

==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon === Authentication is required to reload the systemd state. Authenticating as: andrei Password: ==== AUTHENTICATION COMPLETE === [andrei@localhost system]$ systemctl start vncserver@:0 ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: andrei Password: ==== AUTHENTICATION COMPLETE === [andrei@localhost system]$ systemctl status vncserver@:0 ● vncserver@:0.service — Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:0.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2021-10-10 16:55:56 EET; 11s ago Process: 8426 ExecStart=/usr/bin/vncserver_wrapper andrei %i (code=exited, status=2) Process: 8424 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 8426 (code=exited, status=2) Oct 10 16:48:51 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC). Oct 10 16:48:51 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[8426]: Warning: localhost.localdomain:0 is taken because of /tmp/.X0-lock Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[8426]: Remove this file if there is no X server localhost.localdomain:0 Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[8426]: A VNC server is already running as :0 Oct 10 16:48:51 localhost.localdomain systemd[1]: vncserver@:0.service: main process exited, code=exited, status=2/INVALIDARGUMENT Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[8426]: FATAL: ‘runuser -l andrei’ failed! Oct 10 16:48:51 localhost.localdomain systemd[1]: Unit vncserver@:0.service entered failed state. Oct 10 16:48:51 localhost.localdomain systemd[1]: vncserver@:0.service failed.

Обратите внимание на предупреждение Warning: localhost.localdomain:0 is taken because of /tmp/.X0-lock

Файл .X0-lock нужно удалить

rm /tmp/.X0-lock
systemctl start vncserver@:0
systemctl status vncserver@:0

● vncserver@:0.service — Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:0.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2021-10-10 00:01:00 EET; 13s ago Process: 9358 ExecStart=/usr/bin/vncserver_wrapper andrei %i (code=exited, status=2) Process: 9356 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 9358 (code=exited, status=2) Oct 10 16:48:51 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC). Oct 10 16:48:51 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[9358]: Warning: localhost.localdomain:0 is taken because of /tmp/.X11-unix/X0 Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[9358]: Remove this file if there is no X server localhost.localdomain:0 Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[9358]: A VNC server is already running as :0 Oct 10 16:48:51 localhost.localdomain systemd[1]: vncserver@:0.service: main process exited, code=exited, status=2/INVALIDARGUMENT Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[9358]: FATAL: ‘runuser -l andrei’ failed! Oct 10 16:48:51 localhost.localdomain systemd[1]: Unit vncserver@:0.service entered failed state. Oct 10 16:48:51 localhost.localdomain systemd[1]: vncserver@:0.service failed.

Теперь нужно удалить файл .X11-unix/X0k нужно удалить

rm /tmp/.X11-unix/X0k
systemctl daemon-reload
systemctl start vncserver@:0
systemctl status vncserver@:0

● vncserver@:0.service — Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:0.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-10-10 17:16:39 EET; 4s ago Process: 9513 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 9516 (vncserver_wrapp) CGroup: /system.slice/system-vncserver.slice/vncserver@:0.service └─9516 /bin/sh /usr/bin/vncserver_wrapper andrei :0 Oct 10 16:48:51 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC). Oct 10 16:48:51 localhost.localdomain systemd[1]: Started Remote desktop service (VNC). Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[9516]: WARNING: The first attempt to start Xvnc failed, possibly because the font Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[9516]: catalog is not properly configured. Attempting to determine an appropriate Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[9516]: font path for this system and restart Xvnc using that font path .

Дисплей 0

Если вы пытаетесь запустить сервер на дисплее 0 и получаете ошибку

● vncserver@:0.service — Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:0.service; enabled; vendor preset: Active: failed (Result: exit-code) since Thu 2021-03-18 15:50:32 EET; 2min 8s ago Process: 4260 ExecStart=/usr/bin/vncserver_wrapper andrei %i (code=exited, status= Process: 4255 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 Main PID: 4260 (code=exited, status=2) Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[4260]: (EE) Cannot establish Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[4260]: _XSERVTransSocketUNIX Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[4260]: _XSERVTransMakeAllCOT Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[4260]: (EE) Oct 10 16:48:51 localhost.localdomain vncserver_wrapper[4260]: Fatal server error:

Убедитесь, что у вас не запущена X Window System обычно она занимает дисплей 0.

Источник

Оцените статью