Linux подключение по имени

Обновлено: 04.07.2024

В мире ИТ существует уже довольно широкий спектр операционных систем, начиная с серверных, заканчивая операционными системами для мобильных устройств. В обычных пользовательских компьютерах и в серверах довольно часто используются две ОС — 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. Выполните команду:

Вам будет предложено создать новый пароль, а также пароль только для просмотра. Откажитесь от второй опции:


Завершите процесс vncserver:

vncserver -kill :1

Шаг 4. Настройка скрипта запуска

Отредактируйте скрипт, который выполняется после запуска VNC-сервера:

Он должен содержать такой текст:

Сделайте файл исполняемым:

Шаг 5. Запуск VNC сервера

На этом этапе уже можно запустить VNC-сервер с помощью команды:

Шаг 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

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

sudo apt-get install xfce4

Добавьте Xfce в сессии RDP в качестве рабочего стола по умолчанию:

Перезапустите сервис xrdp:

sudo systemctl restart xrdp.service

Процедура подключения из Windows к Linux-серверу по протоколу RDP почти ничем не отличается от подключения к удалённым Windows-серверам. Введите IP-адрес сервера, логин и пароль пользователя в Linux:


Если всё сделано правильно, вы увидите рабочий стол Xfce:


Подключение к Linux из Windows по SSH

Для подключения к компьютеру под управлением 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


Для того, чтобы подключиться к устройству, на котором запущен SSH-сервер, необходимо ввести имя пользователя и IP-адрес. Команда для подключения по SSH используя PowerShell выглядит так:

Здесь 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):



Далее нужно будет ввести логин и пароль. Если всё сделано правильно, запустится удалённая сессия терминала Linux:


Мало кто знает, что Putty позволяет запустить почти любое приложение, установленное на компьютере с Linux, по сети в Windows. Для этого на компьютере с Windows нужно установить собственный X-сервер. В данном примере воспользуемся Xming.

Скачайте Xming с официального сайта. Установка довольно тривиальная, поэтому не будем на ней останавливаться. Ничего не меняйте в процессе установки. Просто нажимайте кнопку Next до тех пор, пока программа не установится и не запустится:


Когда установка Xming завершится, откройте Putty и в настройках сессии для вашего подключения в разделе SSH -> X11 включите флажок напротив опции Enable X11 forwarding, а также, в строке Отображение дисплея X впишите значение localhost:0, после чего откройте сессию подключения с помощью кнопки Open:


В открывшемся терминале Putty введите консольное название программы, обладающей графическим интерфейсом. В данном примере введено название графического редактора drawing:

(Знак & позволит запустить программу в фоновом режиме, в этом случае в окне Putty можно будет выполнять и другие команды):


Как видите, Linux-приложение drawing успешно запустилось по сети на X-сервере, установленном в Windows. С ним можно работать так же, как и с локальным приложением.

Выводы

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

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Книга по SMB и Samba на русском языке. Оглавление

Samba — это SMB для Linux

Далее мы будем говорить про Samba, но мы затронем только вопросы SMB.

Начните с установки пакетов samba и smbclient.

В Debian, Linux Mint, Ubuntu, Kali Linux и их производных для установки samba выполните команду:

В Arch Linux, BlackArch и их производных выполните команду:

Как в Linux увидеть все компьютеры Windows с совместными ресурсами

Для показа всех совместных сетевых ресурсов Windows выполните команду:

В этой и последующих командах используется флаг -N, который означает не использовать пароль. Если же вы используете пароль, то укажите опцию -U с именем пользователя, пароль нужно будет ввести интерактивно.


В начале идёт имя рабочей группы WORKGROUP. Затем следует список компьютеров. Для тех из них, для которых удаётся получить список сетевых папок, они выводятся.

Как можно увидеть выше, для компьютера \\VYACHESLAV получен список совместно используемых ресурсов, а для компьютера \\HACKWARE-MIAL — нет. При этом если я включал на компьютере \\HACKWARE-MIAL поддержку протокола SMB 1, а при запуске команды указывал хоть какое-то имя пользователя, например:

либо просто запускал smbtree с правами администратора:

то мне удавалось получить список файлов также и для компьютера \\HACKWARE-MIAL. UDP: видимо, такое поведение в том, что совпадали имена польозвателей на компьютерах с Linux и Windows.

Как в Linux вывести доступные по сети ресурсы (совместные папки и принтеры Windows)

Предыдущая команда показала нам несколько компьютеров с сетевыми папками. Предположим, меня интересует компьютер \\HACKWARE-MIAL, чтобы вывести его сетевые папки я запускаю команду вида:

в моём случае это:


Кстати, вместо имени компьютера можно указать IP адрес.

В полученном выводе Share и Users являются общими сетевыми папками.

исчезнут, если создать файл /etc/samba/smb.conf.

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

Как я уже говорил чуть выше, флаг -N означает не использовать пароль. Если же вы используете пароль, то укажите опцию -U с именем пользователя, пароль нужно будет ввести интерактивно.

