web-dev-qa-db-ja.com

NetworkManagerの「ホットスポットとして使用」オプションに相当する端末コマンド

私はラップトップをwifiホットスポットとして機能させるために制御するGUIアプリケーションを作成しています。ディストリビューションを変更する可能性があるため、すべてのディストリビューションで一般的に機能するソリューションを見つけたいと思います。私は現在Fedora 17でこれを行っています。

NetworkManagerの[ホットスポットとして使用]ボタンを使用すると、アドホックホットスポットを作成するのに非常に効果的です。 enter image description here

端末コマンドでこの機能を再現したい。

以下は、これを達成するために試みた2つの方法ですが、まだ解決策を見つけていません。


方法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を使用して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がフラグの1つとして欠落していることに注意してください。


方法2:nmcli
NetworkManagerの[ホットスポットとして使用]ボタンをシステムで少なくとも1回押すと、/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を作成することも検討しましたが、この方法は洗練されていないか、他のディストリビューションに拡張可能ではないようです。

10
Daniel

IPアドレスをwifi接続に割り当てるには、DHCPサーバーが必要でした。 DNSおよびDHCPサーバーであるdnsmasqを使用しました。

以下は、アドホック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
Daniel

私の answer を参照してください "ワイヤレスアクセスポイントを作成し、nmcliとインターネット接続を共有してください"

GNOME Network-Managerでホットスポットを作成しました。問題は、GUIでSSIDとパスワードを設定できないことでした。ネットワークマネージャー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が正しく機能していないように思われるため、コンピューターを再起動しました。Network-ManagerGUIにはワイヤレスネットワーク設定がなく、次のコマンドも再起動前に機能しなかったためです。再起動後、nmcliコマンドを使用してアクセスポイントを起動できます。

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEコマンドiwconfigで確認できます。

1
BuZZ-dEE

nmcliには専用のオプションがあります:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

Manual の詳細:

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