かってにインパクトファクター

子育てサラリーマンが日々の雑多なことをつらつらと綴ってます。時々政治ネタ経済ネタコンピュータネタなどをはさみます。

polipoとnicocacheとsynergyと

最近、住居を移動しました。
それに伴い新たにネット回線を引きなおすことになったのですが、業者に連絡すると、私が入ることになったマンションでは回線を引くのは1ヶ月以上先になるとのこと。

お急ぎの方は追加で1万ほどいただけたら2週間以内に工事しますとか言うんです。


もうね。なんだか商売のやり方が気に入らなかったので、イーモバイルを導入することにしました。

購入したのはD01NXIIです。


ヨドバシアキバで購入する際、2年契約であれば、PCを値引きで売ってくれるというので、工人舎のSAシリーズのPCも一緒に購入しました。


さてさて。私の手元には、普段使うちょっと大き目のノートPC(エプソンのエンデバー)とモバイルPC、そして、イーモバイルがそろいました。



私は元々出張は多いのですが、出張先にもって行っている会社PCはどうあがいても回線にフィルターがかけられてしまいます。

出張先では、登録したRSSのチェックと株の注文くらいはしたいなと前々から思っていたわけです。1週間以上も夜やること無いのは暇なのです。
それに加えてモバイルPCでは、部屋でもベッドの上でちょっとネットしたいときとかにも使えそうです。


ということで、モバイルPCの使い方は決まったのですが、問題はイーモバイルをどちらに接続するかです。
ようするに、出張だからとか、ベッドの上で見るとか、デスクでみるとか、用途によってイーモバイルのカードを抜き差しするのがめんどくさいと。



色々考えた結果、モバイルPCにイーモバイルを接続して、ノートPCからモバイルPCを見たときにはただのルータに見えるようにしてしまえばよいということになりました。



ただ、私はノートPCでかなりの文書を見ますし、ニコニコ動画でもよくランキングをあさったりしています。
ノートPC、モバイルPCどちらも今回はWindowsですが、個人的な都合で、ノートPCは近いうちにLinuxFreeBSDにしてしまおうと考えています。
この辺も考慮が必要です。



ということで、前置きが長くなりましたが、普段モバイルPCをルータとして使用する私なりの構成などを御紹介していきたいと思います。
記憶だけを頼りに書いてますので、細かい部分に間違いがあるかもしれませんが、あらかじめ御了承ください。



まず、一番にD01NXIIドライバをモバイルPCにインストールします。今回購入したモバイルPCはCDドライブすらついていないのに、ドライバを格納した媒体はCDであるため、いったんノートPCとモバイルPCに固定IPを設定してフォルダ共有を用いてドライバの引越しを行いました。
その後、モバイルPCにドライバをインストールするのですが、ここでイーモバイル標準のインストーラーを用いると、コントロールパネルのネットワーク接続に何も表示されませんでした。普通に利用する分には何も問題ないのですが、ウィンドウズの標準機能を用いてルータを構築する場合にはちょっと困ったことになります(ドライバは正常にインストールされるため、インストールされる回線接続ユーティリティーを用いなければ問題ありませんが)。ということで、今回はデバイスドライバを手動でインストールしました。なぜか、D01NXIIを正しく認識させるためには、4〜5種類のドライバをインストールすることになりました。なかなか不思議なデバイスです。


ドライバのインストールが無事に終わったら、「コントロールパネル」ー「ネットワーク接続」から新しい接続ウィザードでダイアルアップ接続できるように設定します。


モバイルPCのネットワーク接続、ダイアルアップにe-mobileとか書いてあるアイコンが表示されたら無事導入完了です。


次に、ノートPC(イーモバイルを直接つなげないPC)のモバイルPCと接続するLANの設定をDHCPにします。
あとはモバイルPCのe-mobileアイコンのプロパティーから「詳細設定」でインターネット接続の共有を許可するチェックボックスにチェックを入れるとルータの完成です。



次にニコニコ動画を見る際に、プロキシとしてnicocacheを用いていますが、せっかくなんで、ノートPCのブラウザの設定はプロキシだけで、モバイルPCを工夫することでキャッシュをためようと考えました。
ところが、nicocacheはどうやらlocalhostしか受け付けていないような感じです。ということで、軽量な普通のプロキシを導入して、そのプロキシからノートPCのリクエストを受け付けて、それをlocalhostに流してやることで解決できるんじゃないのかと考えたわけです。


軽量なプロキシとして色々探したんですが、どうやら最近?polipoというプロキシがはやっているみたいじゃないですか。特徴として、回線が高速になったように見えると。


一応モバイルPCに導入して、回線速度を比較したんですが、2〜3倍程度は早くなっている(と感じる)みたいです。


C:\polipoにインストールを行い、C:\polipo\cacheフォルダを作成した後に、C:\polipo\cacheファイルに

proxyAddress = "0.0.0.0" # IPv4 only
allowedClients = "192.168.0.0/24
127.0.0.1"
diskCacheRoot = "/polipo/cache/"
disableIndexing = false
disableServersList = false
dnsUseGethostbyname = yes

と設定しています。実際には、上記キーワードで検索をかけて、コメントアウトされているサンプルの下の行に追記しています。


上記キーワードの内、allowedClientsの設定は、サンプルファイル通りに行ってもうまく行かないので要注意です。
上記の設定で、モバイルPCのブラウザでは、127.0.0.1:8123をプロキシと設定し、ノートPCでは、192.168.0.1:8123をプロキシとして設定することで接続できました。



さてさて、次はnicocacheが、モバイルPC内でpolipoで受け取ったリクエストをnicocacheに流す場合特に設定は必要ないはずです。polipoのリクエストを投げる先をlocalhost:8080に設定すればうまくいくはず。
ということで、上記の設定に

parentProxy = "localhost:8080"

を加えてください。


これで一応うまく行くはずです。ノートPCからでもモバイルPCからでもネットに接続できますし、ニコニコ動画はキャッシュされるはずです。
モバイルPCのプロキシの設定を、192.168.0.1:8123としてもネットに接続できますが、それはノートPCとLAN接続している場合に限定されますので、一応分けておいた方がよいかと。



これでとりあえずは一件落着。テストもかねてノートPCでニコニコ動画を拝見していたのですが、なんだか変です。
時々ネットにつながらなくなります。polipoを再起動するとまた接続できるようになりますが、またすぐに接続できなくなりました。
どうやらpolipoの後にnicocacheをつなげると相性が良くないような感じです。
だからといって、ソースを見ながら原因を追究するまでのスキルもないので、ここは残念ですがあきらめて、結局ノートPCにnicocacheを、モバイルPCにpolipoを導入することにしました。モバイルPCからニコニコをみるときにはキャッシュを利用できませんがまぁしかたがないかなと。
(どちらにしろ、今回購入したモバイルPCに、ニコニコ動画を見る力はありませんが)


となると、上記

parentProxy = "localhost:8080"

は必要ないのでコメントアウト。次にノートPCのnicocacheを設定します。nicocacheは受け付けるホストは選べないが、リクエストを投げるホストは選べるようです。nicocacheフォルダのconfig.propertiesのなかに

proxyHost=192.168.0.1
proxyPort=8123

の2行を加えるだけで、ノートPCのnicocacheからモバイルPCのpolipoにリクエストが投げられます。


あと、ノートPCのブラウザのプロキシをlocalhost:8080に再設定と。



とりあえず、これでいくつかの動画を流してみたのですが、特に問題なく動いているようです。
結局、nicocacheはノートPCで使うことにしましたが、javaで動いているので、今後Unix系に変えても問題ないでしょう。



そして、最後に一つのキーボードとマウスでどちらのPCも制御できて、テキストレベルだけど、クリップボードも共有できるsynergyを導入しました。これは、サーバ、クライアント共にコンピュータ名を設定するだけなので超簡単です。DHCPを用いてIPを決定しているので、ちょっと工夫が必要かなと思ったのですが、あっさり使えてしまったのでちょっと拍子抜けしました。





まぁ御参考になるかどうか分かりませんが、御参考にしていただけたら幸いです。

あと、かなり適当に書いているので、書き方が分からないところはコメントで聞いてくださいな。