Linux Mintを無線LANのアクセスポイントにする


環境


VPN経由でないと表示できないページをPC, Android, iOSで同時に見たかったのですが
自分の契約しているVPNが1度に1デバイスしか接続できなかったので

PC(Linux Mint)でVPN接続し、その接続を無線LANで共有するようにしました。
Macでいうところの「ネットワークの共有」です。

参考

Linuxで簡単に無線Lanアクセスポイントを作る

だいたい参考ページ通りですが、うまく動かない箇所があったので少しだけコマンドを修正しています。

環境構築

必要なソフトウェアのインストールします。

apt install util-linux procps hostapd iproute2 iw

アクセスポイントを作成するスクリプトの取得します。

wget https://raw.githubusercontent.com/oblique/create_ap/master/create_ap

実行権限を付与してパスが通っている場所に移動させます。

sudo chmod +x create_ap
sudo mv create_ap /usr/local/bin/.

ネットワークの共有

事前にネットワークインターフェース(NIC)を調べます。

ip a

すごいざっくりいうと
eで始まるNICは有線LANで、wで始まるNICは無線LANです。
また、VPNの場合はVPNの種類(pppなど)が付いていると思います。
loやbrで始まるのは内部的に使っているものなので基本的に無視して良いです。

分からなければ『コントロールセンター>ネットワーク接続』にて利用したいNICの詳細を開き、
デバイスの「XX:XX:XX:XX:XX:XX」が一致するNICを選べば良いです。

このNICの中から『外界⇔PC』通信用のNICと『PC⇔スマホ』通信用のNICを決めます。

注意点としては上記2つのNICは物理的に別のハードウェアでなければならないという事です。
例えば、PCに無線LANのNICが1つしか無い場合は『PC⇔スマホ』のNICにそれを使うので、
『外界⇔PC』のNICは有線LANを使ったりしなければなりません。

利用するNICが決まったら以下の用にコマンドを打ちます。

sudo create_ap {スマホとのNIC} {外界とのNIC} {SSID} {SSIDの接続パスワード}

たとえば、スマホとのNICが無線LANwlp3s0で、外界とのNICがVPNppp0の場合は以下のコマンドでアクセスポイントを開始できます。
なお、以下コマンドではSSIDはMyAPでパスワードはMyPasswordとなります。

sudo create_ap wlp3s0 ppp0 MyAP MyPassword

上記コマンド実行後、ターミナルにはアクセスポイントとしての稼働ログが流れます。
アクセスポイントを閉じたい場合はCtrl + cを押します。