えっ。てっきり消されると思ったのに。 老舗テザリングアプリであるNetShare。iPhoneのOSバージョンアップしても 使えました。既に iPhone 3G / OS 3.0で脱獄なし・iTunesも使わずテザリングを有効にする方法 あるいは ソフトバンクでテザリングを有効にする という情報があるので今更かもしれませんが...。 NetShareはもう8ヶ月くらい使ってて定額内であることがわかっているので、 俺は今までどおりこれを使うことにします。
今までNetShareはWindowsを起動してUSB無線LANアダプタ経由で使っていた わけだけど、せっかく会社マシンをVine2.6(2.6?!)からDebian lennyに 乗り換えたので、Debianでやるようにしてみた。
[会社DNS]192.168.10.3 ^ | 有線:192.168.10.0/24 | V [PC] 192.168.10.125でかつ192.168.0.3 ^ | 無線:192.168.0.0/24 | V [iPhone]192.168.0.254
というネットワークにします。シェルスクリプトはwlan.shとかで保存。 IPとかは適当に変えてください。
俺の環境のtsocks(SOCK5クライアントラッパー) がtordns_enableしてもiPhone経由でDNSをひいてくれなかったので、 有線側を生かすルーティングを設定します。つまり192.168.10.0/24の サブネットルーティングを追加して かつデフォルトルートは消す という 設定です。SOCKSのホストは決め打ち(192.168.0.254のポート1080)なので デフォルトルートは必要ありませんが、PCのレゾルバはLAN内のDNSサーバを アクセスするというわけ。
#!/bin/sh PATH=$PATH:/sbin if='wlan0' iphonewan='192.168.0.254' pcwan='192.168.0.3' localsub='192.168.10.0/24' localgw='192.168.10.3' localeth='eth0' echo $if 'is down.' ifconfig $if down sleep 1 echo $if 'set ad-hoc and essid.' iwconfig $if mode ad-hoc iwconfig $if essid adhoc1 sleep 1 iwconfig $if sleep 1 echo $if 'is up.' ifconfig $if $pcwan ifconfig $if up iwlist $if scanning echo 'wait 15sec...' sleep 15 ping -i 1 -c 10 $iphonewan route del default route add -net $localsub gw $localgw dev $localeth
使い方はこんなかんじ
これで済めばよかったのだが。俺が使っているUSB無線LANアダプタWLI-U2_KG54が なんかおかしい..... Debian lenny標準カーネルで何もしなくても認識するのだが、 iwlist $if scanningで以下のようなメッセージが出ることがある。 こうなるとつながらない。
Failed to read scan data : Resource temporarily unavailable
しかし何回かやってるとつながる。一旦Windowsを起動してからやると つながったりとか(笑)おそらくファームウェアか何かを別途インストール する必要があるのだろう。ドライバソースを読む限り、 /lib/firmware/2.6.26においとくとrt2x00ドライバが読んでくれそうなので。
ちなみに正常時のログはこんなかんじ。アドホックだと自分も見えるようだ。
wlan0 is down. wlan0 set ad-hoc and essid. wlan0 IEEE 802.11bg ESSID:"adhoc1" Mode:Ad-Hoc Frequency:2.412 GHz Cell: 92:CF:XX:XX:XX:XX Tx-Power=20 dBm Retry min limit:7 RTS thr:off Fragment thr=2352 B Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 wlan0 is up. wlan0 Scan completed : Cell 01 - Address: 00:16:01:XX:XX:XX ESSID:"KAISYAAP001" Mode:Master Channel:5 Frequency:2.432 GHz (Channel 5) Cell 02 - Address: 92:CF:XX:XX:XX:XX ESSID:"adhoc1" Mode:Ad-Hoc Channel:1 Frequency:2.412 GHz (Channel 1) wait 15sec...
/etc/tsocks.confを作ります。
local = 192.168.10.0/255.255.255.0 local = 192.168.0.0/255.255.255.0 server = 192.168.0.254 server_type = 5 server_port = 1080 #tordns_enable=true
使い方はSOCKS対応にしたいアプリの前にくっつけて実行する。
# tsocks w3m http://www.google.co.jp/
もしくはtsocks -on, -offでそのシェル環境をまるごとSOCKS対応にできる。 大抵のアプリは大丈夫。Firefoxとかは直接プロキシの設定で192.168.0.254:1080を 設定すればOKと。
まあ俺は「ぱぱサーバ」の緊急メンテのときsshさえ通ればイナフなんですけどね。