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

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

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

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

79
задан 25 September 2015 в 07:26

3 ответа

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

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

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


Windows → Ubuntu

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

enter image description here

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

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

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

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

enter image description here

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

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

enter image description here

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

enter image description here

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

Однако, если вы создадите файл в Windows и поместите его в общую папку портативного компьютера, вы не сможете открыть этот файл, когда подойдете к портативному компьютеру.Это связано с тем, что 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. Введите следующие две строки (по одной), чтобы остановить и запустить самбу:

sudo stop smbd
sudo start smbd

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

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


Ubuntu → Ubuntu

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

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

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

sudo apt-get install openssh-server

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

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

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

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

sftp connection[7]

В разделе Server Address введите:

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

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

Если вы хотите предоставить общий доступ к разделу на втором жестком диске рабочего стола, в поле Server Address введите:

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

Replace путь / к /.../ диску с фактическим путем.

В качестве альтернативы, если вам известен локальный IP-адрес портативного компьютера, вы можете заменить laptop_name.local локальным IP-адресом портативного компьютера.

Нажмите Подключите . Вы увидите диалоговое окно с паролем:

Password for SSH

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

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

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

См. На этой странице изображения из более старой версии.

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

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

80
ответ дан 25 September 2015 в 07:26

Я собираюсь предложить некоторые альтернативы, которые выглядят не совсем точно как 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.stackexc hange.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

В основном он позволяет монтировать папка с сервера на гостевой машине.

Настройка и устранение неполадок потенциально немного сложнее, чем rsync , но определенно выполнимая, это хорошая статья: https: // www .digitalocean.com / сообщество / учебные пособия / как настроить-ан-nfs-mount-o n-ubuntu-16-04

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

6
ответ дан 25 September 2015 в 07:26
sudo apt-get install servefile

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

Примеры:

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


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

  • servefile -u ~ / Pictures # Позволяет вам загружать файлы в папку Pictures

    upload files

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

    content of the folder

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

    enter image description here

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

3
ответ дан 25 September 2015 в 07:26

Другие вопросы по тегам:

Похожие вопросы: