что такое cifs подключение принтера
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
CIFS (Common Internet File System)
CIFS (сокр. от англ. Common Internet File System, Единая Файловая Система Интернета) — сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия. Является первой версией протокола SMB (Server Message Block). CIFS была разработана компаниями IBM, Microsoft, Intel и 3Com в 1980-х годах; вторая (SMB 2.0) была создана Microsoft и появилась в Windows Vista. В настоящее время SMB связан главным образом с операционными системами Microsoft Windows, где используется для реализации «Сети Microsoft Windows» (англ. Microsoft Windows Network) и «Совместного использования файлов и принтеров» (англ. File and Printer Sharing).
Содержание
История
Принцип работы
CIFS — это протокол, основанный на технологии клиент-сервер, который предоставляет клиентским приложениям простой способ для чтения и записи файлов, а также запроса служб у серверных программ в различных типах сетевого окружения. [Источник 1] Единственное отличие от модели клиент-сервер состоит в том, что, когда клиент посылает в качестве запроса возможные блокировки, то сервер вынужден отпустить уже предоставленную блокировку, так как другой клиент запросил открытие файла в режиме, несовместимом с предоставленной блокировкой. В этом случае сервер посылает клиенту уведомительное сообщение о том, что блокировка была снята. Серверы предоставляют файловые системы и другие ресурсы (принтеры, почтовые сегменты, именованные каналы и т. д.) для общего доступа в сети. Клиентские компьютеры могут иметь у себя свои носители информации, но также имеют доступ к ресурсам, предоставленным сервером для общего пользования.
Клиенты соединяются с сервером, используя протоколы TCP/IP (а, точнее, NetBIOS через TCP/IP), NetBEUI или IPX/SPX. После того, как соединение установлено, клиенты могут посылать команды серверу, который даёт им доступ к ресурсам, позволяет открывать, читать файлы, писать в файлы и вообще выполнять весь перечень действий, которые можно выполнять с файловой системой. Однако в случае использования CIFS эти действия совершаются через сеть.
CIFS определяет серию команд, используемых для передачи информации между сетевыми компьютерами. Запросы на перенаправление отправляют пакеты, предназначенные для удаленных компьютеров в структуре CIFS. CIFS можно отправлять по сети на удаленные устройства. Перенаправитель также использует CIFS для выполнения запросов к стеку протоколов локального компьютера. Сообщения CIFS могут быть в целом классифицированы следующим образом:
CIFS дополняет протокол передачи гипертекста (HTTP), обеспечивая более сложное совместное использование файлов и передачу файлов, чем старые протоколы, такие как FTP. Компоненты в перенаправителе обеспечивают поддержку CIFS, например:
В Windows NT 4.0 разрешение имен Windows Internet Name (WINS) и Domain Name System (DNS) было выполнено с использованием TCP-порта 134. Расширения для CIFS и NetBT теперь позволяют соединения непосредственно через TCP/IP с использованием TCP-порта 445. Оба способа разрешения все еще доступны в Windows 2000. Можно отключить одну или обе этих службы в реестре.
Возможности, предлагаемые CIFS
Протокол Microsoft SMB реализован на основе принципа «клиент-сервер» и состоит из набора пакетов данных, каждый из которых содержит запрос, отправленный клиентом, или ответ, отправленный сервером. Эти пакеты можно классифицировать следующим образом:
Некоторые пакеты сообщений могут быть сгруппированы и отправлены в одной передаче, чтобы уменьшить задержку ответа и увеличить пропускную способность сети. Это называется «дозирование». В разделе «Сценарий обмена пакетами протокола SMB для протокола SMB» приведен пример сеанса протокола SMB для протокола Microsoft, который использует пакетную пакетную обработку.
SMB, CIFS и Samba: что это за протоколы и для чего они используются
Чтобы подключиться к Интернету, отправлять или получать файлы, важно, чтобы это было возможно с помощью ряда протоколов. В этой статье мы поговорим о трех из них. Мы собираемся объяснить, что такое SMB, CIFS и Samba протокол. Мы увидим, в чем их основные отличия и для чего каждый из них используется.
Что такое протокол SMB
Прежде всего мы собираемся объяснить, что Протокол SMB. Это одна из старейших программ, которая со временем открыла доступ к файлам и каталогам, а также к сетевым ресурсам. Он отвечает за обмен информацией между процессами системы. Он был создан IBM.
SMB означает Сервер Блок сообщение. Этот протокол клиент-сервер отвечает за управление доступом к этим файлам или каталогам. В частности, он был разработан в 1983 году. Он присутствовал в различных Windows операционных систем.
Сегодня этот протокол позволяет подключаться к более старым устройствам с предыдущими версиями Microsoft операционная система. Для обмена файлами два устройства должны сначала установить соединение. Отсюда протокол SMB позволяет клиенту подключаться к серверу.
В соответствии с тем, что мы упомянули, Microsoft решила удалить поддержку первой версии SMB 1.0. Это может позволить, например, проводить DDoS-атаки на компьютер.
Что такое протокол CIFS?
Но, конечно, это было не только изменение имени. Логично добавлены разные функции. Например, они добавили поддержку символических ссылок или жестких ссылок, большего размера файла.
Сегодня CIFS используется очень редко. Современные системы будут использовать SMB 2 или SMB 3. В основном последний, поскольку он находится в самых последних версиях, начиная с Windows 8. Можно сказать, что это обновления CIFS, которые соответствуют первой версии SMB.
Как работает Samba
Эта реализация была для UNIX-подобных систем. Мы можем использовать его в Linux, macOS или Unix, и таким образом они действуют как клиенты в сетях Windows. В данном случае его первоначальный выпуск был в 1992 году, хотя с течением времени у него были разные версии.
Вывод о различиях между SMB, CIFS и Samba
Так в чем же разница между SMB, CIFS и Samba? Мы можем сказать что SMB был первоначальным протоколом, появившимся в 1980-х годах. Он был создан IBM для обмена файлами и доступа к принтерам. Со временем были разные версии. В основном он использовался в Windows и DOS.
В свою очередь, CIFS так позже стала известна первоначальная версия SMB, когда Microsoft начала использовать ее в своих системах. У него были определенные реализации, позволяющие подключать несколько платформ, таких как Windows или Linux. Однако в настоящее время CIFS практически не используется. С другой стороны, мы можем найти последние версии SMB, такие как SMB 2 или SMB 3.
Наконец, самба это реализация вышеизложенного с открытым исходным кодом. Бесплатная реализация, позволяющая использовать его в различных системах, таких как Linux, macOS или Unix. При этом он был выпущен в начале 1990-х годов.
подключение к сетевому принтеру hp laserjet 1020 через SAMBA
Прошу помочь с подключением к принтеру. Ситуация такова:
Наперед благодарю за помощь.
як конечно извиняюсь, но прошу объяснить, так как не админ и мне не хватает знаний. Как я понимаю: находишь принтер по адресу, в данном случае это: smb://[ [:
Зайти на ‘ip компа’ и посмотреть, под каким именем расшарен принтер.
Вы же не написали, в чем у вас проблема, но уже спрашиваете «может в этом?»
Вы вообще ничего не написали.
не помогло, в типах принтера есть только: Локальные принтеры:
Обнаруженные сетевые принтеры:
Другие сетевые принтеры:
результат сразу выдает странную ошибку
конфиги самбы покажи
При чем здесь самба? Запусти cups, зайди в настройки (localhost:631), добавь принтер.
У меня на работе такой же принтер. Тоже подключен через компьютер с мастдайкой, т.к. в линуксе он не работает. Вот что в настройках:
Если вантузокомпьютер засыпает, принтер перестает печатать по сети — приходится компьютер перезагружать.
спасибо, несколько вопросов:
какой способ подключения выбирали? Хост или принтер LPD/LPR?
какая Винда на том компе, бо в моем случае это ХР, а где-то видел что подключение к 7-8 легче?
Сейчас пробовал такие настройки, ничего не выходит:
foo2zjs нужно отдельно ставить. http://foo2zjs.rkkda.com/
Да. А printer_name — имя «расшариваемого» принтера.
Windows Printer via SAMBA
Поставь пакет foo2zjs
Windows Printer via SAMBA
так у меня ж нет пункта Windows Printer via SAMBA!
В настройках cups в веб-морде? Странно.
Семейство 102х работает под Линухом нормально. Для этого надо собрать отдельный foo2zjs, слить бинарник прошивки и он заработает. У меня около 5 принтаков на Debian 4.0 5 лет работает нормально.
В настройках Cups нет samba т.к. наверно не стоит smbclient, или cupsd не рестартился после его установки.
сам не понимаю почему. Ищу решение.
samba server/client установлен?
В связи с SAMBA установлено:
если 7ка то проблема 🙂
стандартная XP, лицензионная.
так что не думаю что это изза Винды.
дистрибутив?
Может быть дистро-зависимая ошибка. Что пишут на форумах OpenSuse?
м.б. во время установки/апдейта сбой был и пакет(ы) самбы криво встали? попробуй их переустановить
вот что у меня стоит:
переустановил SAMBA: пункт Windows Printer via SAMBA появился. Спасибо!
печать пока не работает, создал два варианта принтера с такими конфигурациями:
Подключение и настройка сетевого принтера в Windows 10 для печати по локальной сети c других компьютеров
В локальной сети можно не только обмениваться файлами, но и использовать общий доступ к принтеру. Очень полезная функция, как для дома, так и для офиса. В этой статье мы рассмотрим процесс настройки сетевого принтера на компьютере с Windows 10. Покажу весь процесс: от изменения параметров общего доступа к принтеру, до подключения сетевого принтера на других компьютерах в локальной сети. Я уже все проверил на своем оборудовании и сделал необходимы скриншоты. У меня все получилось настроить, все отлично работает, значит и у вас все получится.
Но для начала давайте разберемся, как это работает, как можно использовать эту схему подключения, и какие есть нюансы. Когда понимаешь, как что-то устроено и работает, то настраивать это намного проще.
Для чего нужен сетевой принтер и что это такое?
Например: принтере у нас подключен к ПК, а ПК подключен к роутеру по сетевому кабелю, или по Wi-Fi. На этом стационарном компьютере мы настраиваем общий доступ к принтеру. А отправлять файлы на печать можно со всех компьютеров, ноутбуков, которые подключены к этому же роутеру.
Обратите внимание! Такой способ подключения актуален для тех принтеров, в которых нет возможности прямого подключения к роутеру. Многие современные принтеры поддерживают функцию удаленной печати. Это значит, что их напрямую можно подключить к роутеру с помощью Wi-Fi сети, или сетевого кабеля. Такой принтер точно так же будет доступен со всех устройств в локальной сети. Но нам уже не понадобится настраивать сетевой принтер на каком-то конкретном компьютере. И нам не нужно будет держать этот компьютер всегда включенным, чтобы другие устройства могли печатать. Принтер работает автономно, всегда находится в локальной сети и готов к печати с любого устройства.
Печатать на принтере, который подключен к компьютеру на Windows 10 можно с других компьютеров на той же десятке, Windows 8, Windows 8.1, Windows 7. А вот с Windows XP могут возникнуть проблемы. Но на сегодняшний день это уже не очень актуально.
Настраиваем сетевой принтер в Windows 10
Перейдите в параметры, в раздел «Устройства», на вкладку «Принтеры и сканеры». Там должен быть наш принтер. Нажмите на него, затем нажмите на кнопку «Управление».
Дальше открываем «Свойства принтера».
Если сетевое обнаружение и общий доступ на вашем компьютере включен, то все готово, принтер уже доступен с других компьютеров в домашней сети.
Настройка параметров общего доступа к принтеру
Общий доступ к принтеру мы открыли. Но если в настройках Windows 10 общий доступ запрещен, то другие компьютеры не смогут получить доступ к принтеру. Нужно проверить/настроить параметры общего доступа.
В новом окне на вкладке «Частная (текущий профиль)» нужно «Включить сетевое обнаружение» и «Включить общий доступ к файлам и принтерам».
Доступ к принтеру открыли, сетевое обнаружение включили и доступ из сети к компьютеру (к которому подключен принтер) тоже включили. Все готово, можно подключать этот принтер на других компьютерах в локальной сети и печатать.
Подключение к общему принтеру с компьютеров на Windows 10
Так как я все проверял все на двух компьютерах с установленной Windows 10, то рассмотрим процесс подключения к сетевому принтеру на примере этой системы. Дальше покажу еще на примере Windows 7. В Windows 8 все примерно так же.
Открываем «Параметры» – «Устройства» – «Принтеры и сканеры». Нажимаем на кнопку «Добавить принтер или сканер». Как только начнется поиск, нажимаем на «Необходимый принтер отсутствует в списке».
Ставим переключатель возле «Выбрать общий принтер по имени» и нажимаем на кнопку «Обзор».
Должны появится компьютеры из локальной сети. Откройте компьютер на котором был настроен сетевой принтер, выделите принтер и нажмите на кнопку «Выделить».
Принтер выбран, нажимаем на кнопку «Далее».
Подтверждаем установку драйвера сетевого принтера.
После завершения установки можно просто нажат на кнопку «Готово», либо распечатать пробную страницу.
Я напечатал пробную страницу, все отлично работает.
Сетевой принтер появится на вкладке «Принтеры и сканеры». Там можно открыть очередь печати, изменить настройки принтера, или же удалить его из системы.
Подключение к принтеру в Windows 7 (8, 8.1)
Дальше открываем компьютер на котором установлен общий доступ к принтеру. Там должен отображаться наш принтер. Нужно либо нажать на него два раза левой кнопкой мыши, либо нажать правой кнопкой мыши и выбрать «Подключить».
Начнется поиск и установка драйверов для принтера. После успешного завершения установки принтер будет отображаться в панели управления «Устройства и принтеры» и его можно будет использовать для печати из любых программ. Если возникнут проблемы с установкой драйверов – обратите внимание на рекомендации ниже в этой статье.
Компьютер не видит сетевой принтер, не подключается
Компьютер не видит принтер в локальной сети
Такая проблема бывает редко. Как правило, причина в том, что на компьютере (или на обеих компьютерах, к которому подклеен принтер и с которого вы пытаетесь к нему подключиться) отключено сетевое обнаружение и общий доступ. В этой статье я уже несколько раз писал как и где все это включить. Если у вас проблема именно в том, что принтер (или другие компьютеры из локальной сети) не отображаются на вкладке сеть, то проверьте параметры общего доступа не обеих компьютерах.
Так же на время остановите работу антивируса, или встроенного в него файрвола.
Ошибка «Windows не удалось подключится к принтеру. Отказано в доступе»
Выглядит эта ошибка примерно вот так:
Код ошибки может быть разный: 0x00000057, 0x00000002, 0x0000000a, 0x00000006, 0x00000214, 0x0000007e и т. д. Появляется обычно на этапе подключения и настройки сетевого принтера.
Решения:
Ошибка «Не удалось найти драйвер»
Так как при подключении к этому принтеру с других компьютеров им будут передаваться драйверы, здесь могут быть проблемы. Например, на моем компьютере Windows 10 64-bit. И драйверы на принтер установлены только для 64-bit_ной системы. А если к этому сетевому принтеру мы захотим подключить компьютер с Windows 32-bit (x86), то он просто не сможет загрузить драйверы и принтер не будет работать. Появится сообщение «Не удалось найти драйвер».
Нужно добавить драйвер для 32-bit систем. Или наоборот, все зависит от вашего оборудования, системы, установленных драйверов. Нужно нажать на кнопку «Дополнительные драйверы» (на той же вкладке «Доступ») и поставить галочку возле x86 (или x64). Затем нажать «Ok», дальше «Обзор» и указать путь к папке с драйверами для вашего принтера для 32-bit и/или 64-bit системы. И снова «Ok».
CIFS over SSH штатными средствами Windows 10
Я ленивый и потому люблю когда все организовано удобно, без лишних телодвижений. Иногда перебарываю лень, для того чтобы сделать удобно.
Однажды потребовалось мне организовать доступ к серверу по протоколу SMB и в поиске решения я наткнулся на следующую статью: Mounting your Nikhef home directory using SSH for Windows 8. Это было простое и удобное решение, которое использовало Putty. Чуть позже мне пришлось настраивать это решение на другом компьютере и я понял, что Putty тут лишний с тех пор как в Windows 10 появился встроенный ssh-клиент на основе OpenSSH.
Под катом — идентичная схема, только с использованием OpenSSH под Windows 10.
У меня схема организована следующим образом:
Всё это автоматом – лень торжествует. Безопасно, быстро и нативно выглядит. Любым редактором могу открывать и править файлы на удаленном сервере как у себя на локальном — без проблем с загрузкой правленых файлов и установкой им необходимых разрешений. При этом нет проблем с безопасностью Samba.
Итак – сперва по шагам:
На стороне WINDOWS
Должен быть установлены OpenSSH. В Windows 10 и Windows Server 2019 появился встроенный SSH клиент на основе OpenSSH. Им мы и воспользуемся. Сначала убедимся что он установлен – наберем в командной строке
Если видим исполнение команды — все «Ок», клиент присутствует в системе.
Шаг 1. Настройка сетевого адаптера
Устанавливаем loopback-адаптер в системе. Мы будем обращаться по адресу к локальному адаптеру.
Запустится «Мастер установки оборудования» (Здесь я пользуюсь русской Windows 10 Pro).
Уверен, что эти шаги можно сделать из командной строки, но не нашел способ установки драйвера без devcon.exe, потому и не стал заморачиваться с автоматизацией этого шага.
Далее уже в CMD (от имени Администратора).
Видим появился второй адаптер. У меня он называется Ethernet 2.
Теперь настроим адрес для этого адаптера
Или из командной строки:
В результате у нас появился адаптер локально доступный по адресу 10.255.255.1
Теперь проблема в том, что нам необходимо получить доступ к общей папке через TCP-порт 445, но при загрузке Windows этот порт захватывается системным драйвером lanmanserver для всех интерфейсов. Отложив запуск драйвера lanmanserver и установив правило portproxy, мы можем обойти это.
Далее в командной строке от имени администратора меняем режим запуска сетевых служб (пробел после «start=» обязателен. ):
и настраиваем для адаптера с адресом 10.255.255.1 проксирование порта 44445 на локальный порт 445
Теперь необходимо перезагрузиться, чтобы схема перехвата порта у службы lanmanserver сработала.
Проверяем что прослушивание порта осуществляется нашим loopback-адаптером, просмотрев открытые в системе порты
значит все в порядке и порт прослушивается на нужном адресе. Если же мы видим «0.0.0.0:445» — значит в нашей схеме что-то не сработало правильно. Проверить правила переадресации портов можно командой
Шаг 2. Ключ и рабочий скрипт
Создаем папку для вспомогательных файлов. Встроим, так сказать в систему наш способ.
Генерируем ключ для ssh-авторизации (назовем его, например: cifsoversshkey)
В результате будет сгенерирована пара открытого и закрытого ключа. Для того, чтобы OpenSSH не выдавал сообщение UNPROTECTED PRIVATE KEY FILE! нужно изменить права на файл ключа. Задачу мы будем запускать для одного пользователя, от имени которого мы собираемся работать в Windows. Можно через GUI, но мне показалось что картинок уже достаточно. В Windows это сделаем следующей командой:
В результате текущий пользователь будет назначен владельцем, отключено наследование и удалены унаследованные права. Проверить мы это сможем командой
Должны быть права только для текущего пользователя, иначе файл ключа не будет принят программой OpenSSH и соединение не будет подниматься!
Создадим в текущей папке пакетный файл cifsoverssh.cmd следующего содержания:
Где:
user@111.111.111.111 – пользователь на стороне linux сервера @ адрес удаленного сервера
Шаг 3. Ярлык или задача в планировщике
Для автоматизации запуска при входе в систему можно создать задачу в планировщике:
На стороне клиентского компьютера Windows все приготовления были закончены.
Настройка Linux сервера
Предполагается, что ssh-сервер был предварительно настроен и включена авторизация по ключу.
Подключаемся по ssh из командной строки на windows-машине
В домашней папке пользователя, от имени которого мы будем авторизовываться при создании туннеля ищем файл
/.ssh/authorized_keys (если файл отсутствует – создадим его).
Теперь необходимо в этот файл вставить содержимое нашего файла публичного ключа, созданного на нашей windows-машине (файл %APPDATA%\CIFSoverSSH\cifsoversshkey.pub). Откроем его в любом редакторе и вставим цепочку ключа с новой строки. Если есть другие ключи, просто вставим его с новой строки.
Устанавливаем Samba (на примере Debian)
Переименовываем старый файл настроек и создаем новый файл
Открываем пустой файл настроек и приводим его к следующему виду:
В последней секции мы настраиваем непосредственно шару. В названии секции указываем имя шары ShareName. Path = путь к файлам, которые мы хотим расшарить. В параметрах force user и force group указываем linux-пользователя, от имени которого будут сохраняться файлы при изменении и создании в шаре. Так как у меня там лежат файлы для веб-сервера – у меня пользователь www-data
Отключаемся и выходим в командную строку Windows
Всё готово. Теперь остается только запустить наш ярлык или выйти из профиля пользователя windows и снова войти (если вы создали задачу в планировщике).
После этого ваша удаленная шара будет доступна по адресу \\10.255.255.1\ShareName — Можно даже монтировать её как сетевой диск.