PCをルーターにする
手元のLinuxマシンをルーターにして、別のPCや機材をその先にぶら下げたい場面があった。ip や iptables、dnsmasq を自分で設定してもよいが、linux-routerを使うと1コマンドで済む。
linux-routerとは
lnxrouter という1ファイルのbashスクリプト。内部で ip / iptables / dnsmasq / hostapd といったコマンドをまとめて叩いてくれるラッパーで、以下のようなことができる。
- インターネット接続を別のインターフェース(有線LANなど)に共有する(NATルーター化)
- WiFiアクセスポイントを立てる
- インターネットに繋がらないローカルLANだけを作る
create_ap というスクリプトのForkで、そちらは以下の記事で紹介されている。

依存パッケージ
以下が必要。WiFiアクセスポイントを立てる場合のみ、追加のパッケージが必要になる。
- 共通: bash, procps(procps-ng), iproute2, dnsmasq, iptables(nftablesのiptables-nft互換でも可)
- WiFiアクセスポイント用: hostapd, iw(またはiwconfig)
インストール
スクリプト1つをダウンロードして実行権限を付けるだけ。インストール作業は不要。
curl -O https://raw.githubusercontent.com/garywill/linux-router/master/lnxrouter
chmod +x lnxrouter
使い方
インターネット接続を eth1 側に共有する(eth1 に繋いだ機器がインターネットに出られるようになる)。
sudo ./lnxrouter -i eth1
WiFiアクセスポイントを立てる。
sudo ./lnxrouter --ap wlan0 MyAccessPoint -p MyPassPhrase
インターネットに出ないローカルLANだけを作る場合は -n を付ける。
sudo ./lnxrouter -n -i eth1
Ctrl+C で終了すると、設定した内容が元に戻される。バックグラウンドで動かしている場合は --stop で止める。
sudo ./lnxrouter --stop <id>
iptables のルールやインターフェースの設定を書き換えるので、実行にはroot権限が必要。既存のネットワーク設定と競合しないか確認してから使うのが安全。
参考
GitHub - garywill/linux-router: Set Linux as router in one command