<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.webko.net.ua/index.php?action=history&amp;feed=atom&amp;title=VNC_%28SSH%29</id>
	<title>VNC (SSH) - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.webko.net.ua/index.php?action=history&amp;feed=atom&amp;title=VNC_%28SSH%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.webko.net.ua/index.php?title=VNC_(SSH)&amp;action=history"/>
	<updated>2026-06-20T20:00:57Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.webko.net.ua/index.php?title=VNC_(SSH)&amp;diff=352&amp;oldid=prev</id>
		<title>Sol: Новая страница: «Категория:Linux Файл:Vnc.png  '''Вводная:''' на руках имеется чистый Debian 8 и жгучее желание по…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.webko.net.ua/index.php?title=VNC_(SSH)&amp;diff=352&amp;oldid=prev"/>
		<updated>2016-01-17T18:40:37Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Linux&quot; title=&quot;Категория:Linux&quot;&gt;Категория:Linux&lt;/a&gt; &lt;a href=&quot;/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Vnc.png&quot; title=&quot;Файл:Vnc.png&quot;&gt;Файл:Vnc.png&lt;/a&gt;  &amp;#039;&amp;#039;&amp;#039;Вводная:&amp;#039;&amp;#039;&amp;#039; на руках имеется чистый Debian 8 и жгучее желание по…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Категория:Linux]]&lt;br /&gt;
[[Файл:Vnc.png]]&lt;br /&gt;
&lt;br /&gt;
'''Вводная:''' на руках имеется чистый Debian 8 и жгучее желание получить на выходе защищенный vnc-доступ к серверу.&lt;br /&gt;
&lt;br /&gt;
== Приступим ==&lt;br /&gt;
&lt;br /&gt;
Обновим список доступных пакетов.&lt;br /&gt;
 # apt-get update&lt;br /&gt;
&lt;br /&gt;
Если система свежеустановленная — стоит обновиться.&lt;br /&gt;
 # apt-get -y upgrade&lt;br /&gt;
&lt;br /&gt;
(!)Бездумно запускать данную команду не на свежеустановленном сервере не стоит, чревато сломанными зависимостями и перспективой работы напильником.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install xfce4 xfce4-goodies tightvncserver&lt;br /&gt;
&lt;br /&gt;
Создаем пользователя от которого будем запускать vnc сервер. &lt;br /&gt;
 # adduser vnc&lt;br /&gt;
&lt;br /&gt;
Устанавливаем sudo (в Debian данный пакет не установлен по умолчанию).&lt;br /&gt;
 # apt-get install sudo&lt;br /&gt;
&lt;br /&gt;
Добавляем пользователя vnc в группу sudo.&lt;br /&gt;
 # gpasswd -a vnc sudo&lt;br /&gt;
&lt;br /&gt;
Переходим под пользователя vnc.&lt;br /&gt;
 # su - vnc&lt;br /&gt;
&lt;br /&gt;
Запускаем vnc сервер. &lt;br /&gt;
 $ vncserver&lt;br /&gt;
&lt;br /&gt;
Если это первый запуск vnc сервера, будет создан конфиг файл и запрошены некоторые параметры:&lt;br /&gt;
 $ vncserver &lt;br /&gt;
&lt;br /&gt;
 You will require a password to access your desktops.&lt;br /&gt;
 &lt;br /&gt;
 Password: &lt;br /&gt;
 Verify:   &lt;br /&gt;
 Would you like to enter a view-only password (y/n)? n&lt;br /&gt;
 xauth:  file /home/vnc/.Xauthority does not exist&lt;br /&gt;
 &lt;br /&gt;
 New 'X' desktop is my.server:1&lt;br /&gt;
 &lt;br /&gt;
 Creating default startup script /home/vnc/.vnc/xstartup&lt;br /&gt;
 &lt;br /&gt;
 Starting applications specified in /home/vnc/.vnc/xstartup&lt;br /&gt;
&lt;br /&gt;
 Log file is /home/vnc/.vnc/my.server:1.log&lt;br /&gt;
&lt;br /&gt;
по умолчанию порт vnc сервера будет 5901, порт каждого следующего дисплея будет увеличиваться на 1 (5902,5903,...). &lt;br /&gt;
&lt;br /&gt;
Проверить запущен ли VNC сервер и на каком порту слушает можно следующей командой.&lt;br /&gt;
 $ netstat -nltp&lt;br /&gt;
&lt;br /&gt;
 Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name&lt;br /&gt;
 tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      1054/Xtightvnc &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Убить конкретный дисплей можно так:&lt;br /&gt;
 $ vncserver -kill :1&lt;br /&gt;
 Killing Xtightvnc process ID 3246&lt;br /&gt;
&lt;br /&gt;
:1 — какой дисплей нужно убить.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создание скрипта автостарта vnc сервера. ==&lt;br /&gt;
&lt;br /&gt;
Сначала убьем запущенный дисплей :1 (если он запущен).&lt;br /&gt;
 $ vncserver -kill :1  &lt;br /&gt;
&lt;br /&gt;
создаем скрипт запуска&lt;br /&gt;
 $ sudo nano /usr/local/bin/myvnc&lt;br /&gt;
&lt;br /&gt;
Добавляем следующие строки в файл:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 PATH=&amp;quot;$PATH:/usr/bin/&amp;quot;&lt;br /&gt;
 DISPLAY=&amp;quot;1&amp;quot;&lt;br /&gt;
 DEPTH=&amp;quot;16&amp;quot;&lt;br /&gt;
 GEOMETRY=&amp;quot;1024x768&amp;quot;&lt;br /&gt;
 OPTIONS=&amp;quot;-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 start)&lt;br /&gt;
 /usr/bin/vncserver ${OPTIONS}&lt;br /&gt;
 ;;&lt;br /&gt;
 &lt;br /&gt;
 stop)&lt;br /&gt;
 /usr/bin/vncserver -kill :${DISPLAY}&lt;br /&gt;
 ;;&lt;br /&gt;
 &lt;br /&gt;
 restart)&lt;br /&gt;
 $0 stop&lt;br /&gt;
 $0 start&lt;br /&gt;
 ;;&lt;br /&gt;
 esac&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
если требуется — в скрипте можно изменить глубину цвета или разрешение экрана.&lt;br /&gt;
&lt;br /&gt;
Делаем файл исполняемым.&lt;br /&gt;
 $ sudo chmod +x /usr/local/bin/myvnc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Использование созданного нами скрипта ==&lt;br /&gt;
&lt;br /&gt;
 $ myvnc start             ###запустить vnc сервер&lt;br /&gt;
 $ myvnc stop             ###остановить vnc сервер&lt;br /&gt;
 $ myvnc restart         ###перезапустить vnc сервер&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь нужно позаботиться о том, чтобы настроенный нами vnc стартовал после загрузки сервера (запланированной и не очень).&lt;br /&gt;
Для этого создаем файл по следующему пути.&lt;br /&gt;
 $ sudo nano /lib/systemd/system/myvnc.service&lt;br /&gt;
&lt;br /&gt;
Добавляем следующий текст в файл:&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=MyVnc&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 ExecStart=/usr/local/bin/myvnc start&lt;br /&gt;
 ExecStop=/usr/local/bin/myvnc stop&lt;br /&gt;
 ExecReload=/usr/local/bin/myvnc restart&lt;br /&gt;
 User=vnc&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
''Пояснение''&lt;br /&gt;
[Unit] — указываем описание скрипта (так же можно указать требуемые зависимости и порядок запуска при загрузке).&lt;br /&gt;
&lt;br /&gt;
[Service] — указываем какими командами запускать сервис, под каким пользователем, и тип сервиса.&lt;br /&gt;
&lt;br /&gt;
[Install] — указываем на каком уровне должен запускаться скрипт (runlevel 3 — многопользовательский режим без графики).&lt;br /&gt;
&lt;br /&gt;
Включаем юнит в автозагрузку при старте системы.&lt;br /&gt;
 $ sudo systemctl enable myvnc.service&lt;br /&gt;
 Created symlink from /etc/systemd/system/multi-user.target.wants/myvnc.service to /lib/systemd/system/myvnc.service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотрим статус созданного нами юнита.&lt;br /&gt;
 $ sudo systemctl -l status myvnc.service&lt;br /&gt;
 ? myvnc.service - MyVnc&lt;br /&gt;
    Loaded: loaded (/lib/systemd/system/myvnc.service; enabled)&lt;br /&gt;
    Active: inactive (dead)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Дергаем systemd для поиска новых или измененных юнитов.&lt;br /&gt;
 $ sudo systemctl daemon-reload&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Шифрование трафика ==&lt;br /&gt;
&lt;br /&gt;
Голый VNC не шифрует трафик, и оставлять его в таком виде не стоит.&lt;br /&gt;
Кроме того, если на Ваш IP выйдут боты из Китая и начнут стучатся по портам, даже если пароль установлен действительно качественный (учтите, что пароль на vnc сессию ограничен 8 символами) и его не взломают, попасть на сервер посредством VNC будет затруднительно, из-за постоянной ошибки на количество неверных попыток авторизации.&lt;br /&gt;
&lt;br /&gt;
''vncpasswd''&lt;br /&gt;
 $ vncpasswd &lt;br /&gt;
 Using password file /home/vnc/.vnc/passwd&lt;br /&gt;
 Password: &lt;br /&gt;
 Warning: password truncated to the length of 8.&lt;br /&gt;
 Verify: &lt;br /&gt;
 Would you like to enter a view-only password (y/n)? n&lt;br /&gt;
&lt;br /&gt;
[[Файл:Vnc2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Пускаем VNC поверх SSH ==&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano /usr/local/bin/myvnc&lt;br /&gt;
&lt;br /&gt;
Изменяем строку:&lt;br /&gt;
 OPTIONS=&amp;quot;-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}&amp;quot;&lt;br /&gt;
на&lt;br /&gt;
 OPTIONS=&amp;quot;-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Теперь для подключения к серверу сначала нужно создать тунель.&lt;br /&gt;
&lt;br /&gt;
Под *nix:&lt;br /&gt;
 # ssh vnc@xxx.xxx.xxx.xxx -L 5901:localhost:5901&lt;br /&gt;
&lt;br /&gt;
Теперь возможно подключение посредством vnc клиента, указав вместо IP удаленного сервера localhost и порт на котором слушает vnc-server.&lt;br /&gt;
&lt;br /&gt;
 # vncviewer localhost:5901&lt;br /&gt;
&lt;br /&gt;
==При использовании Windows и putty агента==&lt;br /&gt;
&lt;br /&gt;
После запуска putty переходим Connection -&amp;gt; SSH -&amp;gt; Tunnels.&lt;br /&gt;
В поле Source Port вбиваем порт на котором слушает VNC сервер — 5901, в поле Destination вписываем — localhost:5901 и жмем кнопку Add.&lt;br /&gt;
''должно получиться как на картинке''&lt;br /&gt;
&lt;br /&gt;
[[Файл:Vnc3.png]]&lt;br /&gt;
&lt;br /&gt;
Теперь возвращаемся на вкладку Session вписываем IP сервера и порт 22 (тут же можно и сохранить конфигурацию подключения), жмем Open.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Vnc4.png]]&lt;br /&gt;
&lt;br /&gt;
[[Файл:Vnc5.png|800px]]&lt;br /&gt;
&lt;br /&gt;
К осторожности нужно приучать сразу, хоть теперь и попасть на наш сервер посредством VNC извне невозможно (для начала нужно залогиниться по ssh и создать тунель), все же стоит задуматься о дополнительной безопасности ssh подключений (помните — китайские боты не дремлют).&lt;/div&gt;</summary>
		<author><name>Sol</name></author>
	</entry>
</feed>