Как и для smbtree, для smbclient необязательно использовать sudo, но без sudo для некоторых компьютеров программа срабатывает нормально, а для некоторых завершается ошибкой:

Как подключиться к сетевой папке Windows из Linux

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

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

Для входа в интерактивный режим запустите команду вида:

Например, я хочу подключиться к компьютеру //HACKWARE-MIAL/ и выполнить действия с файлами в сетевой папке Share, тогда моя команда следующая:

Если вы хотите, чтобы при подключении была изменена текущая рабочая директория в сетевой папке, то есть чтобы была открыта другая папка, то используйте опцию -D. К примеру, я хочу подключиться к папке NewFolder, тогда команда следующая:

Подключение к SMB папке, требующий авторизации

К примеру, на компьютере //HACKWARE-MIAL/ имеется сетевая папка ShareRestricted, права на просмотр которой есть у пользователя ShareOverlord. Для просмотра шары, защищённой паролем, нужно использовать команду вида:

В моём случае это команда:


Команды SMB в Linux

Доступны следующие интерактивные команды:

Выводит все доступные команды:

Для показа справки по определённой команде, выполните

Переход в другой каталог (смена текущей рабочей директории) на удалённой системе:

Переход в другую директорию на локальной системе:

Удаление файла в шаре:

Имеется псевдоним этой команды:

И ещё одна команда со схожей функцией:

Эта команда рекурсивно удалить все совпавшие с шаблоном имени файлы и директории.

Показ файлов и папок в текущей папке:


Имеется псевдоним этой команды:

И ещё один, даже более короткий псевдоним:

Для повторного скачивания файла:

Для скачивания всех файлов, чьём имя совпадает с шаблоном:

Например, чтобы скачать все файлы с файловым расширением .exe нужно запустить такую команду:

Для каждого файла, совпавшего с шаблоном, будет выполнен запрос на скачивание. Если вы действительно хотите его скачать, то нажмите клавишу «y»:

Также имеется команда newer, которая скачивает файлы (mget), которые новее, чем указанный локальный файл. Используется она так:

Выгрузка файла на общую папку:

Следующая команда скопирует локальный файл в шару:

Повторная закачка файла:

Для закачки всех файлов, чьём имя совпадает с шаблоном:

К примеру, чтобы закачать в шару все файлы (из локальной текущей рабочей директории), которые имеют расширение *.cap, нужно запустить команду:

Для каждого файла, совпавшего с шаблоном, будет выполнен запрос подтверждения, если вы действительно хотите его закачать, то нажмите клавишу «y»:


Включение и отключение рекурсии

Можно включать и отключать рекурсивный режим для mget и mput.

Показ всей возможной информации о файле:


В выводимой информации можно увидеть альтернативное (DOS) имя, временные метки (дата создания, доступа, записи и изменения файла), атрибуты.

Копирование файла на сервере:

Создание директории:

Удаление директории:

Удаление файлов

Следующая команда удалит все совпавшие с МАСКОЙ файлы:

Псевдоним команды для удаления файлов:

С помощью команды wdel можно удалить все совпавшие файлы по подстановочным символам:

Переименование файлов:

Ссылки

Создание жёсткой ссылки Windows:

Создание жёсткой ссылки UNIX:

Создание символьной ссылки UNIX:

Выход с сервера:

Вывод истории команд текущей сессии:

Просмотр содержимого текстового файла:

Показ текущей рабочей директории:

Другой вариант показа текущей рабочей директории — это команда cd без аргументов:

Создание и извлечение архивов tar

Программа tar используется для объединения нескольких файлов в один файл. Объединение происходит без сжатия. Для того, чтобы несколько файлов из сетевой папки объединить в архив и скачать на локальную систему запустите команду вида:

К примеру, я хочу скачать файлы all-databases.sql besside.log ChromeSetup.exe из совместной папки и объединить их в архив all.tar, тогда моя команда следующая:

Для установления режимов tar используется команда

Установка таймаута операций:

Таймаут устанавливается в секундах и по умолчанию равен 20.

Установка нового соединения:

Закрытие сессии, выход:

Вывод списка открытых подключений:

Отображение текущего активного подкючения:

Изменение удалённой директории (переход на одну папку выше):

Выполнение команд в локальной системе:

Чтобы команда выполнялась не на удалённой системе, а на локальной, поставьте перед ней ! (восклицательный знак), например^

Автоматическое выполнение команд в сетевой папке Windows

Необязательно каждый раз вводить все команды вручную — вы можете перечислить их через запятую и указать в двойных кавычках с опцией -c, например:

Как смонтировать общую папку Windows/Samba в Linux

Сетевая папка Windows может быть доступна в файловых менеджерах Linux как любая другая локальная папка. Для этого её нужно смонтировать. После монтирования не придётся использовать консоль для просмотра списка файлов и скачивания или закачивания файлов.

Начните с установки пакета cifs-utils.

В Debian, Linux Mint, Ubuntu, Kali Linux и производных выполните:

В Arch Linux, BlackArch и производных выполните:

Предыдущие команды smbtree и smbclient понимали имена компьютеров Windows, такие имена как HACKWARE-MIAL. Монтирование выполняется с помощью команды mount, которая такие имена не умеет обрабатывать без помощи преобразования имён DNS. Поэтому при монтировании можно либо:

  1. Использовать вместо имён компьютеров IP адрес. В этом случае у компьютера с сетевой папкой должен быть постоянный (статичный) IP адрес
  2. Либо настроить преобразование имён для компьютеров Windows. Это можно сделать, например, с помощью файла /etc/hosts. Кстати, в этом случае у компьютера с общей папкой также должен быть постоянный IP адрес (смотрите Как настроить локальный DNS используя файл /etc/hosts в Linux)

В общем, в любом случае настройте в роутере или в самой Windows постоянный локальный IP.

Если вы хотите настроить преобразование имён с помощью файла /etc/hosts, то откройте его:

И добавьте туда запись вида

Например, у меня IP_АДРЕС это 192.168.0.101, а именем компьютера является HACKWARE-MIAL, тогда я добавляю следующую запись:

Пингуем по имени компьютера Windows, чтобы убедиться, что всё сработало:

Чтобы не возникало проблем с правами доступа, папка, куда монтируется шара (например, /mnt/share/), должна принадлежать текущему пользователю Linux — если вы создавали папку без sudo, то она уже принадлежит обычному пользователю. Но если вы создавали папку с sudo (например, иначе это невозможно сделать в /mnt/), то вам нужно поменять её владельца командой вида::

Например, чтобы поменять владельца папки /mnt/share/ на текущего пользователя:

Теперь для монтирования сетевой шары Windows нужно запустить команду вида:

В этой команде вы должны вставить свои значения для

Значение других элементов команды:

  • sudo — монтировать шару можно и без прав суперпользователя, но использовать опцию -o, после которой указываются опции для монтирования, можно только с правами root
  • -t cifs выбор файловой системы для монтирования
  • -o означает, что после этой опции будут перечислены опции для монтирования:
  • username=guest,password= - произвольное имя пользователя без пароля — используется для подключение к общей папки, для которой не требуется вход. Вместо этой конструкции можно указать просто guest, но в этом случае на некоторых системах всё равно запрашивается пароль. По моим наблюдениям, пароль запрашивается когда имя текущего пользователя на Linux совпадает с именем пользователя на Windows
  • uid=1000 — в качестве владельцев всех файлов в шаре будет указан текущий пользователь Linux
  • iocharset=utf8 — эта кодировка позволяет работать с именами файлов, в которых используются не только латинские буквы

К примеру, путь до сетевой шары у меня //HACKWARE-MIAL/Share, её я хочу смотрировать в папку /mnt/share, тогда команда будет следующей:

Вид сетевой папки Windows в Double Commander:


Вид сетевой папки в стандартном проводнике Linux:


Для размонтирования нужно запустить следующую команду (укажите либо точку монтирования, либо ресурс, который был смонтирован):

Напомню, что в предыдущей части я не только настроил папку для входа без пароля, но на том же самом компьютере и настроил вторую папку с именем ShareRestricted. У этой папки владелец ShareOverlord, а пароль для входа 1234. Для подключения папки, доступ к которой возможен только по паролю, используется та же самая команда, но нужно указать реальные учётные данные:

Чуть дальше очень похожий набор опций, в том числе пароль в открытом виде, мы будем использовать в файле /etc/fstab для настройки автоматического монтирования сетевой папки. Файл /etc/fstab доступен для чтения всем а, следовательно, также доступен всем ваш пароль от Windows в нём. Чтобы обойти эту проблему, можно использовать файл с учётными данными. Это файл содержит только имя пользователя и пароль.

Используя текстовый редактор, создайте файл с учётными данными для входа на ваш удалённый сервер:

В этот файл введите имя пользователя и пароль от Windows:

В моём примере это:

Сохраните файл и закройте редактор.

Измените права доступа к этому файлу, чтобы предотвратить нежелательный доступ к вашим учётным данным:

Посмотрите абсолютный путь до этого файла:

В моём случае абсолютный путь:

Теперь вместо двух опций:

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

Моя команда стала выглядеть так:

Настройка автоматического монтирования сетевой папки в Linux

Автоматически монтируемые файловые системы прописываются в файле /etc/fstab. Откроем этот файл:

Теперь в него нужно добавить строку вида:

Мы добавили опцию nofail, чтобы ОС нормально загружалась даже если не удалось смонтировать данную файловую систему. Ещё добавьте опцию _netdev, эта опция означает, что файловая система находится на устройстве, которому требуется доступ к сети (используется для предотвращения попыток системы смонтировать эти файловые системы до тех пор, пока в системе не будет включена сеть).

Для моего примера это строка:

