Я подключаю свой ноутбук к телефону.
Есть ли способ получить доступ к файловой системе на моем ноутбуке с мобильного телефона во время подключения? Я, например, хотел бы иметь возможность доступа к файлам изображений с моего ноутбука на телефоне. (Дополнительная информация: у меня нет доступа к Wi-Fi на телефоне, и я не хочу использовать 3G для локальной передачи файлов).
Ноутбук: Ubuntu 16.04 LTS
Телефон: Samsung Galaxy S5
Используйте модуль Python для запуска основного HTTP-сервера и используйте веб-браузер на мобильном телефоне для доступа к локальному ПК через USB-модем.
Обзор настройки и использования
Мобильный телефон подключен к локальному ПК через кабель USB.
Когда пользователь завершит доступ, перейдите на локальный ПК и нажмите Ctrl kbd> + C kbd> чтобы остановить HTTP-сервер, работающий в терминале. Или простое закрытие терминала также может завершить процесс.
Часть А. Настройка на локальном ПК
Убедитесь, что Python установлен на локальном ПК (запустите python --version
в терминале, чтобы проверить версию, что повлияет на шаг 3).
Откройте терминал
Сначала проверьте IP-адрес локального ПК с помощью команды ip
или ifconfig
(в зависимости от того, что работает). В следующем примере выходных данных показано 192.168.XX.YYY
- это IP-адрес, который был назначен локальному ПК через USB-модем.
$ ip addr show usb0
3: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
inet 192.168.XX.YYY/** brd 192.168.XX.ZZZ scope global usb0
valid_lft forever preferred_lft forever
inet6 ****::****:****:****:****/** scope link
valid_lft forever preferred_lft forever
$ ifconfig usb0
usb0 Link encap:Ethernet HWaddr **:**:**:**:**:**
inet addr:192.168.XX.YYY Bcast:192.168.XX.ZZZ Mask:255.255.255.0
inet6 addr: ****::****:****:****:****/** Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
Затем запустите HTTP-сервер, используя модуль Python, с любым доступным номером порта, т. Е. 31415 (легко запоминается как «pi»). В следующем примере показано, что модуль http.server
используется для Python 3, в противном случае используйте модуль SimpleHTTPServer
для Python 2.
$ python -m http.server <port_number>
Serving HTTP on 0.0.0.0 port ***** ...
Кроме того, если на локальном ПК включен брандмауэр, добавьте новое правило, разрешающее входящее соединение с номером порта и IP-адресом (это будет другой набор вопросов и ответов). В противном случае временно отключить брандмауэр будет просто для простоты взамен низкого уровня безопасности.
Часть B. Доступ с мобильного телефона
Убедитесь, что USB-модем остается включенным ; Никаких дополнительных настроек.
Откройте веб-браузер
Перейдите на http://192.168.XX.YYY:<port_number>
, где 192.168.XX.YYY
- это IP-адрес, используемый локальным ПК, а <port_number>
- любой доступный. номер порта на локальном ПК.
В веб-браузере будет отображаться список каталогов текущего рабочего каталога, который по умолчанию является домашним каталогом текущего пользователя.
Пользователь теперь может получить доступ к любым файлам и каталогам в текущем рабочем каталоге для просмотра и загрузки.
Ограничения и совместимость
HTTP-сервер разрешит доступ только для чтения, что достаточно для просмотра и загрузки. Пользователь не сможет изменять файлы на локальном ПК. Если пользователю нужен доступ для чтения и записи, используйте другой метод (возможно, с использованием SFTP или SSH, которого я не знаю).
Метод HTTP-сервера будет работать до тех пор, пока включен USB-модем (известен IP-адрес), независимо от того, включен или отключен режим полета или сотовые данные. Вероятно, работа на мобильных телефонах с любой версией Android (не уверен для других мобильных операционных систем).
Протестировано с использованием Python 2.7 и Python 3.4, с включенным и отключенным UFW в Xubuntu 14.04 и включенным USB-модемом в Android 7.1.1.
Ссылки
SimpleHTTPServer - Простой обработчик HTTP-запросов из документации по Python 2.
http - модули HTTP из документации по Python 3
Как вы решаете, какой порт использовать? в переполнении стека обсудил, какой порт использовать.
Как проверить открытый / закрытый порт на моем компьютере? в Ask Ubuntu упоминал команды для проверки открытого или закрытого порта на компьютере.
Связанные посты в сети SE
Как открыть общий доступ к папке с другой машиной Linux в той же домашней сети? on Ask У Ubuntu есть один из ответов, в котором упоминается SimpleHTTPServer, но в некоторой степени отсутствует объяснение.
Как я могу получить доступ к своему настольному компьютеру, когда он привязан к моему телефону Android? на Super User обсуждал переадресацию портов с использованием iptables.
Как я могу получить доступ к своему локальному хосту с моего устройства Android? в переполнении стека содержит смешанные ответы, касающиеся эмулятора и реального устройства.
Вот мое решение.
Создание
sudo /sbin/ifconfig
, затем поиск
enp0s20u2: {...}
, который включает следующее свойство:
inet 192.168.xx.xxx
Был ли хороший IP-адрес для поиска в мое дело.
Затем я подключился к локальному хосту своего компьютера с мобильного телефона в режиме модема, введя в строке URL-адреса своего мобильного телефона следующий адрес:
// where PORT is effectively the computer localhost's port number
// on which you want to connect.
inet 192.168.xx.xxx:{PORT}
gnome-screensaver-command
может также быть замененxscreensaver-command
, таким образом, никакая дополнительная установка не требуется. Без&& dbus-send...
просто добирается часть первая, блокировка (без приостанавливают); с ним каждый добирается, приостанавливание с соединяют пробуждение. Прекрасный. – Marius Hofert 18 May 2012 в 03:34gnome-screensaver-command
может также быть замененxscreensaver-command
, таким образом, никакая дополнительная установка не требуется. Без&& dbus-send...
просто добирается часть первая, блокировка (без приостанавливают); с ним каждый добирается, приостанавливание с соединяют пробуждение. Прекрасный. – Marius Hofert 18 May 2012 в 03:34gnome-screensaver-command
может также быть замененxscreensaver-command
, таким образом, никакая дополнительная установка не требуется. Без&& dbus-send...
просто добирается часть первая, блокировка (без приостанавливают); с ним каждый добирается, приостанавливание с соединяют пробуждение. Прекрасный. – Marius Hofert 18 May 2012 в 03:34gnome-screensaver-command
может также быть замененxscreensaver-command
, таким образом, никакая дополнительная установка не требуется. Без&& dbus-send...
просто добирается часть первая, блокировка (без приостанавливают); с ним каждый добирается, приостанавливание с соединяют пробуждение. Прекрасный. – Marius Hofert 18 May 2012 в 03:34gnome-screensaver-command
может также быть замененxscreensaver-command
, таким образом, никакая дополнительная установка не требуется. Без&& dbus-send...
просто добирается часть первая, блокировка (без приостанавливают); с ним каждый добирается, приостанавливание с соединяют пробуждение. Прекрасный. – Marius Hofert 18 May 2012 в 03:34gnome-screensaver-command
может также быть замененxscreensaver-command
, таким образом, никакая дополнительная установка не требуется. Без&& dbus-send...
просто добирается часть первая, блокировка (без приостанавливают); с ним каждый добирается, приостанавливание с соединяют пробуждение. Прекрасный. – Marius Hofert 18 May 2012 в 03:34