我知道如何在连接到有线网络时创建热点,但是当我通过 WiFi 连接使用互联网时,这会在我激活热点时断开无线连接。
在 Windows 中我可以使用Connectify 热点,这使我能够从我正在创建接入点的同一无线适配器共享互联网连接。正如您在技术概述页面:
接入点模式允许您使用用于访问互联网的同一张 Wi-Fi 卡创建热点。
我如何在 Ubuntu 上执行此操作?
答案1
简单步骤:在 Ubuntu 中创建 wifi 热点
- 禁用 Wifi(取消选中启用 Wi-Fi)
- 转到网络连接(编辑连接......)
- 点击“添加”
- 选择“Wi-Fi”,点击“创建”
- 输入连接名称,如“wifi-hotspot”
- 输入您想要的 SSID
- 从下拉菜单中选择设备 MAC 地址 (wlan0)
- Wifi 安全选择“WPA 和 WPA2 个人”,然后设置密码。
- 转到“IPv4 设置”选项卡,从方法下拉框中选择“共享给其他计算机”。
- 然后保存并关闭。
打开终端(Ctrl+Alt+T)并输入以下命令,并使用步骤 5 中使用的连接名称。
sudo gedit /etc/NetworkManager/system-connections/wifi-hotspot
查找
mode=infrastructure
并更改为mode=ap
现在检查 Wi-Fi 将自动连接到所创建热点的网络部分。如果找不到,请转到连接到隐藏网络...找到连接并连接到它。
来源:http://ubuntuhandbook.org/index.php/2014/09/3-ways-create-wifi-hotspot-ubuntu/
答案2
我看到之后此链接由...提供瓦西沙特,我设法设置了一个无线热点,以便从同一个无线接口设备共享互联网连接。此无线设备必须使用阿瑟罗斯已经构建的驱动程序nl80211支持。接下来我将向您展示如何。
检测你的无线设备是否可以使用此方法
在中运行以下命令终端:
lsmod | grep ath
如果输出为空或者字符串cfg80211
不在输出中,则继续是没有意义的,你应该注意第二点和第三点这个答案。
所需工具
检查下面提到的所有软件包是否都已安装:我爱,hostapd,iptables,udhcpd,韓國,麦克查格。
您可以使用以下方式安装
sudo apt-get install iw hostapd iptables udhcpd udhcpc macchanger
编辑一些文件
在终端中运行以下命令,编辑相应文件:
sudo -H gedit /etc/hostapd.conf /etc/udhcpd.conf /etc/default/udhcpd /etc/wpa_supplicant.conf
在
hostapd.conf
文件中添加以下代码:interface=new1 driver=nl80211 ssid=my_wifi_hotspot #Change the ssid name as you wish channel=11 #I sugest you to use the same channel as your wireless network hw_mode=g wme_enabled=1 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=3 wpa_passphrase=1234567890 #Change the passphrase as you wish wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
在
udhcpd.conf
文件中注释所有当前行(通过#
在行前添加一个字符)并添加以下新行:start 192.168.0.102 #These IPs must to be in the same subset as your current default route end 192.168.0.117 interface new1 opt dns 192.168.0.1 #Your current default route (Gateway) option subnet 255.255.255.0 opt router 192.168.0.101 #This IP must to be in the same subset as your current default route option domain localhost
在 /etc/default/udhcp 中,注释掉以下行
DHCPD_ENABLED="no"
。您
wpa_supplicant.conf
必须提供当前无线网络的设置。请参阅man wpa_supplicant
一些快速示例。您可能在/usr/share/doc/wpa_supplicant/
目录中有更多示例。我使用了类似以下内容的内容:ctrl_interface=/var/run/wpa_supplicant network={ ssid="my_wifi_network" key_mgmt=WPA-PSK proto=WPA pairwise=CCMP group=CCMP psk="mypassphrase" }
保存所有文件并关闭。
笔记:所有这些编辑都不会影响您当前的网络配置。
编写 shell 脚本
- 在终端运行中-如果您还没有目录,
mkdir -p bin
此命令将bin
在您的文件夹中创建一个目录。home
- 运行后- 这将在 gedit 中
gedit ~/bin/hotspotsetup.sh
创建新文件。hotspotsetup.sh
- 将以下脚本复制并粘贴到新创建的文件中:
#!/bin/bash
service network-manager stop
sleep 1
pkill -15 nm-applet
sleep 1
ifconfig wlan0 down #wlan0 - the name of your wireless adapter
sleep 1
iw phy phy0 interface add new0 type station
iw phy phy0 interface add new1 type __ap
sleep 2
ifconfig new0 down
macchanger --mac 00:11:22:33:44:55 new0
ifconfig new1 down
macchanger --mac 00:11:22:33:44:66 new1
ifconfig new0 up
ifconfig new1 up
ifconfig new1 192.168.0.101 up #192.168.0.101 - the same IP defined for router in 'udhcpd.conf' file
hostapd /etc/hostapd.conf &
sleep 2
service udhcpd start
wpa_supplicant -inew0 -c/etc/wpa_supplicant.conf &
sleep 10
udhcpc -i new0
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface new0 -j MASQUERADE
iptables --append FORWARD --in-interface new1 -j ACCEPT
- 保存文件并关闭。
- 返回终端并运行:
chmod +x ~/bin/hotspotsetup.sh
- 授予脚本的执行访问权限。
启动从同一无线适配器连接到无线网络的无线热点
以 root 权限在终端中运行上述脚本:
sudo ~/bin/hotspotsetup.sh
证明
笔记:要像之前一样重新启动网络管理器服务以运行脚本
hotspotsetup.sh
,请重新启动计算机(sudo reboot
)。
答案3
让我向你介绍一个可以简化一切的优秀工具:创建_ap(经过斜)
这是官方存储库:https://github.com/oblique/create_ap
此工具属于Arch Linux存储库,并且应该在Ubuntu存储库!
它非常容易使用,非常有效。
要将其安装在Ubuntu您必须首先安装依赖项:
sudo apt install bash util-linux procps hostapd iproute2 iw wireless-tools haveged iptables dnsmasq git
除非你使用了“迷你安装映像”,否则你已经拥有了其中的 90%...
完成后,从倾斜的存储库克隆:
git clone https://github.com/oblique/create_ap.git
在下载的存储库中找到您的终端:
cd create_ap
使用以下命令安装该工具:
sudo make install
(无需编译make
)
很简单,对吧?剩下的就更简单了……如果您的设备可以同时用作客户端和 PA(例如 atheros wifi 芯片 -编辑:一些英特尔芯片也是如此,请参阅下面的第二条评论)您只需像平常一样使用网络管理器连接到您的家庭路由器,然后执行如下命令行:
sudo create_ap <connected interface> <repeater interface> <essid repeated network> <WPA Key>
例子
sudo create_ap wlp2s0 wlp2s0 Bathroom_WiFi mysecuresecretkey
并且...就是这样! 难以置信,而且如此简单!现在您只需使用 Android 设备连接到重复网络即可。您将在笔记本电脑终端中看到笔记本电脑与客户端之间协商的握手: 您还可以享受互联网带来的美妙浴室时光……一切都通过单一界面和一个简单的命令完成。该工具有很多选项,有关更多信息,请访问 oblique 的 github 存储库(之前提供了链接),如果您会说西班牙语,您可以查看这个论坛主题:create_ap:将你的排序器转换为地球上通用的重复器的完美解决方案
编辑 斜停止了项目
该项目不再维护。
免费代码的美妙之处在于好的项目永远不会消亡,并且有 2 个 GitHub 存储库可以让 Oblique 继续出色地工作:
答案4
正如您在本答案的评论中所看到的,确实有一种方法可以做到这一点。它针对 FreeBSD(不是 Ubuntu/Linux)进行了记录,如下所示:https://serverfault.com/questions/192144/connect-to-multiple-ap-with-one-wifi-adapter-under-linux-freebsd(链接来自评论)。它在 Linux 上似乎不完全按照相同的方式工作,但应该类似。不幸的是,我无法找到有关此主题的更多详细信息。
最简单、最常见的方式可能是使用两个物理网络接口。因此,您可以购买另一个 wifi 棒,或者只是使用另一种技术进行进一步连接,并通过 Wifi 连接其中一个。可能性如下:
- 蓝牙 + Wi-Fi
- LAN/以太网+Wifi
- 3G/LTE + 无线网络
- Wifi(外置)+ Wifi(内置或第二个外置)
我曾经注意到 Ubuntu Linux 能够同时管理两个 wifi 设备,而且操作并不复杂。我没有测试过共享互联网连接等方式,但应该是可以的。复杂程度可能取决于您使用的连接类型。在 Linux 上,您可能不需要任何特殊软件。应该可以共享连接,而无需任何特殊工具。不幸的是,我现在无法尝试。
如果您有另一根 wifi 棒,我建议您尝试 Wifi 到 Wifi,否则使用 LAN 或蓝牙(大多数笔记本电脑内置)。由于提供商数据计划等原因,3G/LTE 共享有点糟糕。