Общая папка — открываем доступ из локальной сети к папке Ubuntu. Настройка локальной сети Linux - Linux и Linux - Windows Подключение linux к сети windows

Для систематизирования информации по настройке сети в ОС Linux было решено написать эту заметку. Здесь в доступной форме описан процесс настройки сетевого интерфейса на примере ОС Ubuntu. Также данное руководство поможет «поднять» локальную сеть и на любом другом дистрибутиве Linux.

Для просмотра текущих параметров сети и состояния сетевых интерфейсов в ОС Линукс существует команда:

Пример вывода:

eth0 Link encap:Ethernet HWaddr 00:11:5b:91:25:3e

inet addr:192.168.1.18 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr: fe80::211:5bff:fe91:253e/64 Диапазон:Ссылка
ВВЕРХ BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:648009 errors:0 dropped:0 overruns:0 frame:0
TX packets:1075413 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:1000
RX bytes:70177943 (70.1 MB) TX bytes:1536487024 (1.5 GB)
Прервано:19 Base address:0xd000

lo Link encap:Локальная петля (Loopback)

inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Диапазон:Узел
ВВЕРХ LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:106 errors:0 dropped:0 overruns:0 frame:0
TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:0
RX bytes:13776 (13.7 KB) TX bytes:13776 (13.7 KB)

Для просмотра абсолютно всех сетевых интерфейсов запускаем команду с ключом -a :

# sudo ifconfig -a

Из приведенного примера видно, что на компьютере используется два сетевых интерфейса: eth0 и lo .

Интерфейс lo - это локальная петля, которая имеет IP-адрес 127.0.0.1 и предназначена для сетевого доступа к своему же компьютеру. Далее этот интерфейс рассматриваться не будет, так как для эффективной работы не требует дополнительной настройки.

Интерфейс eth0 - это Ethernet сетевая карта, которая имеет сетевые параметры: IP-адрес - 192.168.1.18 , маску сети - 255.255.0.0 и MAC-адрес - 00:11:5b:91:25:3e . Значение RUNNING показывает, что в данный момент сетевой интерфейс eth0 работает.

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

# sudo ethtool eth0

Вывод:

Supported ports: [ TP MII ]
Supported link modes:10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: d
Current message level: 0x000000c5 (197)
Link detected: yes

Из вывода видно, что сетевой интерфейс eth0 работает на скорости 100Мб/с с включенным полным дуплексом (Full Duplex). Полный дуплекс от полудуплекса (Half Duplex) отличается тем, что первый обеспечивает передачу данных в обе стороны одновременно, а второй осуществляет передачу входящих и исходящих данных поочередно.

2. Как остановить/запустить или перезагрузить сетевой интерфейс?

Для остановки сетевого интерфейса eth0 существует команда:

# sudo ifconfig eth0 down

Команду легко запомнить, так как после названия самой команды идет имя интерфейса и после действие, которое нужно произвести над ним (down или up).

Для возобновления работы сетевого интерфейса eth0:

# sudo ifconfig eth0 up

Чтобы перезапустить все сетевые интерфейсы ОС вводим команду:

# sudo /etc/init.d/networking restart

Эта строка запускает bash-скрипт networking, перезапускающий сетевые интерфейсы системы.

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

# sudo /etc/init.d/networking stop

И их запуск:

# sudo /etc/init.d/networking start

3. Как изменить сетевые настройки?

Чтобы изменить сетевые настройки в ОС Linux можно пойти двумя путями:
  1. использовать команды для присвоения параметров сетевых интерфейсов;
  2. отредактировать конфигурационный файл, содержащий параметры сетевых интерфейсов.

Настроить сеть можно одним из вышеприведенных способов. Эти два способа абсолютно взаимозаменяемые. Кому как привычнее.

  1. Настройка сети с помощью команд.

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

    Чтобы задать основной IP-адрес и маску сети для интерфейса eth0:

    # sudo ifconfig eth0 192.168.0.1 netmask 255.255.255.0

    Для присвоения дополнительного IP-адреса интерфейсу eth0:

    # sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0

  2. Настройка сети с помощью редактирования конфигурационного файла.

    Редактировать будем конфигурационный файл /etc/network/interfaces . Чтобы вывести на экран содержимое конфига, набираем команду:

    # sudo nano /etc/network/interfaces

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

    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address 192.168.1.18
    netmask 255.255.0.0
    gateway 192.168.1.253

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

    Строка auto eth0 говорит, что сетевой интерфейс eth0 должен стартовать при загрузке ОС.

    Вторая строка iface eth0 inet static говорит, что сетевому интерфейсу eth0 IP-адрес задается вручную.

    Строка address 192.168.1.18 говорит, что сетевому интерфейсу eth0 назначен IP-адрес 192.168.1.18 (этот сетевой адрес взят для примера и на его месте может быть любой другой).

    Строка netmask 255.255.0.0 говорит, что маска сети является 255.255.0.0.

    Последняя строчка gateway 192.168.1.253 показывает, что сетевым шлюзом является компьютер с IP-адресом 192.168.1.253. Эта строка может отсутствовать, так как ее наличие в конфигурационном файле зависит от параметров локальной сети, к которой подключается настраиваемый компьютер.

    Если в подключаемой локальной сети используется автоматическая раздача сетевых настроек DHCP-сервером, то конфигурационный файл /etc/network/interfaces должен быть приведен к виду:

    iface lo inet loopback

    auto eth0
    iface eth0 inet dhcp

4. Дополнительные сетевые настройки: DNS-сервера, MAC-адреса и скорость сетевого интерфейса.

