如果我正在进行网络共享,如何通过手机访问 Ubuntu 笔记本电脑上的文件?

如果我正在进行网络共享,如何通过手机访问 Ubuntu 笔记本电脑上的文件?

我正在将我的笔​​记本电脑和我的手机绑定。

有没有办法在网络共享时通过手机访问笔记本电脑上的文件系统?例如,我希望能够通过手机访问笔记本电脑上的图像文件。(附加信息:我的手机没有 wifi 访问权限,并且我不想使用 3G 进行本地文件传输)。

笔记本电脑:Ubuntu 16.04 LTS

手机:三星 Galaxy S5

答案1

使用 Python 模块运行一个基本的 HTTP 服务器,并使用手机上的网络浏览器通过 USB 网络共享访问本地主机 PC。

设置和使用概述

手机通过 USB 线连接到本地主机 PC。

  • 在手机上设置(USB 网络共享已启用
  • 在本地主机 PC 上设置(参见A 部分
  • 通过手机访问(见B 部分。

当用户完成访问后,转到本地主机 PC 并按Ctrl+C停止终端中正在运行的 HTTP 服务器。或者简单地关闭终端也可以终止该过程。

A 部分:在本地主机 PC 上进行设置

确保本地主机 PC 上安装了 Python(python --version在终端中运行以检查版本,这将影响步骤 3)。

  1. 打开终端

  2. ip首先,使用或命令(以有效者为准)检查本地主机 PC 的 IP 地址ifconfig。以下示例输出显示的192.168.XX.YYY是通过 USB 网络共享分配给本地主机 PC 的 IP 地址。

    $ 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
              ...
    
  3. 然后,使用 Python 模块启动 HTTP 服务器,端口号可以是任意的,例如 31415(记住为“pi”即可)。以下示例显示http.server模块用于 Python 3,否则使用SimpleHTTPServer模块用于 Python 2。

    $ python -m http.server <port_number>
    Serving HTTP on 0.0.0.0 port ***** ...
    

此外,如果本地 PC 已启用防火墙,请添加一条新规则以允许来自端口号和 IP 地址的传入连接(这将是另一组问答)。否则,暂时禁用防火墙只是为了简单起见,但安全性较低。

B部分:通过手机访问

确保 USB 网络共享保持已启用;无需进一步配置。

  1. 打开 Web 浏览器

  2. 转到,http://192.168.XX.YYY:<port_number>其中192.168.XX.YYY是本地主机 PC 使用的 IP 地址,<port_number>是本地主机 PC 上任何可用的端口号。

  3. 网络浏览器将显示目录列表当前工作目录,默认为当前用户的主目录。

用户现在可以访问当前工作目录中的任何文件和目录以进行浏览和下载。

限制和兼容性

HTTP 服务器将允许只读访问,这对于浏览和下载目的来说已经足够了。用户将不是能够修改本地主机 PC 上的文件。如果用户需要读写权限,则使用其他方法(可能使用 SFTP 或 SSH,我不知道)。

只要启用了 USB 网络共享(已知 IP 地址),HTTP 服务器方法就会起作用,无论飞行模式或蜂窝数据是否打开或关闭。可能适用于任何 Android 版本的手机(不确定是否适用于其他移动操作系统)。

使用 Python 2.7 和 Python 3.4 进行测试,在 Xubuntu 14.04 上启用和禁用 UFW,在 Android 7.1.1 上启用 USB 网络共享。

参考

SE 网络上的相关文章

答案2

这是我的解决方案。

制作

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}

相关内容