私はラップトップをwifiホットスポットとして機能させるために制御するGUIアプリケーションを作成しています。ディストリビューションを変更する可能性があるため、すべてのディストリビューションで一般的に機能するソリューションを見つけたいと思います。私は現在Fedora 17でこれを行っています。
NetworkManagerの[ホットスポットとして使用]ボタンを使用すると、アドホックホットスポットを作成するのに非常に効果的です。
端末コマンドでこの機能を再現したい。
以下は、これを達成するために試みた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
を作成することも検討しましたが、この方法は洗練されていないか、他のディストリビューションに拡張可能ではないようです。
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
私の 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
で確認できます。
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]