やりたいこと
有線LANに繋がれたLinuxマシンをスマホをとかをつなげるWiFiのホットスポットにしたい。
NetworkManagerやらdnsmasqあたりで躓いたので備忘録的に
目次
環境
- Parrot OS 5.3 (Electro Ara)
- network-manager 1.42.4-1~bpo11+1
- dnsmasq 2.85-1
dnsmasqとNetworkManagerとの関係
dnsmasqはDHCPやらDNSやらの処理をしてくれるサービスだけど、デフォルトではスタンドアロンサービスで起動する。
NetworkManagerはWiFiやらEthernetやらDHCPやらの設定を自動でやってくれるサービス。
なんでかこういう仕様か知らないけど、スタンドアロンで動いてるdnsmasqとNetworkManagerのdnsmasqと競合する。
なので、最初にスタンドアロンで起動されるdnsmasqを停止させて、NetworkManagerの下だけでdnsmasqが起動するように設定を変えていく。
dnsmasqの停止とNetworkManagerの下で起動させる
dnsmasqの自動起動と動作を停止させる。
$ sudo systemctl disable dnsmasq $ sudo systemctl stop dnsmasq
次にNetworkManagerでdnsmasqをDNSサーバーとして使えるように/etc/NetworkManager/NetworkManager.conf
を変更していく。
$ sudo nano /etc/NetworkManager/NetworkManager.conf
開けたらdns=dnsmasq
を[main]に追記する。自分の場合、下の設定になった。
[main] plugins=ifupdown,keyfile dns=dnsmasq [ifupdown] managed=false
追記できたらNetworkManagerを再起動しておく。
$ sudo systemctl restart NetworkManager
Unit dnsmasq.service not foundが表示されたたら
多分dnsmasqがインストールされていないので、インストールして一番上から設定しなおす。
$ sudo apt update $ sudo apt install dnsmasq
ホットスポットの作成
まず、ネットワークのインターフェース名を確認します。
$ nmcli d DEVICE TYPE STATE CONNECTION wlp1s0 wifi connected hogeSSID lo loopback connected (externally) lo enp0s1 ethernet unavailable --
実行結果の内TYPEがwifiになっている箇所のDEVICE名を控えておく、今回の場合wlps0になる。
確認ができたらホットスポット用のプロフィールを作っていく。
今回は以下の設定でホットスポットを作っていくことにする。
プロフィール名 | SSID | 周波数帯域 | 暗号化方式 | プロトコル | パスワード | インターフェース | 自動接続 |
---|---|---|---|---|---|---|---|
Hotspot | Hotspot_Linux | 2.4GHz | WPA2-PSK | CCMP | 12345 | wlp1s0 | No |
$ nmcli c add type wifi ifname wlp1s0 mode ap con-name Hotspot ssid Hotspot_Linux $ nmcli c modify Hotspot ipv4.method shared $ nmcli c modify Hotspot 802-11-wireless.band bg $ nmcli c modify Hotspot 802-11-wireless-security.key-mgmt wpa-psk $ nmcli c modify Hotspot 802-11-wireless-security.proto rsn $ nmcli c modify Hotspot 802-11-wireless-security.group ccmp $ nmcli c modify Hotspot 802-11-wireless-security.pairwise ccmp $ nmcli c modify Hotspot 802-11-wireless-security.psk 12345 $ nmcli c modify Hotspot connection.autoconnect no
終わったら、$ nmcli c
を実行すると、さっき作ったHotspotが表示される
ホットスポットの起動
今回は自動起動をオフにしてるので都度起動させる必要がある。
有線LANに接続された状態で$ nmcli c up Hotspot
を実行すると、Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/N)
が表示される、、、はず。
停止は$ nmcli c down Hotspot
で可能。