Сохраним и закроем этот файл. Для проверки выполним:

Если сетевая папка успешно смонтировалась, значит можно выполнить проверку перезагрузкой.

Если нужно смонтировать папку для входа в которую не требуется пароль, то используйте в качестве опции учётные данные «username=guest,password=»:

Либо можно по-прежнему использовать файл .smbcredentials, как это было показано выше:

/.smbcredentials запишите следующее:

Как создать общую сетевую папку в Samba

Если в этой статье вы пропустили предыдущие части, так как вам нужно только настроить файловый сервер на Linux, то начните с установки пакета samba.

Следующая команда не сработает, если отсутствует файл /etc/samba/smb.conf. Если у вас тоже нет этого файла, то создаёте его заглушку — к настройке самого файла smb.conf мы вернёмся позже:

Теперь нужно добавить пароль для пользователя Samba. Действует следующее правило: имя пользователя должно быть таким же, как у вашего текущего пользователя, а пароль можно установить иной, отличный от вашего системного пароля.

Для установки пароля Samba, выполните следующую команду:

Если вы хотите, чтобы у пользователя не было пароля, то укажите опцию -n.

Создайте папку, которая станет совместно используемой:

Узнаем абсолютный путь до папки

Откройте для редактирования файл /etc/samba/smb.conf:

Добавьте туда строки вида:

Обратите внимание, что все пробелы в строках выше являются обязательными.

Для моих данных это строки:

Теперь запустим службу SMB:

Для добавления службы в автозагрузку выполните:

На самом деле, мы настроили не полноценную Samba, а только файловый сервер SMB. Одно из следствий этого — показанные выше способы обнаружения сетевых папок, такие как команда smbtree в Linux или переход во вкладку «Сеть» в проводнике Windows, не обнаружат нашу шару.

Для подключения к этой общей сетевой папке на Linux нужно использовать IP адреса компьютера Linux вместо имени компьютера, как это мы делали раньше. Кстати, поэтому нужно настроить статичный IP (смотрите статью «Как настроить Linux на использование статичного IP адреса»).

Создадим файл, чтобы сетевая папка не была пустой:

Посмотрите локальный IP адрес компьютера, на котором запущена Linux:

У меня этим IP является 192.168.0.89, а папку, как мы помним, я создал с именем linuxshare, тогда в Windows я перехожу в проводнике во вкладку «Сеть» и подключаюсь к этой папке следующим образом:

Вводим учётные данные (которые мы установили командой smbpasswd):


Видим содержимое совместно используемой папки, размещённой на Linux с помощью SMB:


Для подключения к сетевой папке из консоли Linux, запустите команду вида:

Для моего примера это:

После ввода пароля нам становится доступным содержимое сетевой папки.


Эту папку можно смонтировать как это было показано в предыдущем разделе, либо подключать в Windows как сетевой диск, как это было показано в первой части.

локальной сети с Linux

Советы и хитрости

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

  1. Удаленное использование графического программного обеспечения: существует множество программ, для работы которых требуются компьютеры с высокими техническими характеристиками (например, Autodesk Maya, AutoCAD, Blender). Ваш ноутбук или настольный компьютер может не иметь необходимых характеристик для запуска программного обеспечения. Иногда конкретное программное обеспечение может работать только в определенной операционной системе, которую вы не хотите устанавливать только для этого программного обеспечения. В этих случаях вы можете установить необходимое графическое программное обеспечение на другие компьютеры и получить к ним удаленный доступ со своего ноутбука или настольного компьютера и использовать необходимое графическое программное обеспечение.
  2. Удаленное решение проблем: если вы технический специалист в своем офисе, иногда вам может потребоваться решить проблемы на компьютерах ваших коллег или показать им, как что-то делать. Вы можете удаленно подключиться к компьютеру коллеги и решить его или ее ситуацию. Это сэкономит вам много времени, поскольку вам не придется тратить время на прогулки, чтобы пройти в комнату вашего коллеги.
  3. Удаленное графическое / командное администрирование: вы можете быть системным администратором компании. В компании может быть много компьютеров, которые нужно администрировать. Переход от стола к столу или из комнаты в комнату, чтобы помочь каждому компьютеру вашей компании, будет очень хлопотным. Вместо этого вы можете сидеть и расслабляться на своем столе и удаленно подключать компьютеры, которые вам нужны для администрирования, со своего ноутбука или настольного компьютера. Это сэкономит вам много времени и дополнительную работу.
  4. Доступ к виртуальным машинам: вы можете запускать виртуальные машины на своем сервере, используя гипервизоры типа I, такие как Proxmox VE, VMware vSphere, KVM и т.д. В этом случае, чтобы использовать виртуальные машины, вам необходимо удаленно подключиться к виртуальным машинам из ваш ноутбук или компьютер, поскольку у этих виртуальных машин не будет физического дисплея, клавиатуры или мыши.

В этой статье я покажу вам различные методы доступа к другим компьютерам и виртуальным машинам в одной сети с Linux. Итак, приступим.

Подключение к другим компьютерам Linux через SSH

Вы можете подключиться к другим компьютерам Linux в вашей сети из командной строки через SSH. Для работы SSH на удаленном компьютере должна быть установлена ​​программа сервера OpenSSH.

Если вам нужна помощь в установке сервера OpenSSH на ваш компьютер, в зависимости от используемого вами дистрибутива Linux, прочтите одну из следующих статей:

Чтобы подключиться к удаленному компьютеру через SSH, вам необходимо знать IP-адрес удаленного компьютера. Если вам неизвестен IP-адрес удаленного компьютера, попросите коллегу открыть Терминал на удаленном компьютере и выполнить следующую команду:

Чтобы подключиться к удаленному компьютеру

Как только ваш коллега узнает IP-адрес

Как только вы знаете имя пользователя, пароль и IP-адрес удаленного компьютера, вы можете подключиться к нему через SSH следующим образом:

ПРИМЕЧАНИЕ. Замените < username > именем пользователя для входа и < ip-addr > IP-адресом удаленного компьютера.

Как только вы знаете имя пользователя, пароль

Когда вы впервые подключаетесь к удаленному компьютеру через SSH, вы увидите следующее приглашение.

Когда вы впервые подключаетесь к удаленному

Введите да и нажмите < Enter >, чтобы принять отпечаток пальца.

Введите да и нажмите Enter

Введите пароль для входа на удаленный компьютер и нажмите < Enter >.

Введите пароль для входа на удаленный компьютер

Вы должны быть подключены к удаленному компьютеру через SSH.

Теперь вы можете запускать любую команду на удаленном компьютере.

Теперь вы можете запускать любую команду

Подключение к компьютерам с Windows через RDP

Самый распространенный способ подключения к удаленному компьютеру с Windows — через RDP (протокол удаленного рабочего стола). Протокол RDP встроен в операционную систему Windows. Таким образом, вам не нужно ничего устанавливать на удаленном компьютере с Windows, чтобы RDP работал. Все, что вам нужно сделать, это включить RDP на удаленном компьютере, и все готово.

Теперь вы можете запускать любую команду

Самый распространенный способ подключения

Нажмите Подтвердить, как показано на скриншоте ниже.

Чтобы включить RDP в Windows 10

RDP должен быть включен.

После включения RDP на удаленном компьютере

После включения RDP на удаленном компьютере с Windows вам необходимо знать IP-адрес удаленного компьютера с Windows.

Чтобы найти IP — адрес удаленной машины Windows, нажмите < Windows, ключ> и нажмите R. Должно появиться окно с приглашением Выполнить. Теперь введите powershell или cmd и нажмите < Enter >.

После включения RDP на удаленном компьютере с Windows

Должен быть открыт терминал (PowerShell или CMD, в зависимости от команды, которую вы использовали для запуска терминала).

Должен быть открыт терминал

Теперь выполните следующую команду:

Должен отображаться IP-адрес удаленного компьютера

Должен отображаться IP-адрес удаленного компьютера с Windows. В моем случае IP-адрес 192.168.0.107. Для вас все будет иначе. Поэтому обязательно используйте свой уникальный IP-адрес.

Узнав IP-адрес компьютера с Windows

Узнав IP-адрес компьютера с Windows, вы можете использовать RDP-клиент для подключения к удаленному компьютеру с Windows из Linux. В Linux доступно множество клиентов RDP. В этой статье я буду использовать Vinagre клиент удаленного рабочего стола для подключения к компьютеру Windows, с помощью RDP.

Если вы не имеют Vinagre установлен клиент удаленного рабочего стола на компьютере, и если вам нужна помощь с установкой Vinagre клиента удаленного рабочего стола на вашем желаемом распределении Linux, вы можете проверить статью Как установить Vinagre Remote Desktop Client на Linux.

После того, как вы установили Vinagre, вы можете запустить его из меню приложений вашего компьютера.

Чтобы запустить Vinagre, откройте меню приложений и найдите Vinagre и щелкните значок средства просмотра удаленного рабочего стола, как показано на снимке экрана ниже.

Чтобы запустить Vinagre, откройте меню приложений и найдите

Клиент удаленного рабочего стола Vinagre должен быть открыт.

Клиент удаленного рабочего стола Vinagre

Теперь нажмите Подключиться

Выберите RDP в раскрывающемся меню

как показано на снимке экрана ниже

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

Вам будет предложено ввести имя пользователя и пароль

Введите имя пользователя и пароль для входа и нажмите

Вы должны быть подключены к компьютеру с Windows, как вы можете видеть на скриншоте ниже.

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

VNC (Virtual Network Computing) — это протокол для доступа к графической среде рабочего стола компьютера и управления ею удаленно с другого компьютера.

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