Настройка DNS-сервера.

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

Для этого нужно открыть конфигурационный файл командой:

# sudo nano /etc/resolv.conf

Вывод:

# Generated by NetworkManager
nameserver 192.168.1.253

Строка nameserver 192.168.1.253 говорит, что в качестве DNS-сервера используется компьютер с IP-адресом 192.168.1.253.

Смена MAC-адреса сетевой карты.

Чтобы временно поменять MAC-адрес сетевой карты eth0 нужно воспользоваться командой:

# sudo ifconfig eth0 hw ether 00:01:02:03:04:05

Последнее число - это новый MAC-адрес.

Для смена MAC-адреса навсегда нужно в конфигурационном файле /etc/network/interfaces к настройкам сетевого интерфейса добавить строку с новым MAC-адресом:

iface eth0 inet dhcp

pre-up ifconfig eth0 hw ether 00:01:02:03:04:05

Смены скорости сетевого интерфейса.

Для строгого задания скорости сетевой карты:

# sudo ethtool -s eth0 speed 100 duplex full autoneg off

# Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full Duplex и отключить автоматическое определение

# sudo ethtool -s eth0 speed 10 duplex half autoneg off

# Принудительно задать скорость сетевому интерфейсу 10Mbit и режим Half Duplex и отключить автоматическое определение

Случайные 7 статей:

