ubuntu14.04 をアクセスポイントにしてandroidにプロキシ通す
ソフトウェアアクセスポイントで ubuntu をルータにするやつ。
ASUS の zenbook ux303ln に入れた ubuntu14.04
で試した。
アクセスポイントにするので力を使い果たしたので
プロキシ周りなんぞほぼオマケな内容になってしまった…まぁしょうがない。
気が向いたらandroidからプロキシ通して通信を眺める記事別途書くかも。
追記@2015/06/16
iptables + 透過型プロキシでやるやつ。
http://qiita.com/arc279/items/944cd8bb0f438cb6dde1
前提
- 無線LANのNICがある(wlan0) ← 試してないけどたぶんドングルでも可
- 有線LANのNICがある(eth0) ← USBのアダプタでも可
無線で受けて有線で外に流す。
macとiphoneのネットワーク共有みたいな感じ。
ap-hotspot を入れる
- dnsmasq : 名前解決するやつ(?)
- hostapd : ソフトウェアアクセスポイントするやつ
をうまいことまとめてくれる感じ。
この辺を参考に
http://www.webupd8.org/2013/06/how-to-set-up-wireless-hotspot-access.html
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install ap-hotspot
hostapd 入れ替え
なんか 14.04 だと apt
で入るhostapd
のパッケージがぶっ壊れてて起動時にこんなエラー出るらしい。
nl80211: Could not configure driver mode
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface wlan0 wasn't started
ので、ここから落としてきて手動で入れ替える。
http://ftp.ubuntu.com/ubuntu/pool/universe/w/wpa/
とりあえず自分のとこだとコレ入れたらいけた。
sudo apt-get remove hostapd
sudo dpkg -i hostapd_2.1-0ubuntu7_amd64.deb
wlan0の設定
↓これでいけるっぽい。
※あんまよくわかってない
sudo nmcli nm wifi off
sudo rfkill unblock wlan
起動
の前に、configureしておく。
しなくても初回起動時に訊かれるけど。
sudo ap-hotspot configure
とりあえず全部デフォルトでENTER連打。
で、起動してみる。
sudo ap-hotspot start
これでアクセスポイントとして認識できるようになるはず。
ログは /tmp/hostapd.log
に出てる。
設定がデフォルトなら、
# WiFi Hotspot
interface=wlan0
driver=nl80211
#Access Point
ssid=myhotspot
hw_mode=g
# WiFi Channel:
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=qwerty0987
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
こうなってるので、接続先はこう。
- ssid : myhotspot
- passphrase : qwerty0987
止める
sudo ap-hotspot stop
で止まってくれそうだけど、止まってくれない微妙にポンコツなので、手動で。
sudo pkill -KILL -f "ap-hotspot"
sudo pkill -KILL -f "hostapd"
sudo pkill -KILL -f "dnsmasq"
後片付け
pidファイルが残ってると次回起動できないのでハマる。
sudo rm /tmp/hotspot.pid
sudo rm /tmp/hostapd.log
androidからプロキシ通す
上記アクセスポイントにandroidから接続して、
wifiの設定でプロキシを通す。
デフォルトの設定なら
- Gateway: 192.168.150.1
になってるはず。
プロキシはmitmproxyなりcharlesなり好きなのを。
iOSでもやり方は同じ。
https
httpsをプロキシする場合の、オレオレ証明書のインストールはこのへんを参考に
http://akasaka-taro.blogspot.jp/2012/04/android.html
mitmproxy ならこれ。
~/.mitmproxy/mitmproxy-ca-cert.pem
手でやるのがめんどくさい
しょうがないなぁ。
#!/bin/bash
(
sudo pkill -KILL -f "ap-hotspot"
sudo pkill -KILL -f "hostapd"
sudo pkill -KILL -f "dnsmasq"
sudo rm /tmp/hostapd.log /tmp/hotspot.pid
) 2>/dev/null
sudo nmcli nm wifi off
sudo rfkill unblock wlan
sudo ap-hotspot start
なんか2回に1回失敗する。なんで?