私はラップトップをWi-Fiホットスポットとして機能させるように制御するGUIアプリケーションを作成しています。ディストリビューションを変更することもできますので、すべてのディストリビューションに適用されるソリューションを探したいと思います。現在Fedora 17でこれを行っています。
NetworkManagerの「ホットスポットとして使用」ボタンを使用して、一時的なホットスポットをすばやく作成できます。
ターミナルコマンドを使用してこの機能を再作成したいと思います。
これを達成するために2つの方法を試しましたが、まだ解決策が見つかりませんでした。
方法 1: iwconfig
Webで調査したところ、次のコマンドを試しました。
# 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
フラグの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
このアプローチはエレガントではないか、他のディストリビューションにスケーラブルに見えません。
答え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]
答え2
私を見て回答到着「ワイヤレスアクセスポイントを作成してnmcli
インターネット接続を共有する」
GNOME Network Managerを使用してホットスポットを作成しました。問題は、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
。その後、ネットワーク管理者のGUIにワイヤレスネットワーク設定がないため、ネットワーク再起動psk
コマンドが機能しなくなり、再起動するまで次のコマンドも機能しなかったため、コンピュータを再起動しました。sudo systemctl restart NetworkManager
再起動後、このnmcli
コマンドを使用してアクセスポイントを起動できます。
nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE
YOUR_WIFI_INTERFACE
コマンドで調べることができますiwconfig
。
答え3
Wi-Fi接続にIPアドレスを割り当てるには、DHCPサーバーが必要です。私はdnsmasq
DNSとDHCPサーバーを使用しました。
以下は、一時的なWi-Fiホットスポットを起動するコマンドです。
# 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