Не обижайтесь, просто необходимо очень точно формулировать версию ПО и, если требуется, спецификацию железа, перечень установленного ПО, настройку ЛВС … Это ведь не Windows, в котором вся комплектация ПО однотипна. В Linux как в трансформере. Поэтому термин Linux Mint Ubuntu Edition очень сильно бьёт по восприятию.
Увы, но при минимуме сведений дать готовый ответ часто не имеется возможности. Сетевые папки (а это несколько протоколов и портов) такая вещь, виновными в отсутствии видимости которых может быть как Windows, так и Linux. Самый простейший случай — это активный сетевой экран в Linux, который не дает прохождения пакетов на портах 135, 138, 139, 445. А как говорится во многих сообщениях этого форума, «телепатов здесь не имеется». Ну не способны даже желающие помочь закатить глаза, выпасть в нирвану, получить от единого информационного поля Вселенной ответ и выдать решение проблемы.
Вообще-то про ahavi и samba можно было бы предварительно прочитать что это такое и с чем это едят. Иначе будет разговор на разных понятийных терминологиях.
Вы, например, пробовали из Linux обратиться к сетевому узлу Windows не по его отображению в сетевом окружении (в котором он не отображается), а по IP-адресу? Любая проблема должна быть локализована, то есть необходимо найти проблемный участок. Ведь никто не станет из-за сломанного контакта выключателя перекладывать электропроводку во всей квартире. Вы, например, пишете «LMDE обзор сети работает». Но в какой именно LMDE: 2 или 3?
Возможно, что Mint 19 и изменения в Samba File Sharing [Перевод] или
https://archlinux.org.ru/forum/topic/18278/
наведут на какие-либо мысли …
Но это будет ещё не всё. Следующий вал вопросов возникнет тогда, когда общие папки увидите и попытаетесь к ним подключиться, но не получится. Поэтому, может быть есть возможность обойтись без общих папочек или использовать другие решения для обмена данными между Windows и Linux?
- Печать
Страницы: [1] 2 3 Все Вниз
Тема: сетевое окружение Windows В линуксе! (Прочитано 39619 раз)
0 Пользователей и 1 Гость просматривают эту тему.
AnrDaemon
sudo aptitude install samba
man smb.conf
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.
Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…
человек-иван
AnrDaemon
Читать и настраивать… Как минимум workgroup прописать правильно.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.
Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…
rapidsp
можно еще по форуму поискать.. тема обсосана over 9000 раз
Кунни
а дальше?)))
После установки самбы нужно подправить файлик с конфигурацией
sudo gedit /etc/samba/smb.conf
Вот простейший конфиг, выделенное заменить на своё
После чего можно рестартануть самбу (а проще перезагрузите комп, рестарт самбы в 9.10 и в 10.04 различен, а вы не указали, какая у вас Ubuntu)
Теперь лезем в «наутилус — сеть», но это долго.
ПРоще создать закладку в наутилусе с адресом типа smb://work/ где выделенное — название вашей раб группы.
А расшаривать папки на своем компе по прав кнопке по папке — доступ к файлам.
Пытаюсь отучить людей использовать фразу «не суть важно» (вместо «не суть», «не важно» или «не столь важно»)
человек-иван
то есть вообще всё заменить что там есть?
—————————————————————
у меня 10.4
Пользователь решил продолжить мысль 14 Мая 2010, 12:53:33:
А как наутилус запустить?
я его установил но немогу его найти. я просто линуксом пользуюсь с недели две, сори за нубство)))
« Последнее редактирование: 14 Мая 2010, 12:53:33 от человек-иван »
Linux Ubuntu 10.4
elFurion
Наутилус это типо проводник. Просто откройте любую папку в вашем компьютере и в боковой панели открывшегося окна найдите «сеть»
Пользователь решил продолжить мысль 14 Мая 2010, 09:12:48:
то есть вообще всё заменить что там есть?
выделенное заменить на своё
« Последнее редактирование: 14 Мая 2010, 13:14:35 от elFurion »
Кунни
то есть вообще всё заменить что там есть?
Да, можно конечно сделать предварительно копию исходного файла. Но вообще должно работать с моим конфигом, обеспечивая расшары на уровне венды (доступ по гостю без заморочек)
у меня 10.4
Значит, рестарт самбы будет
sudo service smbd restart
А как наутилус запустить?
я его установил но немогу его найти. я просто линуксом пользуюсь с недели две, сори за нубство)))
Не нубство, просто типичные вопросы новичка.
Наутилус, как вам уже сказали — это типа «мой компьютер» в венде.
Чтобы создать закладку, нажмите контрл+L при запущеном наутилусе (чтобы переключить адрес в виде кнопок на адрес в виде строки) и скопируйте туда smb://work/ где выделенное — название вашей раб группы. Если все правильно, вы увидите список компов вашей раб группы. После чего ЗАКЛАДКИ — ДОБАВИТЬ ЗАКЛАДКУ
Закладка появится слева, имя можно отредактировать (правда, в 10.04 у меня наутилус долго не хотел запоминать имя, которое я вводил, пришлось несколько раз править)
З.Ы. Если еще не читали, вот посетите эти два сайта, они для новичков специально
http://ubuntologia.ru/
https://help.ubuntu.ru/manual/%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5?redirect=1
Пытаюсь отучить людей использовать фразу «не суть важно» (вместо «не суть», «не важно» или «не столь важно»)
человек-иван
Блин, всё равно ничего не работает
Пишет: «Не удалось показать «smb://workgroup/».
Ошибка: Не удалось получить список доступных на сервере ресурсов
Выберите другой режим просмотра и попробуйте ещё раз.»
« Последнее редактирование: 14 Мая 2010, 14:33:39 от человек-иван »
Linux Ubuntu 10.4
nekimus
Ну для начала два компа должны быть соединены в локалку и пинговаться. Потом на винде щелкаешь правой кнопкой по файлам и ставишь галочку в них «общий доступ». Теперь на убунте настраиваешь самбу. Потом в файле smb.conf заменяяешь след строки;
netbios name = ИМЯ КОМПА(тут я так понял имя компа пишешь))
server string = ОПИСАНИЕ(я так понял не обяхательо)
workgroup = РАБОЧАЯ ГРУППА(здесь надо написать рабочую группу Windows. для этого не помню точно, но вроде правой кнопкой по «Мой компьютер» щелкаешь и там ищешь. Например у меня рабочая группа была «MsHOME»)
interfaces = 127.0.0.1/8 eth0 (здесь пишешь либо ип адрес локального компьютера с виндоус, либо указываешь соединение, по которому два компа соединены).
Я хз если чесно, но вроде бы я так понял все это)). Я сделал все так, как сам написал + там еще че то делал методом тыка, и у меня заработало)
oermolaev
доступ по гостю без заморочек
При расшаривании папки в Ubuntu галочка «Гостевой доступ» неактивна. И доступа в неё из Windows нет — видимо по этому?
Что делать?
gregory5
Что делать?
поставить всё же галочку
ведь логично же
sudo сможет это сделать
oermolaev
я бы поставил, так поле не активно же..
gregory5
яж и сказал, что sudo сможет вам помочь в этом
sudo nautilus в терминале
ток где не надо не лазте
- Печать
Страницы: [1] 2 3 Все Вверх
Содержание
- Локальная сеть между Ubuntu Linux и Windows
- Динамическое присвоение адресов
- Статическое присвоение адресов
- Настройка сетевых интерфейсов
- Windows
- Ubuntu Linux
- Настройка доступа к файлам
- Windows
- Ubuntu Linux
- Общий доступ к папке
- Дополнительные настройки Самба (Samba)
- Проблемы с доступом на локальной расшаренной папке Linux
- Как расшарить папку и задать разрешения и права доступа в Linux
- Доступ к сетевым принтерам
- Windows
- Ubuntu Linux
- Ошибка Ubuntu не видит сеть Windows
- Почему Ubuntu не видит сеть Windows?
- 1. Установить Samba
- 2. Рабочая группа
- 3. Версия протокола
- 4. Правильный порядок разрешения имён
- 5. Не тот интерфейс
- 6. Отладка
- 7. Проблема в GVFS
- 8. Подключение напрямую
- 9. Общий доступ в Windows
- Выводы
- Утилита ss в Linux
- Общая информация
- Опции утилиты ss
- Примеры использования
- Мониторинг сетевых подключений
- Просмотр статистики статистики сетевых подключений
- Фильтрация по протоколу
- Фильтрация по состоянию соединения
- Фильтрация по адресу и номеру порта
- Выводы
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux
- Книга по SMB и Samba на русском языке. Оглавление
- Samba — это SMB для Linux
- Как в Linux увидеть все компьютеры Windows с совместными ресурсами
- Как в Linux вывести доступные по сети ресурсы (совместные папки и принтеры Windows)
- Как подключиться к сетевой папке Windows из Linux
- Подключение к SMB папке, требующий авторизации
- Команды SMB в Linux
- Выводит все доступные команды:
- Переход в другой каталог (смена текущей рабочей директории) на удалённой системе:
- Удаление файла в шаре:
- Показ файлов и папок в текущей папке:
- Скачать файлы с общей папки:
- Выгрузка файла на общую папку:
- Включение и отключение рекурсии
- Показ всей возможной информации о файле:
- Копирование файла на сервере:
- Создание директории:
- Удаление директории:
- Удаление файлов
- Переименование файлов:
- Ссылки
- Выход с сервера:
- Вывод истории команд текущей сессии:
- Просмотр содержимого текстового файла:
- Показ текущей рабочей директории:
- Создание и извлечение архивов tar
- Установка таймаута операций:
- Установка нового соединения:
- Закрытие сессии, выход:
- Вывод списка открытых подключений:
- Отображение текущего активного подкючения:
- Изменение удалённой директории (переход на одну папку выше):
- Выполнение команд в локальной системе:
- Автоматическое выполнение команд в сетевой папке Windows
- Как смонтировать общую папку Windows/Samba в Linux
- Настройка автоматического монтирования сетевой папки в Linux
- Как создать общую сетевую папку в Samba
- Связанные статьи:
- Рекомендуется Вам:
- 13 комментариев to SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux
Локальная сеть между Ubuntu Linux и Windows
Настройка сети
Даже небольшая сумма может помочь написанию новых статей 🙂
Или поделитесь ссылкой на эту статью со своими друзьями.
В этой статье не будет рассмотрен аппаратный аспект такой сети поскольку нет ничего сложного в том, чтобы при помощи свитча и кабелей соединить компьютеры между собой. В дальнейшем подразумевается, что на физическом уровне сеть установлена и функционирует правильно, то есть будет описана лишь программная настройка сети.
Первое, что нужно сделать это выбрать каким образом компьютерам в сети будут присваиваться IP-адреса. Есть два способа, у каждого из которых есть достоинства и недостатки.
Динамическое присвоение адресов
Недостаток в том, что нужно будет на одном из компьютеров устанавливать DHCP сервер, либо использовать устройство типа роутера со встроенным DHCP сервером. При этом сеть на компьютерах будет недоступна, если этот компьютер или роутер будет выключен или выйдет из строя.
Статическое присвоение адресов
В этом случае IP-адреса на каждом компьютере указываются вручную. Достоинства:
Недостаток в том, что нужно будет помнить какие адреса уже используются в сети, чтобы при включении нового компьютера не дать ему уже используемый адрес. Впрочем в небольшой сети не трудно посмотреть адрес на каждом компьютере.
Лично я сторонник статических адресов в тех сетях где состав сети небольшой (до 7-8 компьютеров) и при этом если в эту сеть не добавляются постоянно новые компьютеры (например ноутбуки). Далее в этой статье будет подразумеваться именно статический способ присвоения IP-адресов.
Настройка сетевых интерфейсов
Windows
Кроме этого сетевому интерфейсу нужно присвоить IP-адрес. Это делается через свойства «Протокол Интернета (TCP/IP)», в следующем апплете:
Общепринято использовать для локальных сетей диапазон адресов 192.168.x.x. Поле «Основной шлюз» нужно заполнять только если этот компьютер получает Интернет с другого компьютера или с модема-роутера и в этом случае там должен быть адрес «раздатчика» Интернет.
Кроме этого, для того, чтобы сеть между компьютерами Windows работала, необходимо включить учетную запись «Гость» на каждом из компьютеров и убедиться в том, что на каждом компьютере:
Имя рабочей группы и компьютера можно узнать, а также изменить через апплет «Система»:
Если используется брандмауэр Windows, то нужно разрешить сетевые соединения для доступа к файлам и папкам:
Аналогичное правило должно быть создано в том случае если используется другой файерволл.
Ubuntu Linux
В Ubuntu Linux параметры сетевых интерфейсов можно определить через через апплет «Сеть»:
И затем в свойствах сетевого интерфейса:
Настройка доступа к файлам
Windows
В отдельных статьях этот вопрос раскрывается более подробно:
Примечание. В Windows 7, 8 и 10 настройка доступа к файлам выполняется немного иначе чем на Windows XP. Для этих версий Windows есть отдельные статьи, ссылки указаны выше.
Если нужно, чтобы на компьютере с установленной ОС Windows были доступны через сеть какие-то файлы или принтер, необходимо эти файлы или принтер «расшарить» то есть разрешить доступ к ним других пользователей. Это делается через апплет свойств папки или принтера. Вот так этот апплет выглядит в Windows XP:
На вкладке «Безопасность» нужно добавить группу «Все» и дать ей полный доступ к папке. Это нужно для того, чтобы по сети в этой папке можно было создавать и редактировать файлы. Простейший полный и анонимный доступ к папке.
Ubuntu Linux
Общий доступ к папке
Для того, чтобы сделать файлы и папки Ubuntu доступными через сеть нужно в Наутилусе найти нужную папку, затем нажать правую кнопку мыши и затем открыть апплет «Свойства», а на нем вкладку «Общий доступ»:
Теперь эта локальная (для Линукс) папка будет доступна по сети.
Дополнительные настройки Самба (Samba)
Samba это программа, которая предоставляет доступ к файловым ресурсам Linux для компьютеров Windows. Таким образом что компьютер Linux в локальной сети выглядит так же как и компьютер Windows. На Ubuntu Samba устанавливается и запускается автоматически, если вы включили общий доступ к какой-либо папке через Наутилус (как это описано выше).
Для того, чтобы обеспечить более удобный доступ к сетевой папке Линукс со стороны Windows, без запросов паролей и проблем доступа, нужно еще дополнительно настроить Самбу. Для этого редактируется файл /etc/samba/smb.conf.
Гостевой полный доступ к сетевой папке на Линукс
Секция [shared resource name]
Примечание: параметры directory mask и create mask «заставляют» самбу давать полные права для всех на те файлы, которые будут созданы в этой папке через сеть. Это необходимо для тог, чтобы обеспечить доступность файлов и папок для всех пользователей локальной сети.
Такие параметры позволят «спокойно» работать с расшаренными на Linux файлами через сеть не мучаясь с авторизацией.
Можно здесь добавить еще два параметра: «force user = username» и «force group = usergroup«. В этом случае, для всех созданных по сети файлов и папок будет установлен владелец username и группа владельца usergroup. Значения username и usergroup должны совпадать с именем и группой локального пользователя Линукс.
После расшаривании папки через Наутилус, нужные параметры в секциях [global] записываются автоматически. Но параметры directory mask и create mask нужно добавлять вручную.
Проблемы с доступом на локальной расшаренной папке Linux
После всех этих настроек тем не менее возможна проблема с доступом к некоторым файлам в этой папке через сеть. Такая проблема может возникнуть если локальный пользователь Линукс, локально откроет эту папку и создаст в ней новый файл. Этот файл другие пользователи сети не смогут редактировать. Поскольку права на него будут установлены не такие как все остальные файлы в папке (не 666).
То же самое произойдет если локальный пользователь Линукс скопирует в эту папку файлы из другой папки на компьютере Линукс, либо например с внешнего устройства.
Есть разные способы решения этой проблемы.
Самый технически простой заключается в том, что локальный пользователь Линукс открывал эту папку тоже через сеть. Дело в том, что графические файловые менеджеры (Проводники) позволяют через сетевое окружение открывать не только папки на других компьютерах сети, но и расшаренные папки на своем собственно компьютере!
Если локальный пользователь Линукс откроет свою расшаренную папку через сетевое окружение, то все его операции в папке будут «сетевыми», то есть при создании новых файлов эти файлы получат атрибуты доступа в соответствии с настройками Самба.
Рабочая группа Windows
Если название рабочей группы на компьютерах Windows отличается от «WORKGROUP», тогда нужно изменить значение параметра workgroup в файле /etc/samba/smb.conf. Вместо значения «WORKGROUP» там нужно записать то имя группы, которое используется на компьютерах Windows. По умолчанию для самбы значение параметра workgroup = WORKGROUP.
Как расшарить папку и задать разрешения и права доступа в Linux
Еще одна статья в которой подробно рассмотрен вопрос о том как в Linux настроить разрешения и права доступа для того чтобы расшарить папку для анонимного доступа по локальной сети (доступ без пароля).
Доступ к сетевым принтерам
Windows
Если принтер подключен к компьютеру с ОС Windows, нужно разрешить сетевой доступ к нему. Это делается точно так же как и в случае с файлами, через апплет «Свойства».
Ubuntu Linux
Поиск такого принтера выполняется нажатием кнопки «Browse».
Иван Сухов, 2011, 2015, 2017 г.
Даже небольшая сумма может помочь написанию новых статей 🙂
Или поделитесь ссылкой на эту статью со своими друзьями.
Источник
Ошибка Ubuntu не видит сеть Windows
Вы, наверное, не раз сталкивались с проблемой, что Ubuntu не видит сеть Windows. Такая проблема характерна для многих дистрибутивов с окружением Gnome. Во многом причиной этому был баг в GVFS, который до сих пор толком не исправлен, поэтому работает эта функция далеко не всегда и далеко не во всех дистрибутивах.
В этой статье мы рассмотрим что делать если Ubuntu не видит шары Windows, как к ним всё таки подключится и можно ли решить проблему.
Почему Ubuntu не видит сеть Windows?
Как я уже написал выше Nautilus для подключения и просмотра общих папок Windows использует виртуальную файловую систему gvfs. А та, в свою очередь использует библиотеку libsmbclient для получения необходимых данных. Поэтому мы можем попытаться исправить ситуацию переопределив некоторые параметры в /etc/samba/smb.conf. Но работает это далеко не всегда.
1. Установить Samba
Если файловый сервер Samba у вас не установлен, то его надо установить для того чтобы был создан файл /etc/samba/smb.conf с параметрами по умолчанию. Они потом будут использоваться библиотекой libsmbclient и самой утилитой smbclient, которую вы можете применять для тестирования. Для установки выполните:
sudo apt install samba
Проверьте конфигурационный файл Samba на ошибки с помощью такой команды:
2. Рабочая группа
По умолчанию используется рабочая группа WORKGROUP. Убедитесь, что ваша рабочая группа имеет именно это имя, также убедитесь, что в /etc/samba/smb.conf задано правильное имя рабочей группы в параметре workgroup:
sudo vi /etc/samba/smb.conf
3. Версия протокола
В современных системах Windows для общего доступа к папкам используется файловая система CIFS, использующая современные версии протоколов SMB2 и SMB3. Эти протоколы не поддерживают обзор доступных общих папок так, как это ожидает получить Nautilus. Для того чтобы всё работало надо использовать старый протокол NT1. Чтобы его включить добавьте параметр client max protocol после параметра workgroup:
client max protocol = NT1
После этого сохраните изменения и перезагрузите компьютер и проверьте.
4. Правильный порядок разрешения имён
Неверный порядок разрешения сетевых имен тоже может стать проблемой. Чтобы исправить его найдите в smb.conf параметр и приведите его к такому виду:
name resolve order = bcast lmhosts host wins
Здесь первым используется bcast, широковещательные сообщения, которые рассылаются по вашей локальной сети и ищут компьютеры с общими папками.
5. Не тот интерфейс
Если в вашем компьютере несколько сетевых интерфейсов, возможно smbclient пытается использовать не тот интерфейс. Чтобы посмотреть список интерфейсов используйте команду:
Затем найдите в /etc/samba/smb.conf параметр interface и замените в его значении eth0 на имя вашего интерфейса, который обеспечивает связь с нужной локальной сетью. Например на enp0s8:
interfaces = 127.0.0.0/8 enp0s8
После этого надо перезапустить службы Samba:
sudo systemctl restart smbd
sudo systemctl restart nmbd
6. Отладка
Если сеть Windows всё ещё не работает, вы можете попытаться отлаживать GVFS чтобы понять где именно возникает проблема и в чём её суть. Для этого надо завершить текущий сервер GVFS и запустить свой в терминале с включённой опцией отладки. Для этого выполните:
pkill gvfs; pkill nautilus
Затем откройте Nautils и войдите в сетевое окружение, сеть Windows. При этом в терминале будут выводится сообщения об ошибках работы службы. Вы можете использовать эти сообщения чтобы искать информацию в Google или попросить помощи на форумах.
7. Проблема в GVFS
Баг в GVFS, о котором я писал выше наблюдался для Samba версии 4.8 и ниже. Если сервер поддерживает протокол более высокого уровня, то клиент пытается использовать этот протокол, например SMB2 или SMB3, но на этих протоколах не работает отображение доступных ресурсов. Если у вас именно эта проблема, то для полного решения придется ждать обновления или использовать обходное решение описанное ниже.
8. Подключение напрямую
Даже если у вас не работает обнаружение сетевых ресурсов Windows, вы все ещё можете подключится к нужному компьютеру и получить с него файлы. Откройте пункт Другие места на левой панели Nautilus. Внизу окна вы увидите надпись Подключится к серверу введите smb://адрес_сервера в поле слева и нажмите Enter:
После этого система предложит ввести имя пользователя и пароль для доступа к общему ресурсу. Этот пользователь должен реально существовать на машине, к которой вы собираетесь подключится.
Введите пароль и вы увидите доступные общие папки:
9. Общий доступ в Windows
Убедитесь, что в Windows общий доступ был включён. Если общий доступ отключен, то вы не сможете никак получить доступ к ресурсам. Откройте проводник и перейдите в пункт Сеть. Если сетевой доступ отключён, то система выдаст соответствующее предупреждение:
Кликните по нему чтобы включить общий доступ, затем выберите Включить сетевое обнаружение и общий доступ к файлам.
После этого система ещё раз спросит надо ли разрешить доступ для всех общественных сетей. Ответьте утвердительно:
После этого вы сможете получить доступ к общим ресурсам этого компьютера.
Выводы
В этой статье мы кратко рассмотрели почему Ubuntu не видит сеть Windows, а также как исправить эту проблему. Если проблему с сетевым обнаружением устранить не удается, вы всегда можете попробовать подключится вручную. Это не решает основную проблему, но позволяет получить нужные файлы. Вы знаете другие способы решения? Поделитесь ими в комментариях!
Источник
Утилита ss в Linux
Иногда бывает необходимо посмотреть какие сетевые подключения Linux открыты, какие IP адреса используются или какие порты прослушиваются. Раньше для таких целей использовалась утилита netstat. Её, без сомнения, знают все системные администраторы и специалисты по безопасности. Но она больше не поставляется по умолчанию в новых дистрибутивах. Вместо неё используется новая утилита под названием ss.
Netstat сканирует директорию /proc для получения необходимой информации, но в новых версиях ядра была реализована специальная подсистема для мониторинга сети в Linux. Её и использует ss, с помощью этой утилиты вы можете получить больше информации о сетевых подключениях и работает она гораздо быстрее.
Общая информация
$ ss опции [ фильтр_состояния] [фильтр_адреса]
Для удобства вывод команды ss можно фильтровать с помощью grep:
$ ss опции | grep шаблон
Опции указывает различные параметры отображения и фильтрации информации. Фильтры по состоянию и адресу очень интересная вещь, они позволяют выполнять мониторинг сетевых подключений в Linux, только тех что нужно. Например, только открытых, закрытых или находящихся на этапе подключения. Подробнее мы рассмотрим это в конце статьи.
Опции утилиты ss
Для сетевых подключений в Linux с помощью утилиты ss можно использовать такие опции:
Кроме того, можно вывести сокеты только нужного протокола:
Примеры использования
А теперь давайте рассмотрим примеры использования утилиты ss Linux. Возможно, из описания опций вы мало что поняли, но с примерами все встанет на свои места.
Мониторинг сетевых подключений
Сначала смотрим все сетевые подключения:
Посмотрим только TCP соединения:
Теперь только Unix:
По умолчанию утилита не пытается определять имена хостов через dns, но можно ее попросить делать это опцией -r:
Обратная опция -n, не будет выполняться не только dns резолвинг, но и определение протоколов портов, зато мониторинг сети в Linux работать будет быстрее:
Теперь просмотрим только прослушиваемые tcp сокеты.
Здесь мы видим только имена служб, это не всегда удобно, указав опцию n, мы получим номера портов. Так же само можно посмотреть прослушиваемые udp сокеты:
Также мы можем попытаться узнать название и PID процесса, использующего сокет:
Просмотр статистики статистики сетевых подключений
Для просмотра статистики по использованию сетевых подключений наберите:
Фильтрация по протоколу
Мы можем отображать только нужный нам протокол. Например только ipv4:
Так же само можно отобразить только соединения ipv6:
Фильтрация по состоянию соединения
В синтаксисе команды мы описали два дополнительных параметра. Фильтрация состояния и фильтрация по адресу. Рассмотрим теперь как ими пользоваться. Сокет TCP может находиться в одном из нескольких состояний. Например, так утилита ss linux выведет только подключенные сокеты.
Или сокеты в состоянии ожидания:
В параметр state можно передать одно из следующих значений:
Не все состояния подключений можно увидеть просто выполнив команду. Например, syn-sent и syn-recv вряд ли получиться словить, потому что соединения находятся в этом состоянии очень короткое время. Для их отображения удобно использовать команду watch:
После запуска команды откройте любой сайт в браузере. Вы увидите как появится одно или несколько соединений на несколько секунд.
Фильтрация по адресу и номеру порта
Кроме фильтрации по состоянию, tcp сокеты можно фильтровать по адресам или портам соединений.
Например, отберем все сетевые подключения linux с портом источником или приемником ssh, то есть все входящие и исходящие соединения ssh:
Или сокеты с портом назначения 80 или 443:
Такой синтаксис тоже будет работать:
Еще несколько примеров фильтрации:
Фильтрация по адресу:
Фильтрация по адресу и подсети:
И по адресу и порту:
Если вы хотите фильтровать сетевые соединения по порту, перед портом ставьте двоеточие:
Можно использовать такие операторы сравнения:
Выводы
Вот и всё. Основную информацию о том, как выполнять мониторинг сети в Linux с помощью утилиты ss рассмотрели. Если вам нужно больше информации и примеров смотрите документацию по утилитам набора iproute.
Источник
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux
Книга по SMB и Samba на русском языке. Оглавление
Samba — это SMB для Linux
SMB — это протокол, технология, которая позволяет создать файловые сервер. В первой части я говорил, что в Linux функции сервера и клиента SMB выполняет Samba. Это не совсем так, на самом деле, в настоящее время Samba не только реализует возможности SMB, но и дублирует функционал сервера Доменов Active Directory (технология Windows, позволяющая управлять множеством компьютеров — кстати, про Active Directory скоро будет большой материал на HackWare.ru).
Далее мы будем говорить про 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
Доступны следующие интерактивные команды:
Выводит все доступные команды:
Для показа справки по определённой команде, выполните
Переход в другой каталог (смена текущей рабочей директории) на удалённой системе:
Переход в другую директорию на локальной системе:
Имеется псевдоним этой команды:
И ещё одна команда со схожей функцией:
Эта команда рекурсивно удалить все совпавшие с шаблоном имени файлы и директории.
Показ файлов и папок в текущей папке:
Имеется псевдоним этой команды:
И ещё один, даже более короткий псевдоним:
Скачать файлы с общей папки:
Для повторного скачивания файла:
Для скачивания всех файлов, чьём имя совпадает с шаблоном:
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос на скачивание. Если вы действительно хотите его скачать, то нажмите клавишу «y»:
Также имеется команда newer, которая скачивает файлы (mget), которые новее, чем указанный локальный файл. Используется она так:
Выгрузка файла на общую папку:
Следующая команда скопирует локальный файл в шару:
Повторная закачка файла:
Для закачки всех файлов, чьём имя совпадает с шаблоном:
К примеру, чтобы закачать в шару все файлы (из локальной текущей рабочей директории), которые имеют расширение *.cap, нужно запустить команду:
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос подтверждения, если вы действительно хотите его закачать, то нажмите клавишу «y»:
Включение и отключение рекурсии
Можно включать и отключать рекурсивный режим для mget и mput.
Показ всей возможной информации о файле:
В выводимой информации можно увидеть альтернативное (DOS) имя, временные метки (дата создания, доступа, записи и изменения файла), атрибуты.
Копирование файла на сервере:
Создание директории:
Удаление директории:
Удаление файлов
Следующая команда удалит все совпавшие с МАСКОЙ файлы:
Псевдоним команды для удаления файлов:
С помощью команды wdel можно удалить все совпавшие файлы по подстановочным символам:
Переименование файлов:
Ссылки
Создание жёсткой ссылки Windows:
Создание жёсткой ссылки UNIX:
Создание символьной ссылки UNIX:
Выход с сервера:
Вывод истории команд текущей сессии:
Просмотр содержимого текстового файла:
Показ текущей рабочей директории:
Другой вариант показа текущей рабочей директории — это команда cd без аргументов:
Создание и извлечение архивов tar
Программа tar используется для объединения нескольких файлов в один файл. Объединение происходит без сжатия. Для того, чтобы несколько файлов из сетевой папки объединить в архив и скачать на локальную систему запустите команду вида:
К примеру, я хочу скачать файлы all-databases.sql besside.log ChromeSetup.exe из совместной папки и объединить их в архив all.tar, тогда моя команда следующая:
Если нужно разархивировать файл на локальной системе и всё его содержимое отправить на удалённую общую папку, то запустите команду вида:
К примеру, я хочу отправить содержимое архива 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. Поэтому при монтировании можно либо:
В общем, в любом случае настройте в роутере или в самой Windows постоянный локальный IP.
Если вы хотите настроить преобразование имён с помощью файла /etc/hosts, то откройте его:
И добавьте туда запись вида
Например, у меня IP_АДРЕС это 192.168.0.101, а именем компьютера является HACKWARE-MIAL, тогда я добавляю следующую запись:
Пингуем по имени компьютера Windows, чтобы убедиться, что всё сработало:
Теперь нам нужно создать точку монтирования — папку, где появятся файлы из шары. Я создаю папку /mnt/share:
Чтобы не возникало проблем с правами доступа, папка, куда монтируется шара (например, /mnt/share/), должна принадлежать текущему пользователю Linux — если вы создавали папку без sudo, то она уже принадлежит обычному пользователю. Но если вы создавали папку с sudo (например, иначе это невозможно сделать в /mnt/), то вам нужно поменять её владельца командой вида::
Например, чтобы поменять владельца папки /mnt/share/ на текущего пользователя:
Теперь для монтирования сетевой шары Windows нужно запустить команду вида:
В этой команде вы должны вставить свои значения для
Значение других элементов команды:
К примеру, путь до сетевой шары у меня //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 как сетевой диск, как это было показано в первой части.
Связанные статьи:
Рекомендуется Вам:
13 комментариев to SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux
просто фантастика. я столько шлака прочитал за последние несколько дней о том как получить доступ с линукса к расшареным папкам в винде. спасибо огромное за проделанную работу.
есть правда пара моментов:
1. при открытии файлов из расшареных папок винды в линуксе отсутствую права доступа,
тем не менее огромное спасибо.
Приветствую! По поводу второй проблемы — не происходит автоматическое монтирование. Одной из причин может быть то, что когда обрабатываются записи в файле /etc/fstab, ещё не выполнено подключение к сети — в этом случае монтирование завершится неудачей.
Но вы можете использовать опцию _netdev, которую можно указать в файле /etc/fstab, эта опция означает, что файловая система находится на устройстве, которому требуется доступ к сети (используется для предотвращения попыток системы смонтировать эти файловые системы до тех пор, пока в системе не будет включена сеть).
И ещё, конечно, Windows должен быть уже включен на момент загрузки Linux, поскольку монтирование из /etc/fstab срабатывает при загрузке системы.
Вы также можете посмотреть причины неудачного монтирования командой:
Папка, куда монтируется шара (например, /mnt/share/), должна принадлежать текущему пользователю Linux — если вы создавали папку без sudo, то она уже принадлежит обычному пользователю. Но если вы создавали папку с sudo (например, иначе это невозможно сделать в /mnt/), то вам нужно поменять её владельца командой вида::
Например, чтобы поменять владельца папки /mnt/share/ на текущего пользователя:
Здравствуйте. Огромное спасибо за развернутый ответ по моим вопросам.
1. по поводу поводу доступа к файлам: да действиетльно проблема в правах на линуксе. создал папки от обычного пользователя в них смонтировал шары и все открывается и редактируется(ну по крайней мере то что открывал и редактировал).
2. по поводу автоматического монтирования: да действительно похоже что проблема в подключении к сети. Wicd долго ищет сеть и подключается к ней, поэтому навреное и не монтируются папки автоматически.
назрел еще один вопрос: возможно ли сделать макрос или скрип для автоматической настройки параметров для доступа к удаленным папкам? это нужно для того чтобы настроить рабочий комп: не лазить в консоли с ковыряниями а просто файлик запустить чтобы он по сценарию и папки создал и смонтировал их и настройки сделал.
сейчас я все отрепетировал на тестовом ноуте и все работает в удовлетворительном режиме. Теперь мне надо те же манипуляции сделать с рабочим компом. есть ли смысл искать информацию по этому вопросу?
Приветствую! Не совсем понял, вам нужно выполнить одноразовое действие? Если так, ИМХО, быстрее получится настроить руками, чем программировать скрипт. В любом случае, как минимум, можно всё, что вы вводите в консоли, поместить в файл скрипта и запускать его вручную или добавить в автозагрузку. Для добавления строк в файл /etc/fstab можно использовать echo вместе с sudo. То есть заскриптовать можно абсолютно любые действия, но на отладку скрипта уйдёт больше времени, чем выполнить один раз вручную.
Если затруднение вызывают консольные текстовые редакторы (чтобы добавить строку в /etc/fstab), то самый простой из них это nano, или если доступ к удалённой системы осуществляется по SSH, то можно смонтировать удалённую файловую систему (без SMB, нужен только SSH) и работать с удалённой файловой системой как с локальной, подробности в «Сетевая файловая система SSHFS».
Здравствуйте. Благодарю за ответ.
Со скриптом удалось разобраться еще быстрей чем с доступом к папкам виндос.
Сделал самый простейший скрипт скопировав в него команды из вашей статьи. Теперь настройка доступа в линуксе занимает 15 сек. Спасибо за вашу работу!
Приветствую! Эти утилиты находятся в пакете smbclient. Статью я поправил.
спасибо, утилиты установились, но:
имя рабочей группы проверил.
В вашем сообщении сказано, что на компьютере с Windows отключена SMB1.
Было бы неплохо, если вы начали чтение с первой части, там среди прочего есть:
Опционально: имеется несколько версий протокола SMB и по умолчанию первая версия отключена в современных системах Windows. Samba для некоторых функций использует первую версию, поэтому если у вас смешенная сеть с Linux, либо имеется устаревшее оборудование, которое поддерживает только SMB 1, то вы можете включить поддержку этой версии протокола. Для этого запустите cmd с правами администратора. Проверьте:
Но, на самом деле, почти с каждым большим обновлением Windows, Microsoft отключает разные вещи связанные с SMB в результате компьютеры в локальной сети перестают видеть друг друга и/или не получается подключиться к сетевым папкам, пока не включишь отключенные протоколы — есть мнение, что таким «незамысловатым» способом они продвигают свой OneDrive. Это я к тому, что хотя мои статьи довольно свежие и я всё перепроверял в последних версиях Windows, даже в них уже могло что-то устареть. Поэтому если возникнут ошибки — пишите, попытаемся разобраться и обновить материал в статьях.
Источник
Вы, наверное, не раз сталкивались с проблемой, что Ubuntu не видит сеть Windows или Windows не видит сетевую шару Linux. Такая проблема характерна для многих дистрибутивов с окружением Gnome. Ситуация довольно неоднозначная, раньше причиной этому был баг в GVFS, потом появилось ещё несколько осложняющих дело факторов.
В этой статье мы рассмотрим что делать если Ubuntu не видит шары Windows или Samba, как к ним всё таки подключится и можно ли решить проблему, сделать так чтобы Nautilus и Dolphin начали всё таки видеть сетевые ресурсы.
Содержание статьи
- Почему Ubuntu не видит сеть Windows или Samba?
- Настойка сервера Samba
- Настройка Windows
- Настройка клиента
- Выводы
Почему Ubuntu не видит сеть Windows или Samba?
Нужно разобраться почему Ubuntu не может увидеть сеть Windows. Начиная с Windows 10 в компании Microsoft решили отказаться от старого протокола SMB1 и использовать только SMB2 и SMB3. Но в этих протоколах нет сетевого обнаружения. Для сетевого обнаружения в Windows теперь используется новый сервис WS-Discovery. В Nautilus для отображения сетевых ресурсов используется либо avahi либо протокол SMB1. Поэтому увидеть шару Windows не получится, не включив обратно устаревший протокол в реестре. Windows по умолчанию шары Samba тоже видеть не будет, потому что новый WS-Discovery в Samba не поддерживается. Ещё в 2015 году были предложены патчи для Samba добавляющие эту функциональность, но разработчики решили, что оно им не нужно. Поэтому если вы хотите чтобы Windows видела Samba, нужно отдельно установить сервис WSDD.
Но это ещё не всё. Начиная с версии Samba 4.11 разработчики решили, что они ничем не хуже Microsoft и отключили по умолчанию поддержку протокола SMB1. Теперь Nautils и Dolphin перестали видеть не только Windows шары, но и Linux тоже. Решается проблема либо установкой на Samba сервер Avahi, либо включением поддержки старого протокола SMB1 на сервере Samba.
Настойка сервера Samba
1. Включение протокола SMB1
Для того чтобы активировать протокол SMB1 в Samba необходимо добавить такие строчки в /etc/samba/smb.conf в секцию global:
sudo vi /etc/samba/smb.conf
server min protocol = NT1
client min protocol = NT1
min protocol = NT1
После этого надо перезапустить Samba.
sudo systemctl restart smbd
sudo systemctl restart nmbd
Хочу обратить ваше внимание, что у меня всё заработало только после того как я перезагрузил и сервер и клиент. Видимо что-то где-то кэшируется.
2. Настройка имени хоста
Имя хоста вашего компьютера, выводимое командой hostname должно совпадать со значением в файле /etc/hosts и со значением параметра netbios name в файле /etc/samba/smb.conf. Например:
hostname
cat /etc/samba/smb.conf
Регистр букв не имеет значения.
3. Установка Avahi
Если предыдущий способ не поможет, то установка Avahi должна помочь. Samba не будет отображаться в сетях Windows, но зато появится в сетевом окружении в Nautilus. Для установки Avahi выполните:
sudo apt install avahi-daemon avahi-utils
После этого сервис стоит запустить и добавить в автозагрузку:
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
Проверить доступные сервисы можно командой:
avahi-browse --all
Среди них должна быть ваша шара, обозначенная как Microsoft Windows Network local.
4. Установка WSDD
Сервис WSDD нужен для того чтобы вашу шару было видно из Windows. Можно использовать сервис wsdd2 из этого репозитория. Его надо собрать из исходников, но в этом нет ничего сложного. Сначала склонируйте репозиторий:
git clone https://github.com/Andy2244/wsdd2.git
Затем перейдите в папку с проектом:
cd wsdd2
Выполните make для сборки:
make
Затем установите программу, она только скопирует исполняемый файл и службу systemd в нужные директории:
sudo make install
Осталось запустить службу:
sudo systemctl daemon-reload
sudo systemctl enable --now wsdd2
Теперь Windows сможет видеть ваш сервер Samba. Таким образом если всё сделать правильно, то все всех будут видеть.
1. Общий доступ в Windows
Убедитесь, что в Windows общий доступ был включён. Если общий доступ отключен, то вы не сможете никак получить доступ к ресурсам. Откройте проводник и перейдите в пункт Сеть. Если сетевой доступ отключён, то система выдаст соответствующее предупреждение:
Кликните по нему чтобы включить общий доступ, затем выберите Включить сетевое обнаружение и общий доступ к файлам.
После этого система ещё раз спросит надо ли разрешить доступ для всех общественных сетей. Ответьте утвердительно:
После этого вы сможете получить доступ к общим ресурсам этого компьютера.
2. Включение SMB1 в Windows
Для того чтобы включить поддержку протокола SMB1 в Windows 10 откройте поиск и наберите Включение компонентов. Затем откройте утилиту Включение и выключение компонентов Windows:
Дальше найдите пункт SMB1.0 CIFS File Sharing Support и установите напротив него галочку:
Затем необходимо перезапустить компьютер:
После этого Ubuntu начнёт видеть вашу шару Windows и вы сможете к ней подключится.
Настройка клиента
Исходя из выше перечисленного, клиент скорее всего не виноват, но можно попробовать его настроить чтобы быть уверенным точно. Как я уже написал выше Nautilus для подключения и просмотра общих папок Windows и Samba использует виртуальную файловую систему gvfs. А та, в свою очередь использует библиотеку libsmbclient для получения необходимых данных. Поэтому мы можем попытаться исправить ситуацию переопределив некоторые параметры в /etc/samba/smb.conf. Но работает это далеко не всегда.
1. Установить Samba
Если файловый сервер Samba у вас не установлен, то его надо установить для того чтобы был создан файл /etc/samba/smb.conf с параметрами по умолчанию. Они потом будут использоваться библиотекой libsmbclient и самой утилитой smbclient, которую вы можете применять для тестирования. Для установки выполните:
sudo apt install samba
Проверьте конфигурационный файл Samba на ошибки с помощью такой команды:
testparm
2. Рабочая группа
По умолчанию используется рабочая группа WORKGROUP. Убедитесь, что ваша рабочая группа имеет именно это имя, также убедитесь, что в /etc/samba/smb.conf задано правильное имя рабочей группы в параметре workgroup:
sudo vi /etc/samba/smb.conf
workgroup = WORKGROUP
3. Версия протокола
В современных системах Windows для общего доступа к папкам используется файловая система CIFS, использующая современные версии протоколов SMB2 и SMB3. Эти протоколы не поддерживают обзор доступных общих папок так, как это ожидает получить Nautilus. Для того чтобы всё работало надо использовать старый протокол NT1. Чтобы его включить добавьте параметр client max protocol после параметра workgroup:
client max protocol = NT1
После этого сохраните изменения и перезагрузите компьютер и проверьте.
4. Правильный порядок разрешения имён
Неверный порядок разрешения сетевых имен тоже может стать проблемой. Чтобы исправить его найдите в smb.conf параметр и приведите его к такому виду:
name resolve order = bcast lmhosts host wins
Здесь первым используется bcast, широковещательные сообщения, которые рассылаются по вашей локальной сети и ищут компьютеры с общими папками.
5. Не тот интерфейс
Если в вашем компьютере несколько сетевых интерфейсов, возможно smbclient пытается использовать не тот интерфейс. Чтобы посмотреть список интерфейсов используйте команду:
ls /sys/class/net
Затем найдите в /etc/samba/smb.conf параметр interface и замените в его значении eth0 на имя вашего интерфейса, который обеспечивает связь с нужной локальной сетью. Например на enp0s8:
interfaces = 127.0.0.0/8 enp0s8
После этого надо перезапустить службы Samba:
sudo systemctl restart smbd
sudo systemctl restart nmbd
6. Отладка
Если сеть Windows всё ещё не работает, вы можете попытаться отлаживать GVFS чтобы понять где именно возникает проблема и в чём её суть. Для этого надо завершить текущий сервер GVFS и запустить свой в терминале с включённой опцией отладки. Для этого выполните:
pkill gvfs; pkill nautilus
GVFS_DEBUG=all GVFS_SMB_DEBUG=10 $(find /usr/lib* -name gvfsd 2>/dev/null) --replace 2>&1 | tee gvfsd.log
Затем откройте Nautils и войдите в сетевое окружение, сеть Windows. При этом в терминале будут выводится сообщения об ошибках работы службы. Вы можете использовать эти сообщения чтобы искать информацию в Google или попросить помощи на форумах.
7. Проблема в GVFS
Баг в GVFS, о котором я писал выше наблюдался для Samba версии 4.8 и ниже. Если сервер поддерживает протокол более высокого уровня, то клиент пытается использовать этот протокол, например SMB2 или SMB3, но на этих протоколах не работает отображение доступных ресурсов. Если у вас именно эта проблема, то для полного решения придется ждать обновления или использовать обходное решение описанное ниже.
8. Подключение напрямую
Даже если у вас не работает обнаружение сетевых ресурсов Windows, вы все ещё можете подключится к нужному компьютеру и получить с него файлы. Откройте пункт Другие места на левой панели Nautilus. Внизу окна вы увидите надпись Подключится к серверу введите smb://адрес_сервера в поле слева и нажмите Enter:
После этого система предложит ввести имя пользователя и пароль для доступа к общему ресурсу. Этот пользователь должен реально существовать на машине, к которой вы собираетесь подключится.
Введите пароль и вы увидите доступные общие папки:
Выводы
Если всё будет сделано правильно то Linux увидит вашу шару Windows или Samba:
В этой статье мы кратко рассмотрели почему Ubuntu не видит сеть Windows, а также как исправить эту проблему. Если проблему с сетевым обнаружением устранить не удается, вы всегда можете попробовать подключится вручную. Это не решает основную проблему, но позволяет получить нужные файлы. Вы знаете другие способы решения? Поделитесь ими в комментариях!
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Чтоб разобраться с настройками был переведен файл smb.conf
smb1.conf |
smb3.conf |
# Sample configuration file for the Samba suite for Debian GNU/Linux. |
# Пример файла конфигурации для пакета Samba для Debian GNU/Linux. # # # Это основной файл конфигурации Samba. Вам следует прочитать страницу руководства # smb.conf(5), чтобы понять перечисленные здесь параметры #. Samba имеет огромное количество настраиваемых параметров, большинство из которых # не показаны в этом примере # # Некоторые параметры, которые часто стоит настроить, были включены в качестве # закомментированных примеров в этом файле. # — Когда такие параметры комментируются с помощью «;», предлагаемая настройка # отличается от поведения Samba по умолчанию # — При комментарии с помощью «#» предлагаемая настройка используется по умолчанию # поведение Samba, но этот параметр считается важным # достаточно, чтобы быть упомянутым здесь # # ПРИМЕЧАНИЕ: Всякий раз, когда вы изменяете этот файл, вам следует запускать команду # «testparm», чтобы убедиться, что вы не допустили никаких базовых синтаксических # ошибок. |
#======================= Global Settings ======================= [global] ## Browsing/Identification ### # Change this to the workgroup/NT-domain name your Samba server will part of # server string is the equivalent of the NT Description field #### Networking #### # The specific set of interfaces / networks to bind to # Only bind to the named interfaces and/or networks; you must use the |
#======================= Глобальные настройки ======================= [глобальные] ## Просмотр/идентификация ### # Измените это на workgroup/NT-доменное имя, которое ваш сервер Samba будет частью workgroup = WORKGROUP # строка сервера эквивалентна полю описания NT строка сервера = %h сервер (Samba, Ubuntu) #### Сеть #### # Конкретный набор интерфейсов/сетей для привязки # Это может быть либо имя интерфейса, либо IP-адрес/маска сети; # Обычно предпочтительны имена интерфейсов ; interfaces = 127.0.0.0/8 eth0 # Привязываться только к именованным интерфейсам и/или сетям; для этого необходимо использовать параметр # «интерфейсы», указанный выше. # Рекомендуется включить эту функцию, если ваш компьютер Samba # не защищен брандмауэром или сам является брандмауэром. Однако это # параметр не может корректно обрабатывать динамические или не широковещательные интерфейсы. ; только привязка интерфейсов = да |
#### Debugging/Accounting #### # This tells Samba to use a separate log file for each machine # Cap the size of the individual log files (in KiB). # We want Samba to only log to /var/log/samba/log.{smbd,nmbd}. # Do something sensible when Samba crashes: mail the admin a backtrace |
#### Отладка/учет #### # Это указывает Samba использовать отдельный файл журнала для каждого компьютера # который подключается файл журнала = /var/log/samba/log.%m # Ограничивает размер отдельных файлов журнала (в КБ). максимальный размер журнала = 1000 # Мы хотим, чтобы Samba регистрировалась только в /var/log/samba/log.{smbd,nmbd}. # Добавьте syslog@1, если вы хотите, чтобы важные сообщения также отправлялись в системный журнал. ведение журнала = файл # Сделайте что-нибудь разумное, когда Samba выйдет из строя: отправьте администратору электронное письмо с запросом возврата действие паники = /usr/share/samba/panic-action %d |
# Server role. Defines in which mode Samba will operate. Possible obey pam restrictions = yes # This boolean parameter controls whether Samba attempts to sync the Unix # For Unix password sync to work on a Debian GNU/Linux system, the following # This boolean controls whether PAM will be used for password changes # This option controls how unsuccessful authentication attempts are mapped
|
####### Аутентификация ####### # Роль сервера. Определяет, в каком режиме будет работать Samba. Возможный # значениями являются «автономный сервер», «сервер-участник», «классический основной # контроллер домена», «классический резервный контроллер домена», «активный # контроллер домена каталога». # # Большинство людей захотят «автономный сервер» или «сервер-участник». # Для запуска от имени «контроллера домена active directory» сначала потребуется # запустить «samba-tool domain provision», чтобы очистить базы данных и создать # новый домен. #роль сервера = автономный сервер #соблюдать ограничения pam = да
server role = standalone server # Этот логический параметр определяет, пытается ли Samba синхронизировать Unix # пароль с паролем SMB при изменении зашифрованного пароля SMB в # passdb. #синхронизация паролей unix = да
unix password sync = yes # Чтобы синхронизация паролей Unix работала в системе Debian GNU/Linux, выполните следующие действия # параметры должны быть установлены (спасибо Яну Кахану <<kahan@informatik.tu-muenchen.de> за # отправку правильного сценария чата для программы passwd в Debian Sarge). программа passwd = /usr/bin/passwd %u чат passwd = *Введите\snew\s*\spassword:* %n\n * Повторно введите\snew\s*\spassword:* %n\n *пароль\обновлен\успешно* . # Это логическое значение определяет, будет ли PAM использоваться для смены пароля # по запросу SMB-клиента вместо программы, указанной в # «программа passwd». Значение по умолчанию «нет». смена пароля pam = да # Этот параметр определяет, как сопоставляются неудачные попытки аутентификации # с анонимными подключениями сопоставление с гостевым = плохой пользователь |
########## Domains ########### # # It specifies the location of the user’s # The following setting only takes effect if ‘domain logons’ is set # The following setting only takes effect if ‘domain logons’ is set # This allows Unix users to be created on the domain controller via the SAMR # This allows machine accounts to be created on the domain controller via the # This allows Unix groups to be created on the domain controller via the SAMR
|
########## Домены ########### # # Следующие настройки вступают в силу только в том случае, если задано значение «роль сервера = классический # основной контроллер домена», «роль сервера = классический резервный контроллер домена» # или «вход в домен» # # Указывает местоположение учетной записи пользователя. # каталог профилей с точки зрения клиента) Следующий # требуется настроить общий доступ [profiles] на сервере samba (см. # ниже) ; путь для входа = \\%N\profiles\%U # Другим распространенным выбором является сохранение профиля в домашнем каталоге пользователя # (это по умолчанию в Samba) # путь для входа в систему = \\%N\%U\profile # Следующий параметр вступает в силу только в том случае, если задан параметр «вход в домен» # Он указывает местоположение домашнего каталога пользователя (с точки зрения клиента #) ; диск для входа в систему = H: # logon home = \\%N\%U # Следующий параметр вступает в силу только в том случае, если установлен параметр «вход в домен» # Он указывает сценарий, который будет запускаться во время входа в систему. Сценарий должен быть сохранен # в общем доступе [netlogon] # ПРИМЕЧАНИЕ: Должно храниться в соответствии с соглашением о формате файла ‘DOS’ ; сценарий входа в систему = logon.cmd # Это позволяет создавать пользователей Unix на контроллере домена через SAMR # Канал RPC. Команда примера создает учетную запись пользователя с отключенным Unix # пароль; пожалуйста, адаптируйте к вашим потребностям ; добавьте пользовательский скрипт = /usr/sbin/adduser —quiet —disabled-password —gecos «» %u # Это позволяет создавать учетные записи компьютеров на контроллере домена через канал RPC # SAMR. # Далее предполагается, что в системе существует группа «машины» ; добавить машинный скрипт = /usr/sbin/useradd -g машины -c «учетная запись компьютера%u» -d /var/lib/samba -s /bin/false %u # Это позволяет создавать группы Unix на контроллере домена через SAMR # RPC-канал. ; скрипт добавления группы = /usr/sbin/addgroup —force-badname %g |
############ Misc ############ # Using the following line enables you to customise your configuration # Some defaults for winbind (make sure you’re not using the ranges # Setup usershare options to enable non-root users to share folders # Maximum number of usershare. 0 means that usershare is disabled. # Allow users who’ve been granted usershare privileges to create
|
############ Разное ############ # Использование следующей строки позволяет настроить конфигурацию # для каждой машины. %m заменяется именем netbios # подключаемого компьютера ; include = /home/samba/etc/smb.conf.%m # Некоторые значения по умолчанию для winbind (убедитесь, что вы не используете диапазоны # для чего-то другого.) ; idmap config * : серверная часть = tdb ; idmap config * : диапазон = 3000-7999 ; idmap config YOURDOMAINHERE : серверная часть = tdb ; idmap config YOURDOMAINHERE : диапазон = 100000-999999 ; оболочка шаблона = /bin/bash # Настройте параметры usershare, чтобы разрешить пользователям, не являющимся root, предоставлять общий доступ к папкам # с помощью команды net usershare. # Максимальное количество usershare. 0 означает, что usershare отключен. # максимальное количество общих ресурсов usershare = 100 # Разрешить пользователям, которым были предоставлены привилегии usershare, создавать # общедоступные ресурсы, а не только те, которые прошли проверку подлинности usershare разрешать гостям = да |
#======================= Share Definitions ======================= # Un-comment the following (and tweak the other settings below to suit) # By default, the home directories are exported read-only. Change the # File creation mask is set to 0700 for security reasons. If you want to # Directory creation mask is set to 0700 for security reasons. If you want to # By default, \\server\username shares can be connected to by anyone # Un-comment the following and create the netlogon directory for Domain Logons # Un-comment the following and create the profiles directory to store # Windows clients look for this share name as a source of downloadable |
#======================= Делиться определениями ======================= # Откомментируйте следующее (и измените другие параметры, приведенные ниже, в соответствии с ними) #, чтобы включить общий доступ к домашнему каталогу по умолчанию. Это позволит использовать общий доступ к домашнему каталогу каждого # пользователя как \\server\username ;[дома] ; комментарий = Домашние каталоги ; доступно для просмотра = нет # По умолчанию домашние каталоги экспортируются только для чтения. Измените параметр # next на «нет», если вы хотите иметь возможность записи в них. ; только для чтения = да # Маска создания файла установлена на 0700 по соображениям безопасности. Если вы хотите # создайте файлы с правами доступа group=rw, установите следующий параметр равным 0775. ; create mask = 0700 # Маска создания каталога установлена на 0700 по соображениям безопасности. Если вы хотите # создайте каталоги. с правами доступа group=rw установите следующий параметр равным 0775. ; маска каталога = 0700 # По умолчанию к общим ресурсам \\server\username может подключаться любой желающий # имеющий доступ к серверу samba. # Откомментируйте следующий параметр, чтобы убедиться, что только «username» # может подключаться к \\серверу\username # Это может потребовать настройки при использовании внешних схем аутентификации ; допустимые пользователи = %S # Откомментируйте следующее и создайте каталог netlogon для входа в домен # (вам также необходимо настроить Samba для работы в качестве контроллера домена.) ;[netlogon] ; комментарий = Служба сетевого входа ; путь = /home/samba/netlogon ; гостевой ок = да ; только для чтения = да # Откомментируйте следующее и создайте каталог профилей для хранения # профили пользователей (смотрите параметр «путь для входа» выше) # (вам также необходимо настроить Samba для работы в качестве контроллера домена.) # Путь, указанный ниже, должен быть доступен для записи всеми пользователями, чтобы их # каталог профилей мог быть создан при первом входе в систему ;[профили] ; комментарий = Профили пользователей ; путь = /главная/домашняя сеть ; гостевой ок = да ; доступен для просмотра = да ; маска создания = 0600 ; маска каталога = 0700 только для чтения = нет # [принтеры] комментарий = Все принтеры доступно для просмотра = нет путь = /var/spool/samba доступно для печати = да гостевой ок = нет только для чтения = да маска создания = 0700 # Клиенты Windows ищут это имя общего ресурса как источник загружаемых данных # драйверы принтера [print$] комментарий = Драйверы принтера путь = /var/lib/samba/принтеры доступно для просмотра = да доступно только для чтения = да гостевой ок = нет # Раскомментируйте, чтобы разрешить удаленное администрирование драйверов печати Windows. # Возможно, вам потребуется заменить «lpadmin» на название группы, в которую входят ваши # пользователи с правами администратора. # Обратите внимание, что вам также необходимо установить соответствующие разрешения Unix # в каталог драйверов, чтобы у этих пользователей были права на запись в него ; список записей = root, @lpadmin |