Первоначальная настройка сервера XRDP на сервере
- Установить пакет xrdp:
- Включить и добавить в автозапуск сервисы:
-
# systemctl enable --now xrdp xrdp-sesman
-
Права доступа пользователя:
- Для доступа к терминальному сеансу — включить в группу tsusers:
-
# gpasswd -a user tsusers
-
- Для проброса папки — включить в группу fuse:
Настройки
Настройки сервера хранятся в файле /etc/xrdp/sesman.ini. Некоторые настройки сервера установленные по умолчанию:
- AllowRootLogin=true — авторизация Root;
- MaxLoginRetry=4 — максимальное количество попыток подключения;
- TerminalServerUsers=tsusers — группа, в которую необходимо добавить пользователей для организации доступа к серверу;
- MaxSessions=50 — максимальное количество подключений к серверу;
- KillDisconnected=false — разрыв сеанса при отключении пользователя;
- FuseMountName=Mount_FOLDER — название монтируемой папки.
Примечание: Для поиска параметра можно воспользоваться поиском в текстовом редакторе.
По умолчанию для подключения по RDP используется порт 3389. Номер порта можно изменить в файле /etc/xrdp/xrdp.ini.
Подключение
Для подключения можно использовать FreeRDP — клиент для подключения к удаленному рабочему столу по протоколу RDP.
Установить пакет xfreerdp:
# apt-get install xfreerdp
Синтаксис:
xfreerdp [файл] [параметры] [/v:<сервер>[:порт]]
Описание некоторых параметров:
- /v:<сервер>[:порт] — IP-адрес или имя сервера;
- /u:<пользователь> — имя пользователя;
- /p:<пароль> — пароль пользователя;
- /w:<ширина> — ширина окна;
- /h:<высота> — высота окна;
- /f — полноэкранный режим;
- /size:<ширина>x<высота> — размер окна;
- /drive:<название>,<путь> — подключение каталога.
Пример:
$ xfreerdp /drive:Epson,/home/cas/epson /v:10.4.129.129 /u:user /p:123
где:
- Epson — название папки, которая будет показываться в каталоге thinclient_drives в домашней папке терминального пользователя, у локального пользователя пробрасывается папка /home/cas/epson;
- 10.4.129.129 — адрес терминального сервера;
- user — имя терминального пользователя;
- 123 — пароль терминального пользователя.
Если пользователь или пароль не указаны, появится окно входа:
Внимание! Избегайте одновременных сеансов RDP и обычных(локальных) для одного и того же пользователя. Systemd не позволит полноценно работать в сеансе RDP.
Также для подключения можно использовать клиент Remmina, Connector или Krdc.
Примечание: В случае проблем с подключением дисков необходимо в настройках подключения в локальных ресурсах отключать галочку «Принтеры».
Примечание: Существует известная проблема с тем, что на странице авторизации не реализовано переключение раскладки клавиатуры. Поэтому при подключении с клиента Linux в настройках клиента следует установить раскладку «00000409 — United States — English«.
Клиент Windows не содержит настройку раскладки клавиатуры. Перед подключением с помощью клиента Windows необходимо вначале перейти на раскладку, в которой вводится логин и пароль, как правило это EN.
Дополнительно (MATE)
Для использования сервером установленной графической оболочки MATE выполните следующее:
- Установите пакет mate-session.
-
# apt-get install mate-session
-
- Убедитесь, что по умолчанию будет запускаться mate-session:
-
$ runwm --print default /usr/bin/mate-session
-
Проброс звука
Для прослушивания звука из терминального сеанса локально установите на терминальный сервер пакет pulseaudio-module-xrdp:
# apt-get install pulseaudio-module-xrdp
При использовании в качестве клиента xfreerdp добавьте параметр /sound:sys:pulse:
xfreerdp /v:10.4.4.17 /u:user /p:123 /sound:sys:pulse
Проброс USB-устройств
Для проброса USB-устройств на сервере необходимо установить пакет xrdp-usb-session:
# apt-get install xrdp-usb-session
Данный компонент пробрасывает широкий спектр устройств, начиная от USB-веб-камер, до USB-токенов и смарт-карт. Инструкция по использованию: Xrdp-usb
Внимание! Проброс будет работать только в рамках локальной сети, так как требует доступность клиентского компьютера с сервера
Доступ доменных пользователей
В раздел домена в файле /etc/sssd/sssd.conf необходимо указать ad_gpo_map_service = +xrdp-sesman:
[domain/TEST.ALT] ... ad_gpo_map_service = +xrdp-sesman ...
Иначе будет возникать ошибка:
pam_acct_mgmt failed: Permission denied
Локальные группы для доменных пользователей
Вариант с локальной группой для доменных пользователей не работает, поэтому для них работает отключение группы (или указание любой нелокальной, даже несуществующей):
В файле /etc/xrdp/sesman.ini
TerminalServerUsers=
После исправления файла запустите
# systemctl restart xrdp-sesman
Журнал для sesman (сеансов пользователей) находится в файле /var/log/xrdp-sesman.log.
Данная ситуация возникла потому, что в больших доменах показ всех членов группы нагружает систему, поэтому в /etc/sssd/sssd.conf по умолчанию используется значение enumerate = false.
Если в разделе домена в файле /etc/sssd/sssd.conf явно указать enumerate=true:
[domain/TEST.ALT] id_provider = ad auth_provider = ad chpass_provider = ad default_shell = /bin/bash fallback_homedir = /home/%d/%u debug_level = 0 enumerate = true
то в /etc/xrdp/sesman.ini можно указать
TerminalServerUsers=domain users
Примечание: Доменные группы под Линуксом видны в нижнем регистре.
Не забудьте перезапустить службы sssd и xrdp-sesman.
Повышение привилегий
- consolehelper, beesu — ограничений нет;
- polkit — требует создание дополнительных правил для удалённых пользователей. Подробнее описано на https://github.com/neutrinolabs/xrdp/issues/1568#issuecomment-624727037
Производительность
Рекомендуется отключить эффекты рабочего стола. Можно установить пакеты:
Среда | Пакет |
MATE | mate-reduced-resource |
XFCE | xfce-reduced-resource |
См. также: https://askubuntu.com/questions/1283709/xrdp-and-xfce4-ubuntu-18-04-unusable#tab-top
Решение проблем
Общий подход
Первым делом обратите внимание на логи как сервера, так и сессии:
- /var/log/xrdp.log и /var/log/xrdp-sesman.log
- ~/.xorgxrdp.*.log в домашнем каталоге пользователя
Например, такие строчки в последнем свидетельствуют о необходимости запроса пересборки xrdp с текущим xorg-server:
(EE) xorgxrdp: module ABI major version (23) doesn't match the server's version (24) (EE) Failed to load module "xorgxrdp" (module requirement mismatch, 0)
Проблемы соединения с мобильным rdp-клиентом
В некоторых мобильных rdp-клиентах, особенно предназначенных для работы на старых версиях Android, если выбрать режим «Воспроизведение звука на стороне клиента» (или аналогичный) возникает ошибка соединения.
Решается запретом воспроизведения звука в настройках клиента или изменением в /etc/xrdp/xrdp.ini в строке rdpsnd=true, значения true на false. При этом клиент лишается возможности воспроизводить звук, однако в остальном соединение работает.
Проблема подключения с Windows XP
Для подключения рабочих станций с Windows XP необходимо в файле /etc/xrdp/xrdp.ini добавить поддержку протокола TLSv1.1:
ssl_protocols=TLSv1.1, TLSv1.2, TLSv1.3
Эта поддержка была исключена из конфигурации по умолчанию в версии 0.9.8 (https://github.com/neutrinolabs/xrdp/releases/tag/v0.9.8).
Проблемы соединения с тонким клиентом Dell Wyse 3040
Для подключения тонких клиентов Dell Wyse 3040 в /etc/xrdp/xrdp.ini необходимо выключить звуковую поддержку:
rdpsnd=false
Проблемы одновременного запуска локального и удалённого сеанса
С версии 0.9.14-alt5 файл /etc/pam.d/xrdp-sesman стал основан на правилах common-login. Второй сеанс systemd для одного и того же пользователя не удаётся запустить. Если это действительно надо, замените строку
session include common-login
на
session substack system-auth session required pam_loginuid.so session substack system-policy
Процесс gvfsd-trash занимает 100% процессора
Создайте раздел или файл подкачки. Например, по статье: Swap
Рабочий стол Mate в сеансе не показывает значки
Вариант 1.
Создайте файл /etc/xdg/autostart/caja-restart.desktop:
[Desktop Entry] Type=Application Name=Restart Caja in remote session Exec=dbus-launch caja --force-desktop
Вариант 2.
Замените строку в файле /usr/share/applications/caja.desktop
Exec=/usr/bin/caja
на
Exec=/usr/bin/caja --force-desktop
Чтобы избежать сообщение об ошибке получения имени сессии, в файл /etc/xrdp/startwm.sh добавьте следующие строки
unset DBUS_SESSION_BUS_ADDRESS exec mate-session
Если пользователь ранее не регистрировал локальный сеанс, то при подключении новым пользователем xrdp не создаёт окружение пользователя в /home
Данная ситуация характеризуется следующей ошибкой при попытке подключения новым пользователем по xrdp:
[ERROR] another Xserver might already be active on display 9 - see log [DEBUG] aborting connection...
Для решения этой проблемы необходимо добавить в конец файла /etc/pam.d/xrdp-sesman строки:
session required pam_env.so readenv=1 user_readenv=0 session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
Вам нужен удаленный доступ к настольному компьютеру Linux из Windows? Вот что вам нужно знать о RDP, VNC и SSH для Linux.
Установили сервер Linux? Возможно, вы настроили его как решение для сетевого хранения данных. А может быть, у вас есть рабочий ПК с Linux, медиацентр или вы просто держите дополнительный ПК в другой комнате.
Как бы то ни было, в какой-то момент вам понадобится удаленный доступ к устройству Linux с ПК или ноутбука под управлением Windows. Каково же решение?
У пользователей Windows есть несколько инструментов, которые обеспечивают простой удаленный рабочий стол с Windows на Linux. Хотите узнать, как сделать удаленный рабочий стол с Windows на Linux? Читайте дальше!
Вам понадобится IP-адрес устройства Linux
Перед тем как удаленно подключиться к Linux из Windows, вам понадобится IP-адрес устройства. Он нужен для всех вариантов удаленного подключения, хотя в некоторых случаях достаточно имени хоста (сетевого имени устройства).
Самый простой способ проверить IP-адрес – войти в систему на устройстве Linux и открыть терминал. Введите:
hostname -I
На экране появится IP-адрес устройства. Для получения более подробной информации вы также можете использовать
ip address
Если ваша система Linux имеет несколько соединений, они будут перечислены с префиксами. Например, подключение Ethernet будет перечислено как eth0. Если система подключена к беспроводной сети, ищите IP-адрес, указанный напротив wlan0.
Если это не так просто или неудобно, есть другой способ, который почти так же прост. В окне браузера подключитесь к маршрутизатору. Обычно это адрес 192.168.0.1 или 192.168.0.0. Посмотрите на самом маршрутизаторе или в документации, которая прилагается к нему.
Войдя в маршрутизатор, найдите опцию со списком подключенных устройств. Просмотрите IP-адреса, чтобы найти устройство Linux по имени хоста. Некоторые маршрутизаторы могут даже отображать операционную систему устройства. IP-адрес будет указан рядом, его следует записать на будущее.
Первый и самый простой вариант – это RDP, протокол удаленного рабочего стола, который встроен в Windows.
Перед началом работы вам необходимо установить программное обеспечение xrdp на ваш Linux-компьютер. Вы можете сделать это с помощью одной команды:
sudo apt install xrdp
Для RDP в Linux запустите программу Remote Desktop на машине Windows. В Windows 8 и более поздних версиях ее можно найти через Поиск, просто введя буквы “rdp”.
Откройте окно “Подключение к удаленному рабочему столу”:
- Введите IP-адрес
- Используйте Показать параметры для любых дополнительных требований к подключению
- Нажмите кнопку Подключиться
Все очень просто.
Преимущества RDP: несмотря на то, что настройка может занять немного больше времени, использование RDP обеспечивает высокую надежность и удаленный доступ к рабочему столу Linux. Это делает его идеальным инструментом для удаленной работы с машинами Linux.
Если вы планируете использовать RDP на регулярной основе, вы можете сэкономить немного времени, создав эти пользовательские конфигурации для Windows RDP.
Подключение к Linux из Windows с помощью VNC
Виртуальное сетевое подключение (VNC) также позволяет получить удаленный доступ к рабочему столу Linux. Однако, как и в случае с RDP, вам потребуется установить специальное программное обеспечение.
Для Linux требуется серверное программное обеспечение VNC, для Windows – клиентское приложение.
Одним из самых популярных вариантов подключения к Linux через VNC является TightVNC. Клиентское программное обеспечение для Windows вы найдете на сайте, но убедитесь, что выбрали правильную версию.
Скачать: VNC для Windows
После этого установите tightvncserver на свой Linux-компьютер. Это можно сделать через SSH (см. следующий раздел) или с физическим доступом к компьютеру.
Сначала в Linux проверьте наличие обновлений:
sudo apt update
Затем установите TightVNC Server:
sudo apt install tightvncserver
После установки запустите tightvncserver и задайте пароль, когда появится запрос.
sudo tightvncserver
Для паролей существует ограничение в восемь символов. После запуска tightvncserver вы увидите уведомление с номером порта – запишите его.
Как только вы это сделаете, вы сможете подключиться к машине Linux из Windows:
- Запустите приложение TightVNC Viewer в Windows.
- Введите IP-адрес и номер порта
- Нажмите кнопку Подключиться
- Введите установленный пароль, когда появится запрос
После этого откроется удаленный рабочий стол, и вы сможете начать использовать выбранное вами приложение – в пределах разумного. Некоторые приложения с высокими графическими требованиями вряд ли будут работать надежно, если вообще будут работать.
Преимущества VNC: предлагая быстрый доступ к удаленному ПК, TightVNC имеет свои ограничения. Вы можете выполнять стандартные вычислительные задачи, но деятельность, связанная с мультимедиа, сильно ограничена.
Удаленный доступ в Linux через SSH
SSH (Secure Shell) – это отличный способ получить удаленный доступ к вашему Linux-устройству. Этот способ не ограничивается Windows, так как SSH можно использовать практически с любого устройства. Он также очень безопасен.
У вас есть два варианта использования SSH в Windows:
- SSH в Windows PowerShell
- Скачать инструмент SSH PuTTY
Давайте рассмотрим оба варианта.
Удаленный доступ к Linux с помощью SSH в Windows PowerShell
Windows PowerShell – это новый инструмент командной строки в Windows 10, заменивший старое приложение Command Prompt. Найдите его, щелкнув правой кнопкой мыши “Пуск”, чтобы открыть меню “Питание”, и выберите Windows PowerShell. Чтобы подключиться по SSH, введите:
ssh [IP_ADDRESS].
Так, если устройство Linux имеет IP-адрес 192.168.13.123, введите:
ssh 192.168.13.123
- Когда появится запрос, примите сертификат
- Введите имя пользователя и пароль
Теперь у вас есть удаленный SSH-доступ к Linux.
Удаленное подключение к Linux с помощью SSH в PuTTY
Приложение PuTTY можно скачать, хотя оно и недоступно в Windows. Однако PuTTY не устанавливается. Вместо этого вы просто запускаете загруженный EXE-файл.
Скачать: PuTTY (бесплатно)
Для удобства рекомендуется создать ярлык на рабочем столе.
Чтобы использовать PuTTY для SSH:
- Выберите Сеанс > Имя хоста
- Введите сетевое имя компьютера Linux или введите IP-адрес, который вы указали ранее.
- Выберите SSH, затем Открыть
- Когда появится запрос на принятие сертификата для соединения, сделайте это.
- Введите имя пользователя и пароль для входа на устройство Linux.
Преимущества SSH: использование этого метода позволяет быстро вносить изменения в Linux, не пачкая рук. Особенно подходит для установки программного обеспечения и изменения администратора. Он также полезен для настройки следующего варианта, VNC! SSH также идеально подходит для серверов без установленной среды рабочего стола.
Однако если вам нужно удаленное подключение к рабочему столу Linux из Windows, попробуйте VNC или RDP.
Три метода удаленного рабочего стола Windows для подключения к Linux
Независимо от вашей цели, найдется подходящий вариант подключения к машине Linux из Windows. Эти методы работают независимо от того, является ли устройство сервером, настольным ПК на работе, медиацентром или даже Raspberry Pi.
От самого простого к самому сложному – удаленный доступ к Linux из Windows с помощью:
- RDP (протокол удаленного рабочего стола)
- VNC (виртуальное сетевое подключение)
- SSH (Secure Shell)
Если ваш дистрибутив Linux – Ubuntu, у вас уже есть встроенный инструмент удаленного рабочего стола, совместимый с VNC.
Содержание
- 1 Вступление
- 2 Установка XRDP
- 3 Настройка XRDP
- 4 Добавление возможности переключать раскладку
- 5 Технические моменты
Вступление
Для удалённого управления компьютером пользователи Windows привыкли использовать «Подключение к удалённому рабочему столу», работающее по протоколу RDP.
В ОС AlterOS возможна реализация такого подключение с Windows машины. Для этой цели служит пакет XRDP
Установка XRDP
Установка XRDP производится с помощью команды
# sudo yum install xrdp xorgxrdp
Настройка XRDP
Первым делом необходимо настроить или отключить Firewall.
Если выбрана настройка Firewall, то необходимо открыть как минимум порт 3389.
# sudo firewall-cmd --permanent --add-port=3389/tcp # sudo systemctl restart firewalld
Далее необходимо добавить рабочую среду Cinnamon при подключении пользователя:
# echo "cinnamon-session" > ~/.xsession # chmod +x ~/.xsession # sudo systemctl restart xrdp.service
Данная процедура должна быть произведена для каждого пользователя, которому необходим удалённый доступ на настраиваемый компьютер.
Добавление возможности переключать раскладку
Необходимо внести правки в конфигурационные файлы:
# nano /etc/xrdp/xrdp.ini
Комментируем блок с [Xvnc] и расскоментирует блок с [Xorg]
[Xorg] name=Xorg lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 code=20 #[Xvnc] #name=Xvnc #lib=libvnc.so #username=ask #password=ask #ip=127.0.0.1 #port=-1 #xserverbpp=24 #delay_ms=2000
Приводим файл конфигурации /etc/xrdp/xrdp_keyboard.ini к виду:
[default_rdp_layouts] rdp_layout_us=0x00000409 rdp_layout_de=0x00000407 rdp_layout_fr=0x0000040C rdp_layout_it=0x00000410 rdp_layout_jp=0x00000411 rdp_layout_jp2=0xe0010411 rdp_layout_jp3=0xe0200411 rdp_layout_jp4=0xe0210411 rdp_layout_ru=0x00000419 rdp_layout_se=0x0000041D rdp_layout_pt=0x00000816 rdp_layout_br=0x00000416 rdp_layout_pl=0x00000415 [rdp_keyboard_ru] keyboard_type=4 keyboard_subtype=1 model=pc105 options=grp:alt_shift_toggle rdp_layouts=default_rdp_layouts layouts_map=layouts_map_ru [layouts_map_ru] rdp_layout_us=us,ru rdp_layout_ru=us,ru
Редактируем файл /usr/libexec/xrdp/startwm.sh как показано на рисунке:
# sudo nano /usr/libexec/xrdp/startwm.sh
Добавленная строка:
/bin/setxkbmap -layout us,ru -variant ',winkeys' -option 'grp:alt_shift_toggle,grp_led:scroll'
Перезапускаем сервис:
# sudo systemctl restart xrdp.service
На этом процедура настройки XRDP закончена.
Если при переходе на удаленный терминальный сервер раскладка набора кнопок Numlock переключается, то необходимо в конфигурационном файле /etc/xrdp/xrdp_keyboard.ini
добавить строку
numlock=on
Для проброса звука необходимо установить пакет pulseaudio-module-xrdp, выполнив команду:
sudo yum localinstall http://repo.alter-os.ru/alteros/7/experimental/x86_64/Packages/pulseaudio-module-xrdp-1.0.0-2.el7.alteros.x86_64.rpm
Технические моменты
- Для доступа в интернет пользователям, подключенным удалённо, необходимо открыть как минимум порт 80 (в случае если Firewall не отключен).
Открыть порт 80 можно с помощью команды:
firewall-cmd --permanent --add-port=80/tcp
После чего перезапустить сервис firewalld:
sudo systemctl restart firewalld
- Для удаленного запуска программ, таких как Yumex, пользователю, от имени которого происходит запуск, необходимо предоставить права на выполнение данной программы без ввода пароля администратора (root). Один из способов предоставления таких прав пользователю — создание конфигурационного файла в директории /etc/sudoers.d. Для этого потребуется выполнить следующие шаги:
1) Создать файл:
sudo nano /etc/sudoers.d/user
2) Внести строку с названием вашего пользователя и приложения, которому необходимо дать доступ, например:
%user ALL=(ALL) /usr/bin/yum
3) Сохранить файл и выставить права на него:
chmod 0440 /etc/sudoers.d/user
4) Проверить правильность синтаксиса файла sudoers:
sudo visudo -c
Если команда вернет сообщение «parsed OK», значит, файл sudoers был создан без ошибок.
0
1
Доброго времени суток.
Пришла пора использовать на работе ПК с отечественной ОС. В качестве отечественной ОС используется AltLinux.
Одна из возникших проблем — обеспечить пользователя возможностью работы на ПК удаленно, продолжая свои действия, начатые пользователем на ПК локально.
ВВОДНАЯ:
Пользователь сел за ПК и начал работать с программами, документами и прочей рабочей мелочью. Далее пользователь встал, и отошел от ПК. Через некоторое время пользователю нужно продолжить работу с ранее открытыми программами, документами и прочей рабочей мелочью удаленно.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ:
На ПК пользователя установлен xRDP, как средство для удаленной работы.
ПРОБЛЕММА:
При подключении к ПК по RDP, для пользователя открывается новая сессия, где пользователь видит пустой рабочий стол, и не видит ранее открытых программам, документов и прочую рабочую мелочь.
ВОПРОС:
Как настроить xRDP таким образом, что бы пользователь подключался к своей, уже запущенной сессии с ранее открытыми программами, документами и прочей рабочей мелочью.
В мире ИТ существует уже довольно широкий спектр операционных систем, начиная с серверных, заканчивая операционными системами для мобильных устройств. В обычных пользовательских компьютерах и в серверах довольно часто используются две ОС — Linux и Windows. Поэтому очень часто возникают ситуации, когда приходится подключаться по сети из одной операционной системы к другой для выполнения разнообразных операций.
В этой статье мы рассмотрим варианты подключения к Linux из Windows. Существуют бесплатные и условно бесплатные утилиты вроде AnyDesk или TeamViewer, но установка их довольно тривиальна и не нуждается в дополнительном пояснении. Утилиты подобного рода обладают рядом ограничений при бесплатном некоммерческом использовании, либо их функциональность не удовлетворяет тем или иным потребностям пользователя. Мы рассмотрим полностью бесплатные способы как подключится к Linux из Windows.
Удалённый доступ к Linux с помощью VNC
На сегодняшний день самое популярное удаленное подключение к Linux из Windows, с использованием привычный в Windows графического интерфейса, является VNC (Virtual Network Computing) — утилита, использующая протокол RFB (Remote FrameBuffer — удалённый кадровый буфер). Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.
В качестве сервера VNC в данном примере будет использоваться TightVNC, установленный в Ubuntu 20.04. Для установки сервера VNC необходимо выполнить ряд действий:
Шаг 1. Установка рабочей среды XFCE
Xfce — одна из самых легковесных рабочих сред, используемых в Linux, она будет быстро работать даже при слабом и нестабильном сетевом подключении. Установите её с помощью команд:
sudo apt update
sudo apt install xfce4 xfce4-goodies
Шаг 2. Установка TightVNC
Далее установите TightVNC:
sudo apt install tightvncserver
Шаг 3. Настройка пароля
Перед началом выполнения всех действий необходимо задать пароль пользователя VNC. Выполните команду:
vncpasswd
Вам будет предложено создать новый пароль, а также пароль только для просмотра. Откажитесь от второй опции:
Завершите процесс vncserver:
vncserver -kill :1
Шаг 4. Настройка скрипта запуска
Отредактируйте скрипт, который выполняется после запуска VNC-сервера:
nano ~/.vnc/xstartup
Он должен содержать такой текст:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
Сделайте файл исполняемым:
chmod +x ~/.vnc/xstartup
Шаг 5. Запуск VNC сервера
На этом этапе уже можно запустить VNC-сервер с помощью команды:
vncserver
Шаг 6. Подключение из Windows
Для того, чтобы подключиться из Windows к вашему Linux-серверу, используйте TightVNC Viewer.
Укажите IP-адрес компьютера, к которому нужно подключиться, и номер порта в поле Remote Host. В данном примере — 192.168.56.102::5901:
После того, как будет введён пароль, вы должны увидеть рабочий стол Xfce:
Шаг 8. Настройка systemd
Для того, чтобы запуск вашего VNC-сервера добавить в автозагрузку надо использовать systemd. Создайте новый файл сервиса systemd:
sudo nano /etc/systemd/system/vncserver@.service
Его содержимое должно быть следующим:
[Unit]
Description=Systemd VNC server startup script for Ubuntu 20.04
After=syslog.target network.target
[Service]
Type=forking
User=ubuntu
ExecStartPre=-/usr/bin/vncserver -kill :%i &> /dev/null
ExecStart=/usr/bin/vncserver -depth 24 -geometry 800x600 :%i
PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Измените имя пользователя ubuntu и рабочего каталога ubuntu на нужные вам значения. Если у вас запущен VNC-сервер, остановите его:
vncserver -kill :1
Сообщите systemd о появлении нового сервиса:
sudo systemctl daemon-reload
Добавьте запуск вашего нового сервиса в список автозагрузки:
sudo systemctl enable vncserver@1.service
Запустите VNC-сервер:
sudo systemctl start vncserver@1
Использование RDP для удалённого подключения
Помимо VNC, для управления Linux-сервером из Windows можно воспользоваться RDP (Remote Desktop Protocol). Для этого на компьютере с Ubuntu 20.04 установите утилиту xrdp:
sudo apt install xrdp
Для корректной работы сервиса необходимо добавить пользователя xrdp в группу ssl-cert:
sudo adduser xrdp ssl-cert
Установите Xfce:
sudo apt-get install xfce4
Добавьте Xfce в сессии RDP в качестве рабочего стола по умолчанию:
echo xfce4-session >~/.xsession
Перезапустите сервис xrdp:
sudo systemctl restart xrdp.service
Процедура подключения из Windows к Linux-серверу по протоколу RDP почти ничем не отличается от подключения к удалённым Windows-серверам. Введите IP-адрес сервера, логин и пароль пользователя в Linux:
Если всё сделано правильно, вы увидите рабочий стол Xfce:
Для подключения к компьютеру под управлением Linux по протоколу SSH из Windows можно воспользоваться PowerShell. Сначала становите OpenSSH Client, если ещё не установлен. Запустите на вашем компьютере PowerShell от имени администратора системы и выполните следующую команду:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Это необходимо для того, чтобы узнать текущую версию SSH-клиента. В данном примере доступна версия OpenSSH.Client-0.0.1.0. Установите OpenSSH.Client с помощью команды:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Для того, чтобы подключиться к устройству, на котором запущен SSH-сервер, необходимо ввести имя пользователя и IP-адрес. Команда для подключения по SSH используя PowerShell выглядит так:
ssh ubuntu@192.168.56.1
Здесь ubuntu — имя пользователя на удалённом компьютере, а 192.168.56.1 — IP-адрес Linux-сервера, на котором запущен демон SSH.
При первом подключении необходимо подтвердить использование специального персонального ключа для шифрованного соединения по SSH-протоколу (введите слово Yes), затем введите пароль пользователя (в данном случае для пользователя ubuntu):
Как видите, соединение прошло успешно. Теперь можно выполнять все команды так же, как если бы вы их выполняли используя стандартный Linux SSH-клиент:
Для завершения терминальной сессии на удалённом компьютере введите команду exit. Теперь вы знаете как выполняется подключение к Linux из Windows по SSH.
Использование Putty для подключения к Linux
Пожалуй, одним из самых популярных способов подключения к Linux из Windows является кроссплатформенная утилита Putty — небольшая по размерам, но очень часто незаменима для подключения по таким протоколам как SSH, Telnet, rlogin и даже с помощью последовательных портов.
Для обычного подключения к Linux-серверу по протоколу SSH достаточно в поле Host Name (or IP—address) указать его IP-адрес и нажать кнопку Open (в данном примере Linux-сервер имеет IP-адрес: 192.168.56.102):
При первом подключении Putty предупредит, что используется специальный ключ безопасности и его нужно добавить в доверенные хосты. Нажмите кнопку Да:
Далее нужно будет ввести логин и пароль. Если всё сделано правильно, запустится удалённая сессия терминала Linux:
Мало кто знает, что Putty позволяет запустить почти любое приложение, установленное на компьютере с Linux, по сети в Windows. Для этого на компьютере с Windows нужно установить собственный X-сервер. В данном примере воспользуемся Xming.
Скачайте Xming с официального сайта. Установка довольно тривиальная, поэтому не будем на ней останавливаться. Ничего не меняйте в процессе установки. Просто нажимайте кнопку Next до тех пор, пока программа не установится и не запустится:
Когда установка Xming завершится, откройте Putty и в настройках сессии для вашего подключения в разделе SSH -> X11 включите флажок напротив опции Enable X11 forwarding, а также, в строке Отображение дисплея X впишите значение localhost:0, после чего откройте сессию подключения с помощью кнопки Open:
В открывшемся терминале Putty введите консольное название программы, обладающей графическим интерфейсом. В данном примере введено название графического редактора drawing:
drawing &
(Знак & позволит запустить программу в фоновом режиме, в этом случае в окне Putty можно будет выполнять и другие команды):
Как видите, Linux-приложение drawing успешно запустилось по сети на X-сервере, установленном в Windows. С ним можно работать так же, как и с локальным приложением.
Выводы
Сегодня не существует слишком уж больших проблем для подключения к Linux из Windows. Способов существует довольно много. Каждый из них обладает своими достоинствами и недостатками, например, скорость работы VNC, да и других тоже, существенно зависит от скорости сетевого соединения. Существуют также программные средства, позволяющие подключаться к Linux-серверам используя мессенджеры или браузеры.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .