我正在制作一个gui应用程序,它将控制我的笔记本电脑以使其充当wifi热点。我可能会更改发行版,因此我想找到一种通常适用于所有发行版的解决方案。我目前正在Fedora 17上执行此操作。
使用NetworkManager的“用作热点”按钮可以很好地创建临时热点:
我想使用终端命令重新创建此功能。
以下是我尝试完成此操作的两种方法,但尚未找到解决方案。
方法1: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
缺少作为标志之一。
方法2:nmcli
如果在系统上至少按一次NetworkManager的“用作热点”按钮,则将/etc/sysconfig/network-scripts/ifcfg-Hotspot
创建它,并且我可以使用以下命令来启动可运行的热点:
# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789
方法2问题
如果用户以前从未在NetworkManager上按过“用作热点”,nmcli con up id Hotspot
则将无法使用。我已经查看过,nm-connection-editor --create
但找不到太多信息。我也研究过手动创建,/etc/sysconfig/network-scripts/ifcfg-Hotspot
但是这种方法似乎并不优雅或无法扩展到其他发行版。