Как поделиться файлами через локальную сеть?


65

У меня есть рабочий стол (Ubuntu 13.04 и Win 7 Home Premium) и ноутбук (Ubuntu 12.04) , оба имеют адаптеры WiFi. У меня также есть WiFi-роутер, подключенный к интернету, к которому оба моих компьютера могут получить доступ.

Я хочу обмениваться файлами между моим настольным компьютером и ноутбуком, используя WiFi (аналогично Homegroup в Windows 7, но без использования кабелей Ethernet) . Как мне это настроить?

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



1
Это не дубликат, так как он требует обмена файлами между Ubuntu и Windows, а также с машинами Ubuntu и Ubuntu. Обратите внимание, что на рабочем столе есть как Ubuntu, так и Windows. Когда он загружается в Ubuntu, а на ноутбуке установлена ​​Ubuntu, у вас есть общий доступ к файлам Ubuntu to Ubuntu.
user68186

Ответы:


77

Настройка сети

Подключите и настольный компьютер, и ноутбук к маршрутизатору WiFi с помощью стандартной настройки Чтобы убедиться, что оба компьютера подключены, проверьте, что вы можете подключиться к Интернету с обоих компьютеров.

Необязательно: В настройках маршрутизатора просмотрите локальные IP-адреса, назначенные для настольного компьютера и ноутбука. Они могут выглядеть как 192.168.0.100 или 192.168.1.199. Если существует возможность назначить эти конкретные IP-адреса постоянно в маршрутизаторе, вы можете сделать это.


Windows → Ubuntu

Шаг 1 На ноутбуке создайте папку, которой вы хотите поделиться. Там может быть папка с именем «Public», выберите эту, если хотите. Щелкните правой кнопкой мыши значок папки и выберите «Параметры общего доступа». Откроется новое окно:

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

Установите флажок «Поделиться этой папкой».

Вы также можете установить два других флажка «Разрешить другим создавать и удалять файлы в этой папке». Это позволит вам на рабочем столе пользователя Windows создавать и удалять файлы в этой папке.

Флажок «Гостевой доступ» не требует пояснений. Это может быть полезно, если ваш идентификатор пользователя Windows не совпадает с вашим идентификатором пользователя Ubuntu.

Это может сказать вам, что служба общего доступа не установлена:

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

Нажмите «Установить службу» и дайте ему установить программное обеспечение, предоставив пароль для учетной записи пользователя ноутбука, когда появится соответствующий запрос. Вам может быть предложено установить больше программного обеспечения, как libpam-smbpass. Установите все программное обеспечение. Он попросит вас перезапустить службы и нажать кнопку «Да».

Шаг 2. Откройте окно свойств папки «Public», щелкнув по ней правой кнопкой мыши. Перейдите на вкладку разрешений и убедитесь, что она выглядит следующим образом:

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

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

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

Теперь вы сможете редактировать файлы, созданные в Ubuntu, в папке «Public» на ноутбуке в проводнике Windows.

Однако, если вы создадите файл в Windows и поместите его в папку Public на ноутбуке, вы не сможете открыть этот файл, когда попадете на ноутбук. Это связано с тем, что Windows и Ubuntu не понимают принадлежность и права доступа к файлам друг друга. Таким образом, в ноутбуке с Ubuntu файл, созданный Windows, принадлежит «Никому». Вам придется открыть Nautilus в качестве администратора и изменить владельца и права на чтение и запись, находясь в ноутбуке.

Шаг 3. Перейдите в Windows на настольном компьютере и откройте Проводник Windows. Нажмите на треугольник рядом с Сетью на левой панели. В раскрывающемся списке вы сможете выбрать имя ноутбука, на котором работает Ubuntu .

Теперь вы сможете увидеть свою общую папку (скажем, «Public») с ноутбука в проводнике Windows. Нажмите на папку «Public» и увидите файлы в папке. Вы должны иметь возможность копировать файлы из общей папки в Ubuntu в локальную папку Windows.

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


Ubuntu → Windows

Шаг 1 Настройте общий доступ к папкам Windows, используя методы, доступные для Windows. следуйте инструкциям по ссылке выше для части Windows.

Шаг 2 Откройте терминал в ноутбуке Ubuntu, нажав Ctrl+ Alt+, Tи введите:

sudo -H gedit /etc/samba/smb.conf

и искать строку:

;   name resolve order = lmhosts host wins bcast

и отредактируйте его, чтобы он выглядел так

   name resolve order = bcast lmhosts host wins 

Обратите внимание, нет; в начале отредактированной строки. Сохраните файл и выйдите из Gedit. Введите следующие две строки (по одной за раз), чтобы остановить и запустить samba:

sudo stop smbd
sudo start smbd

Шаг 3 На ноутбуке откройте Nautilus, браузер файлов и нажмите « Сеть» на левой панели. Нажмите «Обзор сети». Нажмите на значки в главном окне сети Nautilus и найдите рабочий стол Windows и общую папку. Убедитесь, что вы можете копировать файлы из и в эту папку.

См. Ошибку «Не удалось получить список общих ресурсов с сервера» при просмотре общего ресурса с помощью Nautilus для получения справки по редактированию файла smb.conf.


Убунту → Убунту

Загрузите рабочий стол в Ubuntu.

На настольном компьютере и ноутбуке выполните следующие действия, чтобы убедиться, что ssh-сервер установлен:

Откройте терминал нажатием Ctrl+ Alt+ Tи введите

sudo apt-get install openssh-server

Введите ваш пароль при появлении запроса. Курсор не будет двигаться при вводе пароля. Это нормально.

Это установит ssh-сервер, если он еще не установлен. Если он уже установлен, он ничего не будет делать.

Первый рабочий стол:

Откройте Nautilus и найдите пункт меню «Другие места». Внизу найдите Connect to Server:

соединение sftp [7]

Под адресом сервера введите:

sftp://laptop_user_id@laptop_name.local/home/laptop_user_id

где laptop_user_idидентификатор пользователя, который вы создали на своем ноутбуке. Вы можете найти свой идентификатор пользователя, набрав whoamiв терминале. И laptop_nameэто имя, которое вы дали ноутбуку при установке Ubuntu.

Если вы хотите поделиться разделом на втором жестком диске рабочего стола, в поле Адрес сервера введите:

sftp://desktop_user_id@desktop_name.local/path/to/the/mount/point/of/the/partition/in/second/hard/drive

Заменить path/to/.../driveна фактический путь.

Кроме того, если вы знаете локальный IP-адрес вашего ноутбука, вы можете заменить его laptop_name.localна локальный IP-адрес ноутбука.

Нажмите Connect. Вы увидите диалоговое окно пароля:

Пароль для SSH

Введите пароль, связанный с laptop_user_id, и выберите, хотите ли вы, чтобы пароль запоминался или нет. Снова нажмите Connect.

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

Обратите внимание, что в разделе « Сеть» на левой панели Nautilus есть новая запись, которая начинается с laptop_user_id. Щелкните правой кнопкой мыши и выберите «Добавить закладку», чтобы создать постоянную закладку для домашней папки вашего ноутбука в Nautilus of the Desktop.

Смотрите эту страницу для фотографий из более старой версии.

Теперь ноутбук

Выполните тот же процесс, что и на рабочем столе выше.


Я попробую метод Ur и отвечу U, до тех пор Спасибо большое за ответ! -в user68186
Гаурав

2
:) Готово, я установил SSH на своем ноутбуке, как сказал U, и моя работа завершена, теперь я вижу мой ноутбук на своем рабочем столе и мой рабочий стол на своем ноутбуке, большое спасибо и большое спасибо за время, потраченное на этот вопрос.
Гаурав

2
@ Gaurav Samba - это сервис, работающий в фоновом режиме. Графического интерфейса пользователя с таким именем не существует. Вот почему вы не найдете его в Dash. На каком этапе вы застряли? Можете ли вы увидеть общую папку в Windows из Ubuntu? Можете ли вы увидеть общую папку в Ubuntu из Windows?
user68186

1
Обратите внимание, что для Ubuntu в Ubuntu поле ввода «Подключиться к серверу» теперь отображается в нижней части страницы «Другие местоположения» для более поздних версий файлов (Nautilus) и на удивление легко пропустить - askubuntu.com/a/851681
bonger

1
@ Бонгер Спасибо! Я обновил текст и изображение, чтобы отразить изменения.
user68186

3

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

HTTP-сервер

HTTP - это протокол, используемый для доступа к обычным веб-сайтам, поэтому каждая ОС была вынуждена его реализовать!

Найдите свой IP на исходном компьютере, например 192.168.0.10. На Ubuntu:

ifconfig

Создайте сервер в каталоге, содержащем файл, который вы хотите передать:

python -m SimpleHTTPServer 8080

На принимающем компьютере откройте браузер и посетите:

192.168.0.10:8080

Теперь вы можете перемещаться по каталогам к нужному файлу.

Я не уверен, что этот метод быстрый / надежный, но он один из самых простых в настройке и переносимый.

Более быстрые альтернативы обсуждаются по адресу: https://stackoverflow.com/questions/12905426/what-is-a-faster-alternative-to-pythons-simplehttpserver

Rsync

Это отличный вариант для двух компьютеров с Ubuntu: https://en.wikipedia.org/wiki/Rsync

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

ssh server-username@192.168.0.10

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

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

sudo apt-get install ssh

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

rsync -av server-username@192.168.0.10:/full/path/to/remote/directory .

Несколько каталогов могут быть скопированы за один раз, как описано на https://unix.stackexchange.com/questions/308810/copying-multiple-files-using-rsync-over-ssh :

rsync -av 'server-username@192.168.0.10:/full/path/to/remote/directory "/full/path/to/remote/directory with space"' .

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

Это может быть непросто для Windows:

NFS

Опять же, в основном для двух машин с Ubuntu, это SAMBA для Linux с поддержкой, встроенной в ядро ​​Linux: https://en.wikipedia.org/wiki/Network_File_System

В основном это позволяет вам mountпапку с сервера на гостевой.

Установка и устранение неполадок потенциально немного сложнее rsync, но, безусловно, выполнимо, это хорошая статья: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on- убунт-16-04

Может быть, есть также некоторые реализации Windows: https://docs.microsoft.com/en-us/windows-server/storage/nfs/nfs-overview, но я предполагаю, что Microsoft должна обеспечить лучшую поддержку своего собственного протокола SMB.


1
sudo apt-get install servefile

Служебный файл идеально подходит для случайного совместного использования, он запускает http-сервер на порту 8080 (если не указан параметр -p < порт >), поэтому он может быстро обмениваться данными с любым устройством с помощью браузера.

Примеры:

  • servefile filename # Просто обслуживает файл


    Я получаю 3 URL-адреса, потому что у меня есть 3 IP-адреса из 3 разных локальных сетей, обычно вы получаете только 1, но это здорово, что показывает это.

  • servefile -u ~ / Pictures # Давайте загрузим файлы в папку Pictures

    загрузить файлы

  • servefile -l ~ / Pictures # Обслуживает содержимое папки

    содержимое папки

  • servefile -tc gzip ~ / Pictures # создает файл tar из любого файла или папки и сжимает его на лету

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

Кстати, с помощью этого метода я достиг скорости передачи 1 Гбит / с (максимальная скорость моей локальной сети).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.