目次
NetworkManager による Hotspot の作成(nmcli)
パッケージインストール
$ sudo dnf install NetworkManager-wifi
WiFi 接続が有効な場合はそれを切断する
WiFi 接続状況を確認する。
$ nmcli con NAME UUID TYPE DEVICE bridge-br0 baab9d3a-a9fa-4adf-9ff6-a0f8b1baa85e bridge br0 virbr0 1d4e7d98-420a-47af-a01c-f51f203da95b bridge virbr0 TomoyanMWRT 2673681b-2218-4bd3-8d8e-1a8421f759fe wifi wlp7s0 bridge-slave-enp8s0 de661bb4-ff51-4a94-a030-0ca70e81551a ethernet enp8s0
WiFi 接続を切断する。
$ nmcli con down TomoyanMWRT 接続 'TomoyanMWRT' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)
WiFi デバイスの状況を確認する。
$ nmcli dev DEVICE TYPE STATE CONNECTION br0 bridge 接続済み bridge-br0 virbr0 bridge 接続済み virbr0 enp8s0 ethernet 接続済み bridge-slave-enp8s0 wlp7s0 wifi 切断済み --
WiFi Hotspot (WiFi アクセスポイント) を作成する。
Hotspot の名前は、ここでは CmonWRT とする。また、WiFi インターフェースは wlp7s0 である。
$ nmcli con add type wifi ifname wlp7s0 con-name CmonWRT autoconnect yes ssid CmonWRT 接続 'CmonWRT' (586f6bf3-7472-4edd-8304-17814a03be12) が正常に追加されました。 $ nmcli con modify CmonWRT 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared $ nmcli con modify CmonWRT wifi-sec.key-mgmt wpa-psk $ nmcli con modify CmonWRT wifi-sec.psk "veryveryhardpassword1234"
WiFi Hotspot のパスワードを確認。(設定したものと違う場合があるので確認)
$ sudo cat /etc/sysconfig/network-scripts/keys-CmonWRT
WPA_PSK="veryveryhardpassword1234"
もしも、パスワードが設定したものと違う場合は、使えない文字を除いて設定される様である。(何故使えない文字があるのかは不明)
$ sudo vi /etc/sysconfig/network-scripts/keys-CmonWRT
- /etc/sysconfig/network-scripts/keys-CmonWRT
WPA_PSK="veryveryhardpassword1234"
WiFi Hotspot を有効化する。
$ nmcli con up CmonWRT 接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/11)
WiFi の接続状況を確認する。
$ nmcli con NAME UUID TYPE DEVICE CmonWRT 586f6bf3-7472-4edd-8304-17814a03be12 wifi wlp7s0 bridge-br0 baab9d3a-a9fa-4adf-9ff6-a0f8b1baa85e bridge br0 virbr0 1d4e7d98-420a-47af-a01c-f51f203da95b bridge virbr0 bridge-slave-enp8s0 de661bb4-ff51-4a94-a030-0ca70e81551a ethernet enp8s0
Hotspot の DHCP と DNS は NetworkManager の DNSMasq Plugin が自動的に面倒を見てくれる
以下の dnsmasq プロセスの 4252 を NetworkManager がコネクションをアップした時点で自動的に起動してくれる。
$ ps -ef | grep dnsmasq dnsmasq 1684 1 0 08:51 ? 00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/vm-net.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper root 1685 1684 0 08:51 ? 00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/vm-net.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper dnsmasq 4252 1041 0 09:03 ? 00:00:00 /usr/sbin/dnsmasq --conf-file=/dev/null --no-hosts --keep-in-foreground --bind-interfaces --except-interface=lo --clear-on-reload --strict-order --listen-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.254,60m --dhcp-lease-max=50 --dhcp-leasefile=/var/lib/NetworkManager/dnsmasq-wlp7s0.leases --pid-file=/var/run/nm-dnsmasq-wlp7s0.pid --conf-dir=/etc/NetworkManager/dnsmasq-shared.d
トラブルシューティング
Fedora 30 の NetworkManager-1.16.0-1.fc30.x86_64 で OS 再起動後に Hotspot のパスワードが違うと言われて再接続不能になる
OS 再起動の度にパスワードは正しいのに、パスワードが違うと言われて繋がらなくなる。
原因不明、恐らくバグかもしれない…。わからない…orz
WiFi Hotspot を削除して再作成すると繋がる。
これでは、はっきり言って使い物にならない…。
$ nmcli con del CmonWRT 接続 'CmonWRT' (586f6bf3-7472-4edd-8304-17814a03be12) が正常に削除されました。 $ nmcli con add type wifi ifname wlp7s0 con-name CmonWRT autoconnect yes ssid CmonWRT 接続 'CmonWRT' (e71a362b-29b0-4766-bf56-d08fc1621a11) が正常に追加されました。 $ nmcli con modify CmonWRT 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared $ nmcli con modify CmonWRT wifi-sec.key-mgmt wpa-psk $ nmcli con modify CmonWRT wifi-sec.psk "veryveryhardpassword1234" $ nmcli con up CmonWRT 接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/7)