等效於 NetworkManager 的“用作熱點”選項的終端命令
我正在製作一個 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
我使用“用作熱點”功能設置的 iptables
saved-hotspot-iptables
生成的文件在哪裡。iptables-save > saved-hotspot-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
,但這種方法似乎並不優雅或無法擴展到其他發行版。
請參閱我對“創建無線接入點並與共享網際網路連接”的回答
nmcli
我用 GNOME 網路管理器創建了一個熱點。問題是,我無法在 GUI 中配置 SSID 和密碼。如果您使用 Network-Manager GUI 創建熱點,它會創建文件
/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
我只根據我的需要更改了
ssid
和psk
屬性。然後我重新啟動了我的電腦,因為命令:sudo systemctl restart NetworkManager
for network restart 似乎無法正常工作,因為在 Network-Manager GUI 中我不再有無線網路設置,並且以下命令在重新啟動之前也沒有工作。重啟後可以使用nmcli
命令啟動接入點。nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE
YOUR_WIFI_INTERFACE
你可以用命令找出來iwconfig
。
有一個專用選項
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]