安装并设置 hostapd

安装并设置 hostapd

我希望能够通过我的 Android 手机和平板电脑访问 Ubuntu 笔记本电脑上的文件。理想情况下,我希望通过我自己的安全 Wlan 进行此操作,然后通过 sftp 或 Samba 共享进行此操作。由于没有可供我访问的 Wlan,因此我想使用笔记本电脑的内置 wifi 或 Wifi USB 棒创建该 Wlan 网络。普通 Android 设备应该可以访问此 Wlan。

问题如下:在网络管理器小程序中选择“创建新无线网络”时,创建的网络在我的任何移动设备上都不可用。我被告知这是因为这是一个“临时”网络,这些设备不支持。

有一些关于如何创建托管网络的说明(不确定这是否是正确的术语),但这些说明看起来非常复杂,而且彼此之间通常有所不同。此外,所有这些说明都是为了让笔记本电脑的互联网连接通过 Wifi 可用 - 我不需要。我所需要的只是 Wifi 网络使笔记本文件可用,因此唯一需要通过此 Wlan 访问的主机是笔记本。

有没有(希望)简单的方法来启动这样的 WLan 网络?如果没有,是否可以使用其他类型的硬件(除了简单的 USB Wifi 棒)来实现我想要的功能,以便我可以创建一个仅我的笔记本电脑可访问的 Wlan?

我认为,随着移动设备数量的不断增加,以及移动电话/平板电脑和笔记本电脑都内置了 Wlan 硬件,奇怪的是,没有简单的方法将它们直接连接,并且不需要两个设备都可以访问其他 Wlan。

编辑:我认为这可能不是重复的,因为另一个问题的答案以及许多其他通常略有不同的方法都尝试共享提供接入点的计算机的互联网连接,而我只想访问此计算机上的文件或使用那里的服务,只需使用 IP 地址即可。所以我正在寻找的是实现此目的的最简单方法。我想我可能在此期间找到了一个解决方案,它不像建议的重复答案那样复杂,但我似乎无法在这里创建答案。

答案1

以下是我认为可以实现我想要的最小步骤。目前,这些步骤仅适用于额外的 Wifi USB 棒,不适用于内置 Wifi 硬件。我会在了解更多信息后对其进行编辑...

安装并设置 hostapd

为了使 Wifi 硬件(笔记本电脑内置的硬件或一些额外的 Wifi USB 棒)在非 ad-hoc 模式下工作,hostapd 软件必不可少。请注意,要使此功能正常工作,Wifi 硬件需要得到 hostapd 软件的支持,并且硬件需要能够支持非 ad-hoc 模式。

  1. 使用安装软件sudo apt-get install hostapd
  2. 找到与 Wifi 硬件对应的网络接口的名称。对于额外的 Wifi USB 棒,这可能是wlan1或类似的。该命令ifconfig将显示所有可用的网络接口。
  3. 创建配置文件/etc/hostapd/hostapd.conf(例如使用命令gedit /etc/hostapd/hostapd.conf),内容如下,其中将 替换<INTERFACENAME>为步骤 2 中找到的名称、<MYSSID>您为网络选择的名称、<CODE>您所在国家/地区的两个字母代码(例如 US)、<MODE>Wifi 网络模式(例如 g)以及有效频道号(例如 3)的频道。或者,hw_mode和行channel可以完全省略。<MYPASSPHRASE>用您喜欢的短语替换(但避免使用变音符号或重音符号)。

    interface=<INTERFACENAME>
    driver=nl80211
    logger_stdout=-1
    logger_stdout_level=0
    ssid=<MYSSID>
    country_code=<CODE>
    hw_mode=<MODE>
    channel=<CHANNEL>
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    wpa_passphrase=<MYPASSPHRASE>
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    

    http://linuxwireless.org/en/users/Documentation/hostapd了解更多信息。

  4. 运行命令sudo hostapd -d /etc/hostapd/hostapd.conf。这将启动 Wifi 网络,并且应该已经可以从移动设备连接到此网络:具有您分配的 SSID 的网络应显示在列表中,输入密码后,设备应连接到网络。但是,设备不会获得 IP 地址,因此尚无法进行真正的数据传输。按 终止命令Ctl-C

安装 DHCP 并设置网络

为了在移动设备和笔记本电脑之间实际传输数据,网络必须知道应该使用哪个范围的 IP 地址,并且需要一个程序来为任何想要连接的设备分配 IP 地址。

  1. 使用命令sudo apt-get install isc-dhcp-server安装 DHCP 服务器。
  2. 编辑接口配置文件/etc/network/interfaces,在最后添加以下内容:

    iface <INTERFACENAME> inet static
    address 192.168.2.1
    netmask 255.255.255.0
    
  3. 编辑DHCP配置文件/etc/dhcp/dhcpd.conf,将以下内容添加到末尾。

    subnet 192.168.2.0 netmask 255.255.255.0 {
      range 192.168.2.3 192.168.2.10;
      option broadcast-address 192.168.2.255;
      option routers 192.168.2.1;
    }
    

    如果您知道移动设备的 MAC 地址,并希望为其分配固定 IP 地址,则可以在右括号前添加以下几行,替换XX:XX:XX:XX:XX:XX为 MAC 地址。这将分配固定 IP 地址 192.168.2.2:

      host device1 {
        hardware ethernet XX:XX:XX:XX:XX:XX;
        fixed-address 192.168.2.2;
      }
    
  4. 使用命令打开界面sudo ifup <INTERFACENAME>
  5. 使用命令启动 DHCP 服务器sudo dhcpd -f -d <INTERFACENAME>(该命令将持续运行,直到您使用 Ctrl-C 终止并将日志消息显示到终端)
  6. 使用命令启动受管网络sudo hostapd -d /etc/hostapd/hostapd.conf

如果一切顺利,您现在应该能够从移动设备连接到该 Wifi 网络,并且该设备应该被分配一个 192.168.2.X 范围内的 IP 地址。

访问笔记本电脑上的文件和服务

一旦网络启动,移动设备就应该能够访问笔记本电脑上运行的服务(但不能访问互联网)。从笔记本电脑共享文件的最简单方法是为网络上的目录创建 Samba 共享。这可以通过右键单击目录图标并选择“共享选项”来完成,然后选中“共享此文件夹”并根据需要分配一些共享名称,然后单击“创建共享”。

对于 Android 设备,有多个应用程序可用于访问 Samba 共享,我使用“ES 文件资源管理器”。在 ES 文件资源管理器应用程序中,切换到“LAN 共享”选项卡并添加新服务器。在“服务器”字段中,输入服务器的 IP 地址,例如 192.168.2.1,然后输入 Ubuntu 用户 ID 和密码并触摸“确定”。当您触摸服务器 IP 地址时,您创建的所有共享都应列出,您可以从那里将文件或整个目录复制到 Android 设备。

“ES 文件浏览器”应用程序还支持另一种访问笔记本电脑上的文件的方法是sftp

答案2

我用ES文件浏览器访问我的电脑和 nas 服务器上的文件。ES 使用 SMB 通过 Wifi 连接到您的电脑。

使用 ES 的远程文件管理器,您还可以通过计算机管理手机上的文件。

编辑为什么不用 10 美元的 wifi 路由器建立网络?或者用老式电缆连接手机和电脑有什么问题?

答案3

您的问题实际上是两个问题,可以分成两个单独的问题来提出并分别回答。

1)如何使用 Ubuntu 笔记本电脑设置 WiFi 接入点?

我建议你阅读@Err Hunter 的回答此链接.请注意评论你必须阅读第二个来源链接如果您使用的是 Ubuntu14.04。

2)如何通过网络在我的 Ubuntu 笔记本电脑和 Android 设备之间共享文件?

这个问题的答案分为两部分:

第 1 部分:在笔记本电脑上共享文件夹(Ubuntu):

这个答案是我为此目的找到的最佳指南。

第 2 部分(我认为是你问题的主要部分):访问共享文件

我提供 ”ES文件浏览器“应用程序。在 ES 文件资源管理器应用程序中:
- 转到网络选项卡 - 选择“LAN” - 按页面底部的“+”图标不添加新项目 - 在“服务器”对话框中,输入服务器的 IP 地址,例如 192.168.150.1,然后在相应的字段中输入 Ubuntu 用户名和密码,并触摸“确定”。 - 在“LAN”类别下添加了一个新项目。 - 如果您触摸该项目,则应该列出您创建的所有共享,从那里您可以从 Android 设备访问文件和目录。

相关内容