Комментарии

  1. sergo
    1 Ноябрь, 23:27

    огромное спасибо за статью! в линукс недавно, оч помогло, не подскажете, если сетевых в компьютере две, у одной сетевой dns-server 192.168.0.9, а у другой например 192.168.1.9, корректно будет в одном файле resolv.conf написать
    nameserver 192.168.0.9
    nameserver 192.168.1.9
    Поймут сетевухи кому какой dns?
    И можно ли в линукс назначить сетевой карточке какое-то имя, например eth0 это loc, а eth1 это prov?

  2. Mut@NT
    2 Ноябрь, 00:07

    1. DNS можно указать оба, но сетевым следует указать маски сети 255.255.255.0. Тогда они будут ходить по своим DNS `ам.

    2. Про названия сетевых не знаю. Думаю, что можно, это же Linux!!

  3. sergo
    2 Ноябрь, 03:44

    выключаем интерфейс
    ifconfig eth0 down
    даем команду
    ifrename -i eth0 -n новое_имя (например local)
    ifconfig local up
    потом в вашем линуксе наверно надо будет в файле /etc/network/interfaces некоторые eth0 поменять на local, у меня просто альт, и этого файла вообще нет, у меня /etc/net/ifaces/папки_с_интерфейсами, и вот у меня надо папку eth0 переименовать в local, ну и потом
    service network restart:)

  4. Mut@NT
    2 Ноябрь, 08:45

    Нужно будет добавить в статью, спасибо))

  5. gpns
    14 Май, 17:36

    Думаю стоит попровить строку: sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0
    у алиаса не может быть маски /24 (255.255.255.0), это не ошибка, т.к. в любом случае интерфейсу eth0:0 будет присвоена маска /32 (255.255.255.255)
    В вашем случае будет: sudo ifconfig eth0:0 10.10.0.1/32

  6. Mut@NT
    16 Май, 12:02

    gpns: Думаю стоит попровить строку: sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0 у алиаса не может быть маски /24 (255.255.255.0), это не ошибка, т.к. в любом случае интерфейсу eth0:0 будет присвоена маска /32 (255.255.255.255) В вашем случае будет: sudo ifconfig eth0:0 10.10.0.1/32

    Черт, Вы перевернули все мое сознание. Придется переделывать настройки сетевого интерфейса на компьютере, которые работали уже почти 2 года.
    Почему тогда командой ifconfig показывается та маска, которую я установил?

  7. GydruS
    13 Сентябрь, 23:32

    Простым языком! Ясно и понятно! Огромное спасибо!
    P.S. Только в листингах ввода команд хорошо бы шрифт сделать такой, где 0 от О визуально отличается.

  8. Mut@NT
    14 Сентябрь, 18:34

    GydruS: P.S. Только в листингах ввода команд хорошо бы шрифт сделать такой, где 0 от О визуально отличается.

    Спасибо, приму к сведенью. Хотя вроде отличие есть, в точке)

  9. andrey
    18 Сентябрь, 23:50

    спасибо за ваш сайт. мне нравится! все доходчиво и понятно
    у меня к вам такой вопрос. если можно подскажите пожалуйста как настроить сеть чтобы работала локалка и DSL соединение одновременно.
    не могу понять как это сделать???!!

  10. Mut@NT
    20 Сентябрь, 07:18

    andrey: спасибо за ваш сайт. мне нравится! все доходчиво и понятно у меня к вам такой вопрос. если можно подскажите пожалуйста как настроить сеть чтобы работала локалка и DSL соединение одновременно.

    Если честно давно не сталкивался с DSL -соединениями. Расскажите по потробнее:
    1. Какая локальная сеть? За модемом или на другой сетевой?

  11. andrey
    20 Сентябрь, 18:38

    соединение самое обычное – городская сеть
    компьютер подключен через сетевую карту
    выход в интернет подключается через соединение DSL

  12. Mut@NT
    21 Сентябрь, 17:22

    andrey: соединение самое обычное – городская сеть компьютер подключен через сетевую карту выход в интернет подключается через соединение DSL

    По-моему Вам нужно настраивать сам модем. Посмотрите в сторону Dual PPPOE
    Я что-то подобное делал на роутере D-Link DIR -320, но на модеме не разу.

  13. andrey
    21 Сентябрь, 18:22

    спасибо!!! буду искать!

  14. Serpent22
    3 Ноябрь, 06:21

    К словам о DSL через локальную сеть: очень много парился, перерыл кучу манов (у меня Debian Lenny) и чтобы избавить других людей от тех же граблей скажу – pppoeconf помогает не всем, у меня например, инет появлялся на пару секунд и пропадал чудным образом. Конфиги, логи не помогли. Но спустя две недели и нару клочьев вырванных волос, наткнулся на простенькую команду ifconfig ppp0 mtu 1372. Надеюсь комуто это поможет. Выговорился, аж легче стало)))

  15. nick
    7 Декабрь, 09:17

    Добрый день,у меня в папке etc нет ни папки network,ни папки net,стоит centos 5.7,что делать подскажите

  16. Марина
    27 Декабрь, 21:12

    Здравствуйте, такая проблема случилась. К интернету комп подключен через роутер.. Проблема в том, что некоторые сайты не открываются- пишет ошибка преобразования dns .. Что нужно сделать. чтобы все нормально работало?? Заранее спасибо!!

  17. papick
    30 Июль, 17:05

    Артем: 2 сетевые карты. по одной виндовая сеть с доменом. во второй воткнут адсл модем с подключением PPPoE. как сделать так, чтоб и в сети работать можно было и в инете?!

    например прописать правила маршрутизации на машине таким образом чтобы пакеты предназначенные для локальной сети отправлялись в етн0 , а все остальные в етн1
    но эта тема выходит за рамки данной статьи.

  18. Комполюбитель
    29 Август, 03:01

    Вполне годная статья. Спасибо огромное

  19. valera
    21 Январь, 07:20

    я всего 3-й мес на linux но уже штук 17 перепробовал но никто не хочет dsl подкл\сразу обрывает локалку\ оставил zorin и вот поставил ALT -работаю как домашние а для сети ХРюша\7 -снес как и все остальные\.если-бы сеть на ALT то до конца жизни… я всего лет 7 как освоил комп – стар ужо.

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

Общие сведения.

Для создания общих сетевых ресурсов в среде Windows, применяется протокол CIFS (ранее известный как SMB), поддержка которого в UNIX-подобных системах обеспечивается программным обеспечением Samba . Samba работает по протоколам TCP и UDP , соединение шифруется. С помощью Samba возможно обеспечить не только общий доступ к файлам и принтерам, но и, например, построить контроллер домена с поддержкой Active Directory (об этом в следующий раз). С помощью Samba можно открыть общий доступ не только между Windows и Linux, но и между Linux и Linux. Однако есть некоторые ограничения. Во первых, SMB - это "виндовый" протокол, со всеми вытекающими. Он не слишком хорошо интегрируется с UNIX-системами. Не вдаваясь в сложные технические описания, скажу лишь что скорость передачи данных по Samba медленнее, зачастую значительно, она нестабильна, как и загрузка сетевого канала, а также даёт весьма ощутимую нагрузку на процессор. Поэтому если в вашей домашней сети нет Windows-машин, то предпочтительнее использовать протокол сетевой файловой системы - NFS .

Суть работы NFS весьма проста. Удалённый ресурс встраивается в общее дерево файловой системы, и в результате каталог, который находится на файловом сервере или другом компьютере, отображается в вашей системе как локальный, будто находится на диске. NFS работает по протоколу TCP . NFS весьма полезна при создании так называемых тонких клиентов (бездисковые рабочие станции, в которых система загружается по сети). Скорость передачи данных по NFS в 2 раза выше , чем через Samba, загрузка сети равномерная, а нагрузка на центральный процессор минимальная. Однако у NFS есть два недостатка. Первый - довольно фиговая поддержка в Windows (реализуется через подсистему UNIX и отдельное приложение). Второй - отсутствие шифрования (c версии NFSv4 , для шифрования может использоваться протокол Kerberos). Тем не менее, для Линуксовой сети, NFS - идеальный вариант.

Внимание : на обеих системах должны быть настроены статические IP адреса.В Windows кликнете правой кнопкой на значке сетевых подключений и выберите "Центр управления сетями и общим доступом" , далее "Изменение параметров адаптера" , выберите нужный адаптер (вашу сетевую карту) и зайдите в её свойства. Перейдите в пункт "Протокол Интернета версии 4" и выберите "Использовать следующий IP адрес" :

Если ваши компьютеры соединены напрямую, поле "Основной шлюз" можете оставить пустым. Если через роутер - укажите IP адрес роутера (тот, через который осуществляется доступ к его вэб-интерфейсу, обычно 192.168.0.1). В Linux аналогичную операцию можно провести в Network Manager (настройка сетевых подключений, вкладка IPv4):

Если вы используете фаерволл (брандмауэр Windows либо другое аналогичное ПО, а также iptables в Linux или фаерволл в вашем роутере), убедитесь что открыты нужные порты (Для SAMBA : 135, 139, 445/ TCP ; 137, 138 /UDP . Для NFS : 2049 /TCP ).

Linux => Windows

Представим ситуацию: у вас есть второй компьютер (или файловый сервер), под управлением Ubuntu 14.04 , на котором находится большая коллекция ваших видео, фото и так далее, расположенная на отдельном диске, который монтируется в /media/MyDATA . Этот диск нужно расшарить на компьютер под управлением Windows 8.1 . Первым делом, установим необходимые пакеты:

sudo apt install samba samba-common smbclient

Теперь необходимо сконфигурировать Самбу. У вас есть два пути: консольный и графический .

Консольный.

Открываем файл /etc/samba/smb.conf :

sudo nano /etc/samba/smb.conf

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


workgroup = WORKGROUP
netbios name = Ubuntu-PC
server string = Ubuntu PC
map to guest = bad user
guest account = nobody
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192

#Следовать по симлинкам
unix extensions = no
wide links = yes
follow symlinks = yes

log level = 1

# UTF кодировка
unix charset = UTF-8
dos charset = cp1251
store dos attributes = yes

max log size = 10


path = /media/MyDATA
writeable = yes
available = yes
public = yes
guest ok = yes
force user = nobody
force group = nobody

В секции global описываются общие параметры: WORKGROUP - имя рабочей группы (должно быть одинаково для всех машин в локальной сети), Ubuntu-PC - имя компьютера, с которого расшариваются каталоги (укажите своё), вход без пароля, гостевой доступ и оптимизации для соединения. В секции MyDATA описывается доступ к диску, смонтированному в /media/MyDATA . При желании вы можете указать доступ к отдельным каталогам на этом диске, аналогичным способом. Сохраните файл и выполните команду:

testparm -s

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

Теперь запустите сервер Samba:

sudo service start smbd

Графический.

Для настройки параметров Samba в графическом интерфейсе, существует 2 замечательные утилиты - system-config-samba (есть только в Ubuntu и производных) и gadmin-samba (есть везде). Эти утилиты представляют собой весь конфиг Самбы, выполненный в графическом режиме. Для Ubuntu установим первую утилиту:

sudo apt install syste-config-samba

Здесь всё предельно понятно и в настройках разберётся любой:)

Для других дистрибутивов (например Debian), установите пакет gadmin-samba:

sudo apt install gadmin-samba


После настройки, перезапустите демон Samba. Для Ubuntu:

sudo service restart smbd

sudo systemctl restart smbd.service

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


В Windows необходимо включить сетевое обнаружение. Для этого в центре управления сетями, зайдите в "Изменить дополнительные параметры общего доступа"


После этого, в сетевом окружении, должны появиться расшаренные каталоги.

Linux => Linux

А теперь представим, что у нас есть компьютер с Debian 8 (IP адрес 192.168.0.2 ), и ноутбук с Ubuntu 14.04 (IP адрес 192.168.0.3 ). С ноутбука нужно расшарить раздел диска, который смонтирован в /media/DATA (это раздел для торрентов и прочей файлопомойки). Для этого мы используем NFS :

sudo apt install nfs-kernel-server nfs-common rpcbind

Укажем что нужно расшаривать:

sudo nano /etc/exports

/media/DATA 192.168.0.0/255.255.255.0(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)


/media/DATA - то, что нужно расшарить.
192.168.0.0/255.255.255.0 - только компьютерам в этой подсети будет обеспечен доступ к общему ресурсу (можете указать конкретный IP адрес).
rw - поддержка чтения и записи.
no_root_squash - Позволяет пользователю root (на стороне клиента) иметь доверенный полный доступ к разделу.
no_subtree_check - Если монтируется только часть тома, то сервер будет выполнять проверку принадлежности файла запрошенного клиентом, именно к той части тома, которая примонтирована. Это замедляет передачу данных, по этому зачастую данная опция включена в список параметров.
crossmnt - Этот параметр похож на nohide он дает возможности видеть каталоги смонтированные на основной системе. Таким образом, когда дочерняя файловая система «B» установлена на основной «А», установив crossmnt на «А» имеет тот же эффект, что и установка «nohide» на B.
fsid=0 - NFS-сервер должен быть в состоянии идентифицировать каждую файловую систему, которую экспортирует. Для сервера NFSv4, существует выделенная файловая система, которая является корнем всей экспортируемой файловой системе. fsid = root или fsid = 0 означают одно и то же.

Применяем настройки:

sudo nano /etc/hosts.allow

Указываем доступ для всех машин, находящихся в подсети 192.168.0.0/255.255.255.0 :

nfsd: 192.168.0.0/255.255.255.0
rpcbind: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0

Если вы указали в файле exports только IP адрес нужной машины, то соответственно, указывайте его.

Теперь запустите сервис:

sudo service nfs-kernel-server start

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

sudo apt install nfs-common rpcbind

Создайте директорию для монтирования общего ресурса:

sudo mkdir /media/Share

Монтирование вручную.

sudo mount -t nfs4 192.168.0.3:/ /media/Share

В результате всё содержимое диска /media/DATA (на ноутбуке) окажется доступным на компьютере в каталоге /media/Share , как если бы эти данные хранились на нём. Для того чтобы ресурс монтировался автоматически после загрузки системы, есть два способа.

Монтирование через fstab.

Файл /etc/fstab содержит в себе информацию о присутствующих файловых системах, точках монтирования и параметрах монтирования. Чтобы ресурс /media/DATA монтировался на ваш компьютер автоматически, добавьте в конец файла /etc/fstab следуюущую строку:

192.168.0.3:/ /media/Share nfs user,rw,noauto 0 0

Опция noauto запрещает автоматическое монтирование во время загрузки, так как сеть может быть недоступна в этот момент. Вместо этого, в файловом менеджере, в левой колонке появится пункт Share, кликнув на который, сетевой ресурс автоматически смонтируется. Однако при таком способе монтирования, есть пара существенных недостатков. Во первых, если в момент выключения компьютера, был открыт какой-либо файл, расположенный на сетевом ресурсе, компьютер откажется выключаться. Во-вторых, такая же ситуация произойдёт в случае пропажи связи между клиентом (компьютером) и сервером (ноутбуком). Для того, чтобы этих проблем не было, существует второй способ монтирования.

Монтирование с помощью AutoFS.

AutoFS - это пакет для обеспечения монтирования съёмных и сетевых накопителей, только при обращении к ним. При отсутствии обращения к сетевому ресурсу или съёмному устройству в течении определённого времени, он автоматически размонтируется, и мгновенно монтируется при первом же обращении к нему. Устанавливаем:

sudo apt install autofs

Настраиваем:

sudo nano /etc/auto.master

В конец файла добавляем строку:

/mnt /etc/auto.nfs --timeout=60

/mnt - каталог для монтирования сетевого ресурса.
/etc/auto.nfs - путь к файлу, в котором описаны параметры монтирования.
--timeout=60 - время в секундах, после которого произойдёт размонтирование ресурса (можете указать своё).

Сохраняем и переходим к следующему файлу:

sudo nano /etc/auto.nfs

Добавляем строку:

Share -fstype=nfs,rw,noatime,noexec,nosuid,tcp,async,rsize=32768,wsize=32768,intr,nolock,soft,noauto 192.168.0.3:/

Создадим директорию Share в каталоге /mnt , куда будет монтироваться ресурс:

sudo mkdir /mnt/Share

Вот и всё. Теперь в каталоге /mnt/Share , при первом же обращении к нему, будет появляться содержимое удалённого ресурса /media/DATA . Кнопка подключения сетевого диска появится в файловом менеджере.

Несмотря на кажущуюся простоту доступа к общей папке Windows из Linux некоторые пользователи, особенно начавшие пользоваться Linux, могут столкнуться с проблемой, которая, на первый взгляд, может оказаться неразрешимой. При этом пользователи Windows будут говорить "ничего не знаю – от меня пули вылетают". Чтобы не возникло впечатления о "глючности" Linux попробуем в этом вопросе разобраться.

Рассматривается частный вопрос о работе в домашней сети Linux с общей папкой Windows XP с целью изменения в ней данных, то есть записи и удаления. Содержание публикации не раскрывает работу с более поздними версиями Windows (хотя ситуация с ними может быть похожей), а также работу в доменных сетях, то есть в сетях с централизованным управлением политикой паролей и базой данных пользователей, например, Windows Active Directory.

Итак, на Windows открывается папка общего доступа. Но при обращении пользователя Linux к этой папке через сетевое окружение оказывается, что "достучаться" невозможно даже к узлу.

В самом начале можно столкнуться с проблемой отсутствия доступа даже к рабочей группе.


Это может объясняется небольшой инерционностью при первом обращении по протоколу SMB, который используется для доступа к папкам и файлам Windows из сети. Подождите немного, хотя бы несколько секунд, и повторите попытку. В конечном счёте Вы компьютер "увидите".


При дальнейшем обращении высветится форма запроса полномочий доступа, например:


Пользователь Linux вводит свой пароль и... снова на экране получает эту же форму запроса. И так может продолжаться до бесконечности.

Причина в том, что как в Linux, так и в Windows, в целях обеспечения безопасности на уровне файловой системы действуют так называемые права на файлы и папки. А в данном случае пользователь Linux пытается обратиться к папке Windows под своим именем и паролем, о котором Windows не имеет никакого представления. Обращаться к ресурсу необходимо с использованием тех данных, о которых "знает" Windows. То есть, используя какие-то имя пользователя и пароль Windows, которые Windows известны.

Так как на русскоязычных Windows имена пользователей могут быть кириллическими, то есть, например, Администратор, Вася, Петя, красотка и т.п., то для целей предоставления доступа к папке попросите администратора компьютера Windows завести пользователя с латинским логином или переименовать существующий логин на латинские буквы. Например, можно создать специального пользователя,


у которого будет постоянный пароль и он будет находиться в группе "Пользователи". Этим можно исключить возможные дальнейшие случаи "системного непонимания" между Linux и Windows.

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

Пояснение. Чтобы увидеть полное содержание вкладки "Безопасность" на системе Windows откройте Проводник и в разделе "Сервис – Свойства папки – Вид" снимите галочку в поле "Использовать простой общий доступ к файлам".




Не нужно выставлять "Полный доступ" ни на вкладке "Доступ – Разрешения", ни на вкладке "Безопасность", хотя очень многие поступают именно так. Полный доступ подразумевает разрешение на смену как разрешений на объект, так и его владельца. И если в какой-то мере это может быть допустимо в рамках домашней сети из 2-3 компьютеров, то в других случаях лучше так не делать.

Лучше поставить галочку в поле "Изменение" (Все – это активные, то есть не отключенные, учётные записи пользователей на компьютере Windows).


Далее необходимо перейти к вкладке "Безопасность" и для пользователей компьютера Windows поставить галочку в поле "Запись".



Но и это ещё не всё. Нужно нажать на кнопку "Дополнительно" и для строки с внесённым изменением (столбец "Разрешение – Запись") добавить галочки в полях "Обзор папок", "Содержание папки", "Удаление подпапок и файлов", "Удаление".




При этом установить галочку в поле "Применять эти разрешения к объектам и контейнерам только внутри этого контейнера" (см. рисунок выше).

Ого, сколько всего. Прямо страсти какие-то мексиканские. И всё это надо сделать на Windows.


Теперь вернёмся к вопросу обращения к папке из Linux. Вводим правильные значения. Вместо


укажем имя пользователя в формате компьютер\пользователь. Так как компьютер, к которому осуществляется обращение называется H-38, а функционирующий в моей маленькой сети сервер DHCP назначает имя домена vot, то ввожу необходимые данные и, наконец-то, получаю перечень общих ресурсов компьютера H-38.



Как видно из рисунка, клиент Samba отобразил не только папку Data, но и скрытые ресурсы ADMIN и C, используемые системой Windows для целей администрирования (скрытые ресурсы Windows отображаются значком $ после имени ресурса).

Однако при попытке обращения к папке Data система снова выдаёт запроc на введение учётных данных. При этом по умолчанию предлагается подключиться анонимно.


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

Если пароль пользователя Windows никогда меняться не будет (а в самом начале рекомендовалось создать на Windows пользователя с неизменяемым паролем), то можно выбирать "Запомнить навсегда" и тогда пароль при обращении к папке общего доступа в дальнейшем запрашиваться не будет. Это же справедливо и для обращения к компьютеру. В приводимых примерах пароль не сохраняется.

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

Наверное, можно и как то проще и правильней, но я сделал так.

Итак, задача такая – есть десяток пользователей anna, andy, olya, nataly.. и т.д. У каждого в качестве операционки Ubuntu 10.04. Нужно организовать файловый сервер на отдельной машине Ubuntu 10.04 с папками для данных каждого пользователя с доступом только для этого пользователя и для админа, и папки для обмена файлами для каждой пары пользователей типа anna-andy, anna-olya, andy-olya.. с доступом только для двух пользователей из названия папки и админа. Организуем описанный примитивный файловый сервер!

Захожу на компьютер файлового сервера под учеткой администратора, создаю каталог, скажем «111» и внутри него создаю нужные каталоги:

Чтобы разрешения Samba на запись работали нужно разрешить запись пользователям в каждом нужном ему каталоге. Я не стал долго заморачиваться – все равно через samba будут видны для каждого пользователя с разрешениями необходимыми только те каталоги, которые я в samba открою, поэтому я в терминале выполнил команду

Sudo chmod -R 777 /home/alex/111

дав тем самым всем все права на каталог «111» и все каталоги из него. А в нем у меня все каталоги для файлового сервера и лежат.

Потом зашел в «Система» — «Администрирование» — «Пользователи и группы», создал пользователей. Имена, пароли и ID пользователей должны совпадать на файловом сервере и на компах самих пользователей. О том, что ID должен совпадать, я узнал уже после того, как создал пользователей, поэтому пришлось на компьютерах пользователей его менять для соответствия ID этих пользователей на файловом сервере. Имя и пароль через графическую утилиту задавать понятно как, чтоб задать ID нужно выбрать пользователя, зайти в «Дополнительные параметры» на вкладку «Дополнительно». При этом пользователь, ID которого я меняю должен полностью выйти из системы – если завершение сеанса этого пользователя не помогло – лучше перезагрузиться. У меня почему то не получалось из графического интерфейса поменять ID – он вроде как бы менялся, но при повторном заходе пользователя оказывался старым, поэтому я менял его из терминала. Чтобы посмотреть ID пользователя заходим в файл /etc/passwd и ищем строку с его именем:

vi /etc/passwd
...
andy:x:1008:1009:andy,:/home/andy:/bin/bash
...

В этой сроке первая цифра, в моем случае 1008 и есть ID пользователя andy, если он не совпадает с ID на сервере, то чтоб поменять ID ввожу в терминале компьютера пользователя:

Sudo usermod --uid 1005 andy

Всех этих манипуляций можно избежать, если создавать пользователя командой useradd с параметрами -u (тот самый uid) и — p (пароль), например:

sudo useradd -u 1005 -p userpassword username

Так, каталоги и пользователей я создал, теперь организую общий доступ, для этого мне понадобятся из «Центра приложений Ubuntu» два приложения, которые можно найти, задав для поиска «samba» — это «Samba» и «SMB/CIFS file,print, and login server of Unix»

Установив их, набираю в терминале

Sudo system-config-samba

или иду в «Система» «Администрирование» «Samba».
Потом «Настройка» «Пользователи Samba» «Добавить пользователя»

Выбираю первого пользователя, которому нужен файловый сервер из выпадающего меню «Имя пользователя Unix», ввожу точно такое же имя в графе «Имя пользователя Windows» затем пароль, «ok», «ok». И таким образом добавляю всех пользователей файлового сервера, созданных ранее в «Пользователи и группы». Эти же действия можно выполнить в терминале, к примеру добавление системного пользователя andy в список пользователей samba выглядит так:

smbpasswd -a andy

Smbpasswd -e andy

После добавления пользователей нажимаю зеленый плюсик в окне system-config-samba, в открывшемся окне нажимаю кнопку «Обзор», в открывшемся обзоре нахожу необходимый каталог, скажем «Anna-Andy», выбираю его, ставлю галочки «Запись разрешена» и «Виден»,

на вкладке «Доступ» ставлю галочки напротив пользователей andy и anna. Повторяю эту операцию для всех каталогов. После этого необходимо перезапустить сервис samba, для чего в терминале выполнить

Sudo service smbd restart

Теперь если нажать в главном меню «Переход» «Соединиться с сервером», выбрать в выпадающем меню «Тип сервиса» пункт «Ресурс ОС Windows», ввести в поле «Сервер» его IP адрес, то открывается список каталогов файлового сервера. Далее клацаем по нужному каталогу, вводим имя пользователя и пароль, и если на сервере самба с такими учетными данными ранее я разрешил ходить в этот каталог – он откроется с правами для чтения и записи). Но мне ведь нужно чтобы файлы созданные одним пользователем были доступны для чтения и записи другому пользователю, с которым у первого пользователя этот каталог общий. В графической утилите этот пункт пропущен, поэтому поправим из терминала созданный ранее нами на сервере файл /etc/samba/smb.conf . Чтобы файлы и каталоги, создаваемые пользователем andy в расшаренной папке andy-anna были доступны для чтения и записи пользователю anna, нужно в файле /etc/samba/smb.conf найти пункт и вставить строки create mask = 0777 и directory mask = 0777 , получится так.

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

Общие сведения.

Для создания общих сетевых ресурсов в среде Windows, применяется протокол CIFS (ранее известный как SMB), поддержка которого в UNIX-подобных системах обеспечивается программным обеспечением Samba . Samba работает по протоколам TCP и UDP , соединение шифруется. С помощью Samba возможно обеспечить не только общий доступ к файлам и принтерам, но и, например, построить контроллер домена с поддержкой Active Directory (об этом в следующий раз). С помощью Samba можно открыть общий доступ не только между Windows и Linux, но и между Linux и Linux. Однако есть некоторые ограничения. Во первых, SMB - это "виндовый" протокол, со всеми вытекающими. Он не слишком хорошо интегрируется с UNIX-системами. Не вдаваясь в сложные технические описания, скажу лишь что скорость передачи данных по Samba медленнее, зачастую значительно, она нестабильна, как и загрузка сетевого канала, а также даёт весьма ощутимую нагрузку на процессор. Поэтому если в вашей домашней сети нет Windows-машин, то предпочтительнее использовать протокол сетевой файловой системы - NFS .

Суть работы NFS весьма проста. Удалённый ресурс встраивается в общее дерево файловой системы, и в результате каталог, который находится на файловом сервере или другом компьютере, отображается в вашей системе как локальный, будто находится на диске. NFS работает по протоколу TCP . NFS весьма полезна при создании так называемых тонких клиентов (бездисковые рабочие станции, в которых система загружается по сети). Скорость передачи данных по NFS в 2 раза выше , чем через Samba, загрузка сети равномерная, а нагрузка на центральный процессор минимальная. Однако у NFS есть два недостатка. Первый - довольно фиговая поддержка в Windows (реализуется через подсистему UNIX и отдельное приложение). Второй - отсутствие шифрования (c версии NFSv4 , для шифрования может использоваться протокол Kerberos). Тем не менее, для Линуксовой сети, NFS - идеальный вариант.

Внимание : на обеих системах должны быть настроены статические IP адреса.В Windows кликнете правой кнопкой на значке сетевых подключений и выберите "Центр управления сетями и общим доступом" , далее "Изменение параметров адаптера" , выберите нужный адаптер (вашу сетевую карту) и зайдите в её свойства. Перейдите в пункт "Протокол Интернета версии 4" и выберите "Использовать следующий IP адрес" :

Если ваши компьютеры соединены напрямую, поле "Основной шлюз" можете оставить пустым. Если через роутер - укажите IP адрес роутера (тот, через который осуществляется доступ к его вэб-интерфейсу, обычно 192.168.0.1). В Linux аналогичную операцию можно провести в Network Manager (настройка сетевых подключений, вкладка IPv4):

Если вы используете фаерволл (брандмауэр Windows либо другое аналогичное ПО, а также iptables в Linux или фаерволл в вашем роутере), убедитесь что открыты нужные порты (Для SAMBA : 135, 139, 445/ TCP ; 137, 138 /UDP . Для NFS : 2049 /TCP ).

Linux => Windows

Представим ситуацию: у вас есть второй компьютер (или файловый сервер), под управлением Ubuntu 14.04 , на котором находится большая коллекция ваших видео, фото и так далее, расположенная на отдельном диске, который монтируется в /media/MyDATA . Этот диск нужно расшарить на компьютер под управлением Windows 8.1 . Первым делом, установим необходимые пакеты:

sudo apt install samba samba-common smbclient

Теперь необходимо сконфигурировать Самбу. У вас есть два пути: консольный и графический .

Консольный.

Открываем файл /etc/samba/smb.conf :

sudo nano /etc/samba/smb.conf

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


workgroup = WORKGROUP
netbios name = Ubuntu-PC
server string = Ubuntu PC
map to guest = bad user
guest account = nobody
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192

#Следовать по симлинкам
unix extensions = no
wide links = yes
follow symlinks = yes

log level = 1

# UTF кодировка
unix charset = UTF-8
dos charset = cp1251
store dos attributes = yes

max log size = 10


path = /media/MyDATA
writeable = yes
available = yes
public = yes
guest ok = yes
force user = nobody
force group = nobody

В секции global описываются общие параметры: WORKGROUP - имя рабочей группы (должно быть одинаково для всех машин в локальной сети), Ubuntu-PC - имя компьютера, с которого расшариваются каталоги (укажите своё), вход без пароля, гостевой доступ и оптимизации для соединения. В секции MyDATA описывается доступ к диску, смонтированному в /media/MyDATA . При желании вы можете указать доступ к отдельным каталогам на этом диске, аналогичным способом. Сохраните файл и выполните команду:

testparm -s

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

Теперь запустите сервер Samba:

sudo service start smbd

Графический.

Для настройки параметров Samba в графическом интерфейсе, существует 2 замечательные утилиты - system-config-samba (есть только в Ubuntu и производных) и gadmin-samba (есть везде). Эти утилиты представляют собой весь конфиг Самбы, выполненный в графическом режиме. Для Ubuntu установим первую утилиту:

sudo apt install syste-config-samba

Здесь всё предельно понятно и в настройках разберётся любой:)

Для других дистрибутивов (например Debian), установите пакет gadmin-samba:

sudo apt install gadmin-samba


После настройки, перезапустите демон Samba. Для Ubuntu:

sudo service restart smbd

sudo systemctl restart smbd.service

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


В Windows необходимо включить сетевое обнаружение. Для этого в центре управления сетями, зайдите в "Изменить дополнительные параметры общего доступа"


После этого, в сетевом окружении, должны появиться расшаренные каталоги.

Linux => Linux

А теперь представим, что у нас есть компьютер с Debian 8 (IP адрес 192.168.0.2 ), и ноутбук с Ubuntu 14.04 (IP адрес 192.168.0.3 ). С ноутбука нужно расшарить раздел диска, который смонтирован в /media/DATA (это раздел для торрентов и прочей файлопомойки). Для этого мы используем NFS :

sudo apt install nfs-kernel-server nfs-common rpcbind

Укажем что нужно расшаривать:

sudo nano /etc/exports

/media/DATA 192.168.0.0/255.255.255.0(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)


/media/DATA - то, что нужно расшарить.
192.168.0.0/255.255.255.0 - только компьютерам в этой подсети будет обеспечен доступ к общему ресурсу (можете указать конкретный IP адрес).
rw - поддержка чтения и записи.
no_root_squash - Позволяет пользователю root (на стороне клиента) иметь доверенный полный доступ к разделу.
no_subtree_check - Если монтируется только часть тома, то сервер будет выполнять проверку принадлежности файла запрошенного клиентом, именно к той части тома, которая примонтирована. Это замедляет передачу данных, по этому зачастую данная опция включена в список параметров.
crossmnt - Этот параметр похож на nohide он дает возможности видеть каталоги смонтированные на основной системе. Таким образом, когда дочерняя файловая система «B» установлена на основной «А», установив crossmnt на «А» имеет тот же эффект, что и установка «nohide» на B.
fsid=0 - NFS-сервер должен быть в состоянии идентифицировать каждую файловую систему, которую экспортирует. Для сервера NFSv4, существует выделенная файловая система, которая является корнем всей экспортируемой файловой системе. fsid = root или fsid = 0 означают одно и то же.

Применяем настройки:

sudo nano /etc/hosts.allow

Указываем доступ для всех машин, находящихся в подсети 192.168.0.0/255.255.255.0 :

nfsd: 192.168.0.0/255.255.255.0
rpcbind: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0

Если вы указали в файле exports только IP адрес нужной машины, то соответственно, указывайте его.

Теперь запустите сервис:

sudo service nfs-kernel-server start

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

sudo apt install nfs-common rpcbind

Создайте директорию для монтирования общего ресурса:

sudo mkdir /media/Share

Монтирование вручную.

sudo mount -t nfs4 192.168.0.3:/ /media/Share

В результате всё содержимое диска /media/DATA (на ноутбуке) окажется доступным на компьютере в каталоге /media/Share , как если бы эти данные хранились на нём. Для того чтобы ресурс монтировался автоматически после загрузки системы, есть два способа.

Монтирование через fstab.

Файл /etc/fstab содержит в себе информацию о присутствующих файловых системах, точках монтирования и параметрах монтирования. Чтобы ресурс /media/DATA монтировался на ваш компьютер автоматически, добавьте в конец файла /etc/fstab следуюущую строку:

192.168.0.3:/ /media/Share nfs user,rw,noauto 0 0

Опция noauto запрещает автоматическое монтирование во время загрузки, так как сеть может быть недоступна в этот момент. Вместо этого, в файловом менеджере, в левой колонке появится пункт Share, кликнув на который, сетевой ресурс автоматически смонтируется. Однако при таком способе монтирования, есть пара существенных недостатков. Во первых, если в момент выключения компьютера, был открыт какой-либо файл, расположенный на сетевом ресурсе, компьютер откажется выключаться. Во-вторых, такая же ситуация произойдёт в случае пропажи связи между клиентом (компьютером) и сервером (ноутбуком). Для того, чтобы этих проблем не было, существует второй способ монтирования.

Монтирование с помощью AutoFS.

AutoFS - это пакет для обеспечения монтирования съёмных и сетевых накопителей, только при обращении к ним. При отсутствии обращения к сетевому ресурсу или съёмному устройству в течении определённого времени, он автоматически размонтируется, и мгновенно монтируется при первом же обращении к нему. Устанавливаем:

sudo apt install autofs

Настраиваем:

sudo nano /etc/auto.master

В конец файла добавляем строку:

/mnt /etc/auto.nfs --timeout=60

/mnt - каталог для монтирования сетевого ресурса.
/etc/auto.nfs - путь к файлу, в котором описаны параметры монтирования.
--timeout=60 - время в секундах, после которого произойдёт размонтирование ресурса (можете указать своё).

Сохраняем и переходим к следующему файлу:

sudo nano /etc/auto.nfs

Добавляем строку:

Share -fstype=nfs,rw,noatime,noexec,nosuid,tcp,async,rsize=32768,wsize=32768,intr,nolock,soft,noauto 192.168.0.3:/

Создадим директорию Share в каталоге /mnt , куда будет монтироваться ресурс:

sudo mkdir /mnt/Share

Вот и всё. Теперь в каталоге /mnt/Share , при первом же обращении к нему, будет появляться содержимое удалённого ресурса /media/DATA . Кнопка подключения сетевого диска появится в файловом менеджере.



Понравилась статья? Поделиться с друзьями: