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

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

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

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

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

Подключите как настольный компьютер, так и ноутбук к Wi-Fi-маршрутизатору, используя стандартную настройку. Это означает, что любой из компьютеров может быть подключен либо по Wi-Fi, либо по кабелям Ethernet. Однако, если вы позже переключите один (или оба) компьютера (компьютеров) с Wi-Fi на кабель Ethernet (или наоборот), локальный IP-адрес этого компьютера, вероятно, изменится. Это повлияет на настройку общего доступа к файлам.

Чтобы проверить, подключены ли оба компьютера, проверьте, можете ли вы выйти в Интернет с обоих компьютеров.

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


Windows → Ubuntu

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

enter image description here

Установите флажок "Предоставить общий доступ к этой папке".;

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

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

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

enter image description here

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

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

enter image description here

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

enter image description here

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

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

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

Теперь вы должны иметь возможность просматривать свою общую папку (скажем, "Общедоступную") с ноутбука в проводнике Windows. Нажмите на "Общедоступную" папку и посмотрите файлы в папке. Вы должны иметь возможность копировать файлы из общей папки в 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 smbdsudo start smbd

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

Видеть "Не удалось получить список общих ресурсов с сервера" ошибка при просмотре общего ресурса с помощью Nautilus для справки по редактированию smb.conf.


Ubuntu → Ubuntu

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

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

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

sudo apt-get install openssh-server

Введите свой пароль при появлении соответствующего запроса. Курсор не будет перемещаться, когда вы вводите пароль. Это нормально.

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

Сначала Рабочий Стол:

Откройте Nautilus и найдите пункт меню "Другие локации". Внизу найдите пункт Подключиться к серверу:

sftp connection7

В поле Адрес Сервера Введите:

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. Вы увидите диалоговое окно ввода пароля:

Password for SSH

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

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

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

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

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

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

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

HTTP-сервер

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

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

ifconfig

Создайте сервер в каталоге, содержащем файл, который вы хотите перенести. С Python 3 (Python по умолчанию в Ubuntu 20.04 и более поздних версиях):

python3 -m http.server 8080

или в Python 2:

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-ubuntu-16-04

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

scp

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

Как только вы сможете использовать SSH, вы можете копировать отдельные файлы с помощью scp как:

scp username@remote-hostname:/path/to/remote/src path/to/local/destscp path/to/local/src username@remote-hostname:/path/to/remote/dest 

SSHFS

Это также работает по SSH, поэтому еще раз требуется вход по SSH.

С помощью SSHFS вы создаете монтирование по SSH. немного похоже на NFS, но проще в настройке и, вероятно, медленнее:

sudo sshfs username@remote-hostname:/path/to/remote/src path/to/local/dir

path/to/local/dir теперь содержит то же содержимое, что и /path/to/remote/src и автоматически синхронизируется.

Обновление: здесь есть множество альтернатив для различных вариантов использования https://stackoverflow.com/questions/12905426/what-is-a-faster-alternative-to-pythons-http-server-or-simplehttpserver?rq=1


sudo apt-get install servefile

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

Примеры:

  • серв-файл имя файла # Просто обслуживает файл


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

  • servefile -u ~/Фотографии # Давайте вы будете загружать файлы в Картинки папка

upload files

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

content of the folder

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

enter image description here

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

Связанные: networking - How to transfer files between Ubuntu and Windows? - Ask Ubuntu

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