ArchLinuxをNetworkManagerでWi-FiホットスポットにしてiPhoneとSFTPでファイル共有する
固定回線が無い環境に数日行くから、書き物用にArchLinuxラップトップ持っていこうと思ったんだけど、Linux⇔iPhone間でインターネットや追加の機器無しでファイル共有できる方法を用意しておきたかった。
今回はLinuxラップトップをWi-Fiホットスポット (AP) にして、iPhoneからSFTPで接続する方法を採用。それをやった時のメモ。
前提
SFTPで接続するので、iPhoneにはSFTPクライアントアプリをインストールしておく必要がある。自分は Textastic を持っているのでここでは Textastic を使用するが、無料の FTPManager などでも同じことは可能。
また、Linux側はSSH接続を許可しておく必要がある。それと表題通りNetworkManagerを使うので、NetworkManagerもインストール済みである前提。
ArchLinuxへのNetworkManagerの導入方法は以下参照。
手順1. ネットワークインターフェースの確認
Linuxマシンのネットワークインターフェースを確認。
無線インターフェースは wlan0
のほう。ここではこのネットワークインターフェースを使ってホットスポットを作る。
続けて、このネットワークインターフェースをAPとして動作させられるか確認。
WIFI-PROPERTIES.AP
が yes
なのでOK。
手順2. dnsmasq 導入
LinuxマシンをAPにするとき、iPhone側には自動的にIPアドレスを割り振ってほしいので、DHCPサーバーとして動けるようにする。
NetworkManagerは dnsmasq
がインストールされてる時、デフォルトでは内部的に dnsmasq
を使ってDHCPサーバーをやるらしい。なので dnsmasq
をインストールする。
ただこのあたり、調べても正直よくわからなかった。ただ dnsmasq
をインストールしないと想定通りに動作しなかったことと、dnsmasq
を start したりサービス有効にしたりする必要が無いことは試してみたので確か。
Note
NetworkManagerの設定ファイル (/etc/NetworkManager/
以下) で設定できる dns
値は、ここでは未設定。なのでこれがデフォルトの動作だと思うけど、ここを変更してる人は、キーごと削除しないと同じように動かないと思う。
手順3. ホットスポット作成
ここでは以下の設定でホットスポットを作成する。
- SSID …
呪いのアクセスポイント
- パスワード …
piyopiyoppiyo
以下コマンドで、Wi-Fiホットスポットを作成できる。
なお、このときインターフェース wlan0
が使用中だと 802.1X supplicant took too long to authenticate.
エラーが出る。何が使用中にあたるのかよくわからなかったので、Linuxマシンを再起動して、その直後にやり直したら通った。
作成したコネクションは以下コマンドで確認できる。
作成したホットスポットのConnection nameは、デフォルトだと Hotspot
となる。
手順4. WPS無効化
ホットスポットを作成できたが、このままだと接続時にWPSのPINの入力を求められてしまう。
正確には、Windows PCから接続しようとするとPINを求められて止まるが、iPhoneから接続しようとするとPINの入力欄などは出てこないのでいつまで経っても接続が成功しないように見えた。
調べたところ、PINを調べる方法よりもWPSを無効化する方法ばかり見つかったので、そういうものだと考えて無効化することにした。以下コマンドでWPSを無効化できる。
コネクションに対する変更なので、modify
の次の引数はSSIDではなくConnection nameであることを留意。
手順5. ホットスポット有効化
作成したホットスポットは、以下コマンドで有効化できる。
Note
ここではLinuxマシンの普段使いの wlan0 をAPに使っているので、これを行った時点でLinuxマシンからのインターネット接続は行えなくなる。
これで周囲の無線デバイスからSSIDが見えるようになる。
なおGUIを使用している場合、nm-appletから『Create New Wi-Fi Network』でも同様に有効化できる。
手順6. iPhoneからホットスポットに接続
iPhoneのWi-Fi設定を開くと、ホットスポットに設定したSSIDが見えているので、それを選択して接続。パスワードは手順3で設定したものを入力。
また、同設定画面からルーターのIPアドレス (デフォルトゲートウェイ) を確認できる。それがiPhoneから見たPCのIP。
以後はiPhoneのSFTPクライアントから、PCのIPを入力して接続可能。
やることやったら、以下コマンドでホットスポットは無効化しておこう。
以上。
参考にさせていただいたページ
Creating a Wireless Access Point and Sharing Internet Using nmcli | Baeldung on Linux
network\_manager\_create\_wifi\_hotspot - network - commands - linux [ともやん・どっと・ねっと]
NetworkManagerを用いて構築したアクセスポイントのWPSを無効化する方法 | Armadilloサイト