等效于 NetworkManager 的“用作热点”选项的终端命令

我正在制作一个 gui 应用程序,它将控制我的笔记本电脑,以使其充当 wifi 热点。 我可能会更改发行版,因此我想找到一个通常适用于所有发行版的选项。 我目前正在 Fedora 17 上执行此操作。

利用 NetworkManager 是“用作热点”按钮功能非常好,以创建一个临时热点:。

我打算使用终端命令重新创建此功能。 ¢ ¢以下是我尝试实现的两种技术,但我还没有找到解决方案。


方法一:iwconfig ¢使用来自互联网的研究,我尝试了遵守命令:

# ifconfig wlan0 10.42.0.1 netmask 255.555.255.0 broadcast 10.42.0.255 up
# iwconfig wlan0 essid my-lappy mode ad-hoc key 0123456789
# iptables-restore < saved-hotspot-iptables
# echo 1 > /proc/sys/net/ipv4/ip_forward
# dhclient wlan0

其中 saved-hotspot-iptables 是我使用 iptables-save > saved-hotspot-iptables 生成的数据,其中 iptables 由“用作热点”功能设置。

方法 1 问题 ¢设备可以看到 SSID 但无法连接。 运行 ip a 会发现有关 wlan0 的以下信息:

...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT qlen 1000
...

注意 NO-CARRIER 存在,并且状态是 DORMANT 而不是 UP。 ¢¢运行 ifconfig wlan0 显示如下:

...
wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
...

请注意,RUNNING 作为标志之一丢失了。


方法二:nmcli ¢如果 NetworkManager 是“用作热点”按钮,至少在系统上按下,/etc/sysconfig/network-scripts/ifcfg-Hotspot 被创建,我可以使用坚持命令来启动一个正常工作的热点:

# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789

方法二问题 ¢如果个人之前没有在NetworkManager上推送过“用作热点”,nmcli con up id Hotspot将不起作用。 我查看了 nm-connection-editor --create 但找不到太多信息。 我同样研究过手工创建 /etc/sysconfig/network-scripts/ifcfg-Hotspot,但这种方法似乎并不复杂,也不适用于其他各种循环。

9
2022-06-07 15:17:35
资源 分享
答案: 1

需要一个 DHCP Web 服务器来为 wifi 链接分配 IP 地址。 我使用了 dnsmasq、DNS 和 DHCP 服务器。

遵循的是启动 ad-hoc wifi 热点的命令:

# ifconfig wlan0 10.42.0.1 netmask 255.555.255.0 broadcast 10.42.0.255 up
# iwconfig wlan0 essid my-lappy mode ad-hoc key 0123456789
# iptables-restore < saved-hotspot-iptables
# echo 1 > /proc/sys/net/ipv4/ip_forward
# dnsmasq -C /dev/null >/dev/null 2>&1 --bind-interfaces --listen-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.200,12h
0
2022-06-08 02:26:05
资源