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


10

我正在制作一个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-iptablesiptables-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但是这种方法似乎并不优雅或无法扩展到其他发行版。



1
尝试wicd。它类似于NetworkManager,但具有文本模式界面。我不知道它是否具有热点功能。
吉尔斯(Gillles)“所以-别再邪恶了”

感谢Gilles的提示,我将立即尝试。
丹尼尔(Daniel)

@Gilles我尝试了wicd,但它的功能似乎比nmcli还要少。
丹尼尔(Daniel)

Answers:


1

请参阅我对“创建无线访问点并与共享互联网连接”的答案nmcli

我使用GNOME网络管理器创建了一个热点。问题是,我无法在GUI中配置SSID和密码。如果使用Network-Manager GUI创建Hotspot,它将创建文件/etc/NetworkManager/system-connections/Hotspot。在该文件中,可以编辑SSID和密码。

sudo vim /etc/NetworkManager/system-connections/Hotspot

该文件的内容如下所示:

[connection]
id=Hotspot
uuid=0bf627gd-8e34-48c6-865a-06f898b4y1hb
type=wifi
autoconnect=false
permissions=
secondaries=

[wifi]
hidden=false
mac-address=YOUR_WIFI_INTERFACE_MAC_ADDRESS
mac-address-blacklist=
mode=ap
seen-bssids=
ssid=SSID_NAME

[wifi-security]
group=ccmp;
key-mgmt=wpa-psk
pairwise=ccmp;
proto=rsn;
psk=YOUR_WIFI_AP_PASSWORD

[ipv4]
dns-search=
method=shared

[ipv6]
dns-search=
method=auto

我只是根据自己的需要更改了ssidpsk属性。然后,我重新启动计算机,因为命令:sudo systemctl restart NetworkManager网络重新启动似乎无法正常工作,因为在Network-Manager GUI中,我不再具有无线网络设置,并且以下命令在重新启动之前也无法正常工作。重新启动后,可以使用nmcli命令启动访问点。

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACE您可以使用命令来查找iwconfig


1

在中有一个专用选项nmcli

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

手册中的更多信息:

wifi hotspot [ifname ifname] [con-name name] [ssid SSID] [ band { a | bg } ] [channel channel] [password password] 

0

需要使用DHCP服务器为wifi连接分配IP地址。我使用dnsmasq了DNS和DHCP服务器。

以下是启动临时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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.