Если вам нужна помощь в установке сервера VNC на ваш компьютер, в зависимости от используемого вами дистрибутива Linux, прочтите одну из следующих статей:

  • CentOS 8: прочтите статью Настройка VNC-сервера в CentOS 8.
  • Ubuntu 20.04 LTS: прочтите статью Как установить сервер VNC на Ubuntu 20.04 LTS.
  • Debian 10: прочтите статью Как установить сервер VNC на Debian 10.
  • Linux Mint 20: прочтите статью Установка сервера VNC на Linux Mint 20.
  • Fedora 32: прочтите статью Как настроить сервер VNC в Fedora Linux? .

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

В Linux доступно множество клиентов VNC. то есть Vinagre, Remmina, RealVNC VNC Viewer и т. д.

Если вам нужна помощь в установке клиента VNC в желаемом дистрибутиве Linux, вы можете прочитать одну из следующих статей в зависимости от клиента VNC, который вы хотите установить.

RealVNC VNC Viewer: прочтите статью Как установить RealVNC VNC Viewer в Linux.

В этой статье я буду использовать VNC-клиент RealVNC VNC Viewer, чтобы показать вам, как подключиться к удаленному компьютеру с помощью протокола VNC.

После установки RealVNC VNC Viewer вы можете запустить VNC Viewer из меню приложений желаемого дистрибутива Linux.

После установки RealVNC VNC Viewer вы можете

Установите флажок Я прочитал и принимаю эти условия и нажмите ОК, как показано на снимке экрана ниже.

Нажмите ПОЛУЧИТЬ, как показано на скриншоте ниже.

VNC Viewer должен быть готов к подключению к удаленным компьютерам.

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

Выполните следующую команду на удаленном компьютере, чтобы узнать его IP-адрес.

Выполните следующую команду на удаленном компьютере, чтобы узнать его IP-адрес

IP-адрес удаленного компьютера должен быть напечатан на терминале.

Как видите, IP-адрес удаленного компьютера, к которому я хочу подключиться, — 192.168.0.106. Он будет отличаться от твоего. Поэтому не забудьте заменить его на свой IP-адрес.

Теперь, чтобы подключиться к удаленному компьютеру, введите имя хоста или IP-адрес удаленного компьютера, к которому вы хотите подключиться, и нажмите < Enter >.

Теперь, чтобы подключиться к удаленному компьютеру, введите имя хоста

Вам будет предложено ввести имя пользователя и пароль для входа на удаленный компьютер.

Введите имя пользователя и пароль для входа на удаленный компьютер, к которому вы хотите подключиться, и нажмите OK, как показано на снимке экрана ниже.

Вы должны быть подключены к удаленному компьютеру.

Подключение к виртуальным машинам VMware через VMRC:

Для удаленного подключения к виртуальным машинам VMware vSphere или VMware ESXi можно использовать официальную программу VMware VMware Remote Console (VMRC).

Чтобы узнать больше о VMware Remote Console (VMRC) и о том, как установить ее в вашем любимом дистрибутиве Linux, ознакомьтесь со статьей Как установить VMRC (VMware Remote Console) в Linux.

Чтобы показать вам, как подключиться к виртуальной машине VMware ESXi с помощью VMware Remote Console (VMRC), я подготовил виртуальную машину VMware ESXi s01, как вы можете видеть на снимке экрана ниже.

Чтобы показать вам, как подключиться к виртуальной машине VMware

Чтобы подключиться к виртуальной машине VMware ESXi s01 с помощью VMware Remote Console (VMRC), щелкните Консоль, как показано на снимке экрана ниже.

Виртуальная машина VMware ESXi s01 должна быть открыта с помощью VMware Remote Console (VMRC), как вы можете видеть на снимке экрана ниже.

Подключение к виртуальным машинам Proxmox через SPICE

Для удаленного подключения к виртуальным машинам Proxmox VE вы можете использовать официальный KVM Virt Viewer. Virt Viewer использует протокол SPICE для удаленного подключения к виртуальным машинам KVM.

Чтобы узнать больше о KVM Virt Viewer и о том, как установить его в вашем любимом дистрибутиве Linux, ознакомьтесь со статьей Как установить Virt Viewer в Linux.

Чтобы показать вам, как подключиться к виртуальной машине Proxmox через протокол SPICE с помощью Virt Viewer, я подготовил виртуальную машину Proxmox s02, как вы можете видеть на скриншоте ниже.

Чтобы показать вам, как подключиться к виртуальной машине

Чтобы иметь возможность подключиться к виртуальной машине Proxmox с помощью Virt Viewer, вы должны установить Display Hardware виртуальной машины на SPICE (qxl), как показано на снимке экрана ниже.

После того, как вы настроили аппаратное обеспечение дисплея

Ваш браузер должен предложить вам открыть или сохранить файл конфигурации подключения Virt Viewer.

Вы должны быть подключены к виртуальной машине Proxmox, как вы можете видеть на скриншоте ниже.

Заключение

В этой статье я показал вам, как получить доступ к удаленному компьютеру в той же сети из Linux. Я показал вам различные методы, протоколы и инструменты для подключения к удаленным компьютерам с другого компьютера в той же сети. Также были рассмотрены текстовый протокол удаленного доступа SSH, графические протоколы удаленного доступа RDP и VNC, протокол удаленного доступа виртуальной машины Proxmox SPICE, а также VMware ESXi или VMware vSphere инструмент удаленного доступа виртуальной машины VMRC. Помимо этого, я показал вам, как использовать клиентские программы удаленного доступа Vinagre, RealVNC VNC Viewer, Virt Viewer и VMRC для подключения к удаленным компьютерам через поддерживаемые ими протоколы удаленного рабочего стола.

В повседневные задачи системных администраторов входит работа с сетями и с подключённым к ним оборудованием. Нередко роль рабочего места администратора играет компьютер, на котором установлен какой-нибудь дистрибутив Linux. Утилиты и команды Linux, о которых пойдёт речь в материале, перевод которого мы публикуем сегодня, включают в себя список инструментов различной сложности — от простых, до продвинутых, которые предназначены для решения широкого спектра задач по управлению сетями и по диагностике сетевых неполадок.


Утилита ping , как можно судить по её названию, используется для проверки связи между узлами сети, между компьютером, на котором её запускают, и другой системой. Эта утилита использует протокол ICMP, отправляя эхо-запросы, на которые отвечает удалённая система, получающая их. Использование ping , кроме того — это хороший способ проверки связности сети, проводимой в качестве первого шага диагностики сети при наличии неполадок. Команду ping можно использовать с адресами IPv4 и IPv6. Тут можно почитать подробности об IP-адресах и о работе с ними.

▍Примеры

Ping, кроме того, можно использовать для выяснения IP-адресов сайтов на основе их имён. Вот как это выглядит.



Использование ping для выяснения IP-адреса сайта по его имени

Traceroute

Traceroute — это приятная утилита, которая позволяет исследовать маршруты передачи данных между компьютерами. В то время как команда ping направлена на то, чтобы выяснить, можно ли установить связь между двумя узлами сети, traceroute даёт сведения об IP-адресах маршрутизаторов, через которые проходят данные от вашей системы до конечной, например — до веб-сайта или сервера. Команда traceroute обычно применяется на втором шаге диагностики сети, после команды ping .

▍Пример

Telnet

Утилита telnet позволяет связаться с удалённым компьютером по протоколу Telnet и взаимодействовать с ним, используя соответствующие команды.

▍Пример

Для организации сеанса Telnet-связи с другим компьютером используется следующая команда:

Netstat

Эта команда позволяет собирать сведения о сети и используется в ходе поиска и исправления сетевых неполадок, применяется для проверки данных о работе интерфейсов и портов, для исследования таблиц маршрутизации, для изучения информации о работе протоколов. Эта команда непременно должна присутствовать в арсенале системного администратора.

▍Примеры

Для того чтобы получить список всех портов, находящихся в режиме прослушивания, воспользуйтесь такой командой:


Следующая команда выводит сведения обо всех портах. Для того чтобы ограничиться только TCP-портами, нужно воспользоваться ключом -at , для того, чтобы получить данные об UDP-портах, используйте ключ -au .


Для просмотра таблиц маршрутизации воспользуйтесь такой командой:


Вот как выглядит результат выполнения этой команды.



Сведения о таблице маршрутизации

Вот вариант этой команды, выводящий статистику по протоколам:




Статистика по протоколам

Следующий вариант вызова netstat позволяет узнать сведения об отправленных и полученных пакетах (transmission/receive, TX/RX) по каждому интерфейсу:



Данные об отправленных и полученных пакетах

Nmcli

Утилита nmcli отлично подходит для управления сетевыми соединениями, для выполнения настроек и для решения других подобных задач. С её помощью можно управлять программой NetworkManager и модифицировать сетевые параметры различных устройств.

▍Примеры

Вот как с помощью nmcli вывести список сетевых интерфейсов:


Так можно вывести информацию по конкретному интерфейсу:


Следующий вариант вызова команды позволяет проверить подключение устройства к сети:




Примеры использования nmcli

Эта команда позволяет отключить заданный интерфейс:


А эта позволяет включить интерфейс:


Вот пример команды, которая добавляет VLAN-интерфейс с заданным VLAN-номером, IP-адресом и шлюзом к указанному интерфейсу:

Маршрутизация

Существует множество команд, которые можно использовать для проверки правил маршрутизации и их настройки. Рассмотрим самые полезные из них.

▍Примеры

Следующая команда показывает все текущие маршруты, настроенные для соответствующих интерфейсов:




Маршруты, настроенные для интерфейсов

Эта команда позволяет добавить в таблицу маршрутизации шлюз, используемый по умолчанию:


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


С помощью такой команды можно удалить запись о заданном маршруте из таблицы маршрутизации:


Вот примеры использования команды route .



Использование команды route

Вот команда, которая применяется для вывода текущей таблицы соседей. Кроме того, её можно использовать для добавления, изменения или удаления сведений о соседях:


Взглянем на примеры её использования.



Данные, полученные с помощью команды ip neighbor

Вот сведения о команде ip neigh



Сведения о команде ip neigh

Команда arp (ARP — это сокращение от Address Resolution Protocol, протокол определения адреса) похожа на ip neighbor . Утилита arp выводит данные о соответствии IP-адресов MAC -адресам. Вот как её использовать:


Вот пример её вызова.



Вызов команды arp

Tcpdump и Wireshark

Linux даёт в распоряжение администратора множество инструментов для захвата и анализа пакетов. Среди них, например, tcpdump , wireshark , tshark , и другие. Они используются для захвата сетевого трафика в передаваемых системой пакетах или в пакетах, получаемых ей. Это делает их весьма ценным инструментом администратора, помогающим в деле выяснения причин различных сетевых неполадок. Тем, кто предпочитает командную строку всем остальным способам общения с компьютерами, понравится tcpdump . Тем же, кто любит графические интерфейсы, можно порекомендовать wireshark — отличный инструмент для захвата и анализа пакетов. Утилита tcpdump — это встроенное в Linux средство для захвата сетевого трафика. Его можно использовать для захвата и вывода трафика с фильтрацией по портам, протоколам, и по другим признакам.

▍Примеры

Такая команда показывает, в режиме реального времени, пакеты с заданного интерфейса:


Пакеты можно сохранять в файл, воспользовавшись флагом -w и задав имя файла:


Вот пример использования tcpdump .



Использование tcpdump

Следующий вариант команды используется для захвата пакетов, приходящих с заданного IP системы-источника:


Так можно захватить пакеты, идущие на заданный адрес системы-приёмника:


Вот пример использования tcpdump для захвата пакетов для заданного номера порта, например, это может быть порт 53, 80, 8080, и так далее:


Здесь показано, как с помощью tcpdump захватывать пакеты заданного протокола, вроде TCP, UDP или других:

Iptables

Утилита iptables похожа на файрвол, она поддерживает фильтрацию пакетов, что позволяет управлять трафиком, пропуская или блокируя его. Диапазон возможностей этой утилиты огромен. Рассмотрим несколько наиболее распространённых вариантов её использования.

▍Примеры

Следующая команда позволяет вывести все существующие правила iptables :


Эта команда удаляет все существующие правила:


Следующие команды разрешают прохождение трафика с заданного номера порта к заданному интерфейсу:


Следующие команды разрешают loopback-доступ к системе:

Nslookup

Инструмент nslookup используется для получения сведений о назначении IP-адресов сетевым ресурсам. Его можно использовать и для получения сведений с DNS-серверов, например таких, как все DNS-записи для некоего веб-сайта (ниже мы рассмотрим соответствующий пример). На nslookup похожа утилита dig (Domain Information Groper).

▍Примеры

Следующая команда выводит IP-адреса вашего DNS-сервера в поле Server, и, ниже, выдаёт IP-адрес искомого сайта:


Такая команда показывает все доступные записи для заданного веб-сайта или домена:

Поиск неполадок

Вот набор команд и список важных файлов, используемых для идентификации сетевых неполадок.

▍Примеры

  • ss — утилита для вывода статистической информации о сокетах.
  • nmap <ip-address> — имя этой команды является сокращением от Network Mapper. Она сканирует сетевые порты, обнаруживает хосты, выясняет MAC-адреса и выполняет множество других задач.
  • ip addr/ifconfig -a — эта команда предоставляет сведения об IP-адресах и другие данные по всем интерфейсам системы.
  • ssh -vvv user@<ip/domain> — такая команда позволяет подключиться по SSH к другому компьютеру, используя заданный IP-адрес или доменное имя компьютера и имя пользователя. Флаг -vvv позволяет получать подробные сведения о происходящем.
  • ethtool -S <interface> — данная команда позволяет вывести статистические сведения по заданному интерфейсу.
  • ifup <interface> — эта команда включает указанный интерфейс.
  • ifdown <interface> — эта команда отключает указанный интерфейс.
  • systemctl restart network — с помощью этой команды можно перезагрузить системную сетевую подсистему.
  • /etc/sysconfig/network-scripts/<interface-name> — это — файл настройки интерфейсов, используемый для указания IP-адреса, сети, шлюза и других параметров для заданного интерфейса. Здесь можно задать использование интерфейсом DHCP-режима.
  • /etc/hosts — данный файл содержит сведения о соответствии хостов или доменов IP-адресам, настроенные администратором.
  • /etc/resolv.conf — в этом файле хранятся настройки DNS.
  • /etc/ntp.conf — этот файл хранит настройки NTP.

Итоги

В этой небольшой шпаргалке мы рассказали о сетевых инструментах Linux, предназначенных для системных администраторов. Надеемся, вам эти инструменты пригодятся.

Читайте также: