По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Virtual Network Computing (VNC) - это графическая система общего доступа к рабочему столу, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером. В этой статье описываются шаги по установке и настройке VNC-сервера в CentOS 8. Мы также покажем, как безопасно подключаться к VNC-серверу через туннель SSH. Подготовка Чтобы следовать этому руководству, вам необходимо войти в систему как пользователь с привилегиями sudo на удаленном компьютере CentOS. Установка окружения рабочего стола Как правило, на серверах не установлена среда рабочего стола. Если машина, к которой вы хотите подключиться, не имеет графического интерфейса, сначала установите ее. В противном случае пропустите этот шаг. Выполните следующую команду, чтобы установить Gnome, среду рабочего стола по умолчанию в CentOS 8 на удаленной машине: sudo dnf groupinstall "Server with GUI" В зависимости от вашей системы загрузка и установка пакетов и зависимостей Gnome может занять некоторое время. Установка VNC-сервера В качестве сервера мы будем использовать TigerVNC - активно поддерживаемый высокопроизводительный VNC-сервер с открытым исходным кодом. Он доступен в репозиториях CentOS по умолчанию, для его установки введите: sudo dnf install tigervnc-server После установки VNC-сервера выполните команду vncserver, чтобы создать начальную конфигурацию и установить пароль. Не используйте sudo при выполнении следующей команды: vncserver Вам будет предложено ввести и подтвердить пароль и указать, следует ли устанавливать его в качестве пароля только для просмотра (view-only). Если вы решите установить пароль только для просмотра, пользователь не сможет взаимодействовать с экземпляром VNC с помощью мыши и клавиатуры. You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n /usr/bin/xauth: file /home/linuxize/.Xauthority does not exist New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com Starting applications specified in /etc/X11/Xvnc-session Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log При первом запуске команды vncserver она создаст и сохранит файл паролей в каталоге ~/.vnc, который будет создан, если его не будет. Обратите внимание, что : 1 после имени хоста в выводе выше. Это указывает номер порта дисплея, на котором работает сервер VNC. В нашем случае сервер работает по TCP-порту 5901 (5900 + 1) . Если вы создадите второй экземпляр, он будет работать на следующем свободном порту, то есть : 2, что означает, что сервер работает на порту 5902 (5900 + 2) . Важно помнить, что при работе с серверами VNC: X - это порт дисплея, который относится к 5900 + X. Прежде чем перейти к следующему шагу, сначала остановите экземпляр VNC, используя команду vncserver с параметром -kill и номером сервера в качестве аргумента. В нашем случае сервер работает в порту 5901 (: 1), поэтому, чтобы остановить его, запустите: vncserver -kill :1 Мы получим такой вывод: Killing Xvnc process ID 19681 Настройка VNC-сервера Теперь, когда и Gnome, и TigerVNC установлены на удаленной машине CentOS, следующим шагом является настройка TigerVNC для использования Gnome. Сервер VNC использует файл ~/.vnc/xstartup для запуска приложений при создании нового рабочего стола. Откройте файл: vim ~/.vnc/xstartup И отредактируйте его следующим образом: #!/bin/sh [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources vncconfig -iconic & dbus-launch --exit-with-session gnome-session & Сохраните и закройте файл (напоминаем, что в vim для этого нужно ввести :wq). Приведенный выше скрипт автоматически выполняется при каждом запуске или перезапуске сервера TigerVNC. Если вы хотите передать дополнительные параметры серверу VNC, откройте файл ~/.vnc/config и добавьте один параметр в каждой строке. Наиболее распространенные параметры перечислены в файле. Раскомментируйте и измените по своему вкусу. Вот пример: # securitytypes=vncauth,tlsvnc # desktop=sandbox geometry=1920x1080 # localhost # alwaysshared Создание файла модуля Systemd Файлы модулей позволяют легко запускать, останавливать и перезапускать службы. Как правило, лучшим местом для хранения файлов пользовательских модулей является ~/.config/systemd/user. Создайте каталог при помощи команды mkdir: mkdir -p ~/.config/systemd/user Скопируйте дефолтный файл модуля vncserver: cp /usr/lib/systemd/user/vncserver@.service ~/.config/systemd/user/ Сообщите systemd, что существует новый файл пользовательского модуля: systemctl --user daemon-reload Запустите службу VNC и включите ее при загрузке: systemctl --user enable vncserver@:1.service --now Число 1 после @: определяет порт дисплея, который будет прослушивать служба VNC. Мы используем 1, что означает, что VNC-сервер будет прослушивать порт 5901, как мы обсуждали ранее. Включите задержку, чтобы служба пользователя запускалась при загрузке и продолжала работать, когда пользователь не в системе: loginctl enable-linger Убедитесь, что служба успешно запущена: systemctl --user status vncserver@:1.service Получим такой вывод: ? vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/home/linuxize/.config/systemd/user/vncserver@.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-01-30 22:14:08 UTC; 2s ago Process: 20813 ExecStart=/usr/bin/vncserver :1 (code=exited, status=0/SUCCESS) Process: 20807 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) CGroup: /user.slice/user-1000.slice/user@1000.service/vncserver.slice/vncserver@:1.service ... Подключение к серверу VNC VNC не является зашифрованным протоколом и может подвергаться перехвату пакетов. Рекомендуемый подход заключается в создании туннеля SSH для безопасной пересылки трафика с локального компьютера через порт 5901 на удаленный сервер с тем же портом. Настройка SSH-туннелирования в Linux и macOS Если вы используете Linux, macOS или любую другую операционную систему на основе Unix на своем компьютере, вы можете легко создать туннель с помощью следующей команды ssh: ssh -L 5901:127.0.0.1:5901 -N -f -l username remote_server_ip Вам будет предложено ввести пароль пользователя. Замените username и remote_server_ip своим именем пользователя и IP-адресом вашего сервера. Настройка SSH-туннелирования в Windows Пользователи Windows могут настроить SSH-туннелирование с помощью PuTTY. Откройте Putty и введите IP-адрес вашего сервера в поле Host name or IP address. В меню «Connection» разверните пункт «SSH» и выберите «Tunnels» . Введите порт VNC-сервера 5901 в поле Source Port, введите адрес_сервера: 5901 в поле Destination и нажмите кнопку Add. Вернитесь на страницу ”Session”, чтобы сохранить настройки, чтобы вам не приходилось каждый раз вводить их. Чтобы войти на удаленный сервер, выберите сохраненный сеанс и нажмите кнопку «Open» . Подключение с помощью Vncviewer Чтобы подключиться к удаленному Серверу, откройте программу просмотра VNC и введите localhost: 5901. Вы можете использовать любую программу просмотра VNC, такую как TigerVNC, TightVNC, RealVNC, UltraVNC Vinagre и VNC Viewer для Google Chrome. Мы будем использовать TigerVNC: При появлении запроса введите пароль, и вы увидите рабочий стол Gnome по умолчанию. Это должно выглядеть примерно так: Готово! Теперь вы можете начать работу на удаленном рабочем столе с локального компьютера, используя клавиатуру и мышь. Итоги Мы показали вам, как настроить VNC-сервер и подключиться к удаленной машине CentOS 8. Чтобы запустить отображение для более чем одного пользователя, повторите те же шаги. Создайте исходную конфигурацию, установите пароль с помощью команды vncserver и создайте новый файл службы, используя другой порт.
img
Сейчас вы точно прочувствуете важное команды screen. Бывало ли у вас такое, что вы выполняете (очень долго) команду в консоли - CLI на удаленной машине, будучи подключенным через SSH? Команда долго выполняется и близится к завершению как вдруг пропадает подключение, рвется SSH подключение и все, что вы делали - пропало? Прости, что напомнили. Знаем, это болезненно. Что же, вытрем слезы. Для этих ситуаций есть команда screen о которой мы и поговорим. Немножко теории Так называемый screen это терминальный мультиплексор (нас тоже пугает это слово). Другими словами, оно дает нам возможность внутри действующей сессии открыть сколько угодно много виртуальных окон/терминалов. Что важно - процесс, запущенный внутри сессии через screen, будет продолжаться даже тогда, когда вы отключитесь от самой первой сессии. Установка screen в Linux Вообще, пакет screen предустановлен на большинстве современных Linux - дистров. Проверить можно командой: screen --version Screen version 4.00.03 (FAU) 23-Oct-06 Если случилось так, что у вас его нет - это можно быстро исправить простой установкой. Установка screen в Ubuntu и Debian apt install screen Установка screen в CentOS и Fedora yum install screen Запуск screen в Linux Чтобы запустить screen в консоли, просто наберите screen. Что может быть проще, не правда ли? screen У вас откроется новая сессия в новом окне. Уже здесь вы можете вводить все нужные shell команды. Находясь в режиме скрина (screen) вы можете посмотреть список доступных вам команд управления этим режимом. Вот так: Ctrl+a и ? Если не получается нажать указанную выше комбинацию, можно поступить проще: нажмите отдельно Ctrl+a, отпустите, а затем в консоль наберите ? и нажмите Enter Сессия screen с именем Ну очень удобная фича. Если вы делаете несколько процессов параллельно, просто обзовите их так, чтобы потом понять, что и где выполняется. Синтаксис такой: screen -S имя_сессия_скрин Например, вы можете запустить ping - замер хоста с 1С и назвать сессию так: screen -S pings_towards_1C Всегда используйте скрин именно так. Будет значительно удобнее. Как правильно работать с окнами в Windows Как мы уже сказали, когда вы создаете новую screen - сессию, вы создадите новое окно с shell оболочкой внутри. И что интересно - внутри скрин сессии вы можете создать множество дополнительных окон. Чтобы это сделать, воспользуйтесь командой (внутри скрина) Ctrl+a и c. Новому окну будет назначен номер от 0 до 9 (первый свободный). Ниже мы собрали все команды, которые понадобятся вам для управления скринами: Ctrl+a и c - создать дополнительное окно ; Ctrl+a и " - показать список всех имеющихся окон; Ctrl+a и 0 - переключиться на окно с номером 0 (номер может быть иной); Ctrl+a и A - переименовать текущее окно; Ctrl+a и S - разделить окно по горизонтали на две области; Ctrl+a и | - разделить окно по вертикали на две области; Ctrl+a и tab - переключить рабочий фокус на следующую область разделенного окна; Ctrl+a и Ctrl+a - переключить рабочий фокус на предыдущую область разделенного окна; Ctrl+a и Q - закрыть все разделенные области кроме; Ctrl+a и X - закрыть текущую область; Выход из screen сессии Вы можете легко выйти из screen - сессии набрав: Ctrl+a и d Самое важное: запущенная вами в этот момент команда не остановится и будет продолжать свое выполнение. Возврат к screen сессии Чтобы вернуть к screen - сессии используйте команду: screen -r Если у вас запущено больше чем одна screen - сессия, то после ключа r нужно указать ее ID. Узнать его просто с помощью команды: screen -ls Вывод этой команды будет выглядеть вот так: screen -ls There are screens on: 32328.pings_towards_1C (Detached) 32482.wiki.merionet.ru_is_one_love (Detached) 2 Sockets in /var/run/screen/S-root. В выводе выше мы выделили ID - сессий. Например, чтобы вернуться к сессии 32328 (pings_towards_1C), дайте команду: screen -r 32328 Немножко кастомизации screen под вас Когда screen запускается, он считывает свои конфигурационные параметры из /etc/screenrc и ~/.screenrc, если файл присутствует. Так вот - мы можем легко перенастроить предпочтения использования screen и сделать это в файле .screenrc. Посмотрите пример с комментариями, как мы закастомили screen для себя: # Выключаем приветствие startup_message off # включаем визуальный звонок vbell off # буфер для сохраненных строк делаем 10000 defscrollback 10000 # кастомим строку состояния hardstatus alwayslastline hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]' Типовой сценарий использования screen Общий случай, так сказать. Обычно он состоит из следующих шагов: После SSH подключения к серверу, набираем screen; Запускаем интересующую нас команду в режиме screen - сессии; Выполняем команду Ctrl + a и d, чтобы выйти из режима работы с экран-сессией Через какое-то время возвращаемся к запущенному ранее экрану командой screen -r Выводы Мы разобрались, как создавать screen сессии, управлять ими внутри, открывая новые окна, выходить из их режима управления (без прекращения выполнения команды), делить горизонтально и вертикально экраны. Ах да, ещё мы научились кастомизировать screen под себя. Профит!
img
В наши дни смартфоны оснащены намного мощной начинкой, чем нужно для запуска легковесного SSH клиента для подключения к VPS (виртуальный частный сервер) и решить какую-то критическую проблему, если под рукой нет ноутбука и Wi-Fi. SSH клиенты для смартфонов На самом деле, все мобильные SSH-клиенты позволяют делать то же самое: подключиться по SSH к серверу. Друг от друга они отличаются тем, насколько удобны они в использовании на мобильном устройстве. Ведь клавиатура на мобильном устройстве имеет свои особенности, основное её предназначение переписка и набор коротких сообщений, а не кодирование. Даже набирать - и / стандартной iOS-клавиатуре довольно сложно, так как требуется нажать три кнопки. Хорошие мобильные SSH-клиенты упрощают этот процесс. Например, Termius - очень популярный бесплатный SSH-клиент для iOS и Android. Интерфейс самого терминала предоставляет обычную клавиатуру, а над ней расположены элементы управления, которые не часто используются на обычной мобильной клавиатуре. Например, для часто используемой клавиши-модификатор Ctrl у Termius есть отдельная кнопка рядом с Esc. Так же в командной строке часто используются тире и косые черты /, поэтому под них также выделены отдельные клавиши, что сильно упрощает процесс набора. Вне терминала тоже интерфейс очень функциональный: удобное создание новых SSH ключей, а также есть опция передачи ключей на Macbook, для последующего добавления в список authorized_keys на сервере. Termius доступен бесплатно для платформ iOS и Android, но такие функции как вкладки, переброс агента SSH, SFTP подключение доступно только Pro версии, подписка на которую стоит $8 в месяц. Prompt - это премиум-клиент для iOS, который сочетает в себе множество полезных функций. Он имеет тот же дизайн панели быстрого доступа, что и Termius, но может меняться в зависимости от приложения. Это приложение также поддерживает сохранение часто используемых команд как шорт-каты, что освобождает от постоянного ввода одних и тех же команд. Оно стоит 15 долларов, но это разовая цена и включает все премиум функции. Mosh Mosh является альтернативой SSH и построен специально для мобильных пользователей, так как использует UDP. Традиционное SSH ожидает ответа сервера перед тем, как отображать введенные символы, что сильно раздражает при подключениях с большим временем задержки. В то время как 4G имеет хорошую среднее время отклика - 50 мс, то при соединении по 3G, задержка может вырасти до более чем 300 мс. Mosh помогает обходить это ограничение, и значительно уменьшает время отклика: Кроме этого, Mosh не разрывает соединение, если интернет оборвался, что часто случается с мобильным интернетом. В любом случае, можно использовать tmux или screen, но иметь под рукой Mosh, который поддерживает эту функцию «из коробки» очень удобно. Mosh как опция включена в Termius и Blink. А вот интеграции с Prompt нет, так как последняя не распространяется свободно. Используйте tmux или screen для непрерывной работы После установления соединения нужно подключиться к tmux или screen. Tmux терминальный мультиплексор, который позволяет запускать несколько терминальных сессий в одном окне. Также он дает возможность отключаться от сессии при том, не завершая его на сервере. Таким образом, откуда угодно можно подключиться к запущенной сессии. Например, можно запустить сессию на компьютере, а потом подключиться к ней со смартфона. Если tmux не установлен, сделать это можно командой: sudo apt-get install tmux А затем, дело за малым: создано новую сессию и задать ей имя: tmux new -s session После этого в нижней части окна появится строка состояния, которая указывает на то, что вы работаете в tmux. Чтобы отключиться от сессии введите команду: tmux detach Или просто нажмите комбинацию клавиш Ctrl+B, а затем D, но может быть неудобно делать это на смартфоне. Вместо этого можно использовать команду exit. Сессия продолжает выполняться на сервере; запущенные программы, журнал команд и все остальное продолжают выполняться в фоновом режиме, даже если вы не подключены к сети. Для повторного подключения к сеансу используйте: tmux a -t session В некоторых SSH-клиентах, таких как Prompt, можно задать команду startup, которая будет выполняться при подключении к ней. Таким образом, если на сервере запущен сеанс tmux, к которому всегда подключаетесь, используйте команду startup для автоматического подключения.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59