堺風の頭部

徘徊、カメラ、PC、その他。

linuxBean 12.04機のWiFiアクセスポイント化

先日500円で買って、linuxBeanをインストールしたシンクライアントNexterm RT-500を、WiFIアクセスポイントにしてみた。

なかなか、ひとつのサイトで書いてあることだけで話が済まなかったりして手間がかかったけども、なんとか上手くいった。

手順と、多分こうすればできると思われる内容を、後学のために書き記しておく。

目的

有線LANでブロードバンドルーターに繋がり、インターネットに接続できる状態のLinux PCに、無線LAN子機を追加。そして、他のPCのインターネット接続を仲介する。

DHCPサーバー機能は上流のブロードバンドルーターに任せる、WiFiアクセスポイント(市販の無線ルーターでいうブリッジモード)になるようにする。

 ハードウェア

ジャンク再生pc2_nexterm_rt-500 [無望Wiki]

PC本体については、上記のページに書いたNexterm RT-500というシンクライアント。OSはlinuxBean 12.04 32bit版コマンドラインじゃなく、ウィンドウシステムが起動した状態。

有線LANは内蔵されている。(100BASE-TX)

無線LANは、USBにBUFFALO WLI-UC-G301Nを追加する。

 

BUFFALO Air Station NFINITI 11n/g/b USB用 無線子機 WLI-UC-G301N

BUFFALO Air Station NFINITI 11n/g/b USB用 無線子機 WLI-UC-G301N

 

 ソフトウェアの設定

1.WiFi子機の確認

多分、最近の子機だと別に確認しなくていいとは思うのだけど。

今回の子機WLI-UC-G301Nの場合、挿したらPnPでドライバが入って、wlan0に設定された。

ifconfig

端末で上記コマンドを入力して、wlan0という項目があればよし。(子機が複数入っているとwlan1~と末尾が増えるらしいけれど、今回は上のように)

iw list

続いて上記コマンドで、ハードウェアの機能を確認する。

wlan0についてずらずら出ているところに、Supported interface modes:というリストがあるので、その中に* APというのがあれば、APモードが使える。

この項目は以下のページを参考にした。

www.cberner.com

2.hostapdをインストール&設定

sudo apt-get install hostapd

端末で上のコマンドで、hostapdをインストールする。

でもって、設定ファイル /etc/hostapd/hostapd.conf を新規作成して設定する。

sudo leafpad /etc/hostapd/hostapd.conf

端末から上のコマンドでエディタ呼び出し。linuxBeanだし、leafpadで編集しちゃうのが楽だろうと思う。

ファイル内容は以下のように。

interface=wlan0
bridge=br0
driver=nl80211
ssid=********
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=********
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

*誤記訂正(16/12/10): wpa=3 → wpa=2に訂正しました。wpa=3ではhostapdが起動しません。

ssidとwpa_passphraseは適当にそれぞれ設定を。WPAだからパスフレーズは8~63文字でないとダメだっけ。

hw_mode=aにして、channelも適当に設定すれば、11nなりの高速通信も有効になるかと思ったんだけど、どうもそれだと5GHz帯しか使えないっぽい。市販のルーターみたいに2.4GHzと両用にするには、WiFiアダプターが2ついるとかで。

うちの環境だと上流の有線が100Mbpsだし、2.4GHzしか使えない端末もあるので、11gがメリット大きくデメリットは小さいかなと。

www.cberner.com

この項目も上のサイトを参考にしたが、hostapd.confの設定に「bridge=br0」の項目をひとつ追加した。

3.bridge-utilsのインストール&設定

まず端末で以下のように。

sudo apt-get install bridge-utils

それから、設定のために/etc/network/interfacesを編集する。

sudo leafpad /etc/network/interfaces

すでに設定されている項目がいくつかあるが、それらは触らない。wlan0の項目があったら、それは消してしまう方がいいのかも。

設定するのは、eth0とbr0。

auto eth0
iface eth0 inet static
address 0.0.0.0

auto br0
iface br0 inet static
address 192.168.1.98
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_stop off
bridge_maxwait 5

私はけっこうここでハマってしまって、アクセスポイントに接続した他の端末からはインターネットにアクセスできるのに、アクセスポイントのRT-500自身からはインターネットに接続できない、という状態になってしまった。

あれこれ情報を探した末、上記のようにeth0のIPアドレスを0.0.0.0に固定する。こうすると、有線LANアダプターがプロミスキャスモードになるそう。来たパケット全部受けて通しちゃうモード。

でもって、ブリッジ側にIPアドレスなどを設定する。

私は今回、RT-500にVNC接続したりとかしたいので、IPアドレスは固定している。うちのネット環境ではgatewayは上のようになるが、これは家によって違うかも。

d.hatena.ne.jp

この項目については、上のサイトを参考にした。

4.ネットワーク再起動・サービス登録

*追記(16/12/10) ここから

hostapdをサービスとして動かすので、設定ファイルを読み込めるようにする。

sudo leafpad /etc/default/hostapd

leafpadでこのファイルを開いて、コメントアウトされた #DAEMON_CONF~~の行を、

DAEMON_CONF="/etc/hostapd/hostapd.conf"

と書き換えておく。

*追記(16/12/10) ここまで

 

設定はここまででできたはずなので、ネットワークを再起動する。

sudo /etc/init.d/networking restart

でもって、hostapdサービスを起動する。

sudo service hostapd start

上手くサービスが起動していれば、
* Starting advanced IEEE 802.11 management hostapd [ OK ]
というような表示が端末に出る。[fail]だと何か設定ミスしている。

これで、近くで何か適当なPCなりスマートフォンWiFiの電波を探すと、先に設定したSSIDで電波が飛んでいるはず。

接続してパスフレーズを入れて、IPアドレスが配られてネット接続ができれば成功。

また、ルーターをやってるPCからもインターネットに接続できることをチェック。

まとめ

私もタコなので、必死であっちこっちぐぐりながら設定を模索してたどり着いた結果なので、何かとんでもないミスをしている可能性があることにはご注意のこと。

うまくいかないから教えて、というコメントを貰っても、ちゃんと応えられる自信はないです。