SOCKS

更新日:2003.1.5
作成日:2001.5.6

 SOCKSを使うとLAN内でインターネットに直接接続していないPC(下図のPC2, PC3)のアプリケーションソフト(例えば、ICQ2000、Yahoo Instant Messenger、AOL Instant Messenger (AIM)、MSN Messenger など)から、AN HTTPDのSOCKS経由でインターネットにアクセスできるようになる。また、SOCKS対応していないその他のアプリケーションでも、SocksCap32を使えばSOCKS経由でアクセスできるようになる。

 ここではネットワーク構成は以下のような接続であるとの前提で設定方法を説明する。ダイヤルアップルータの場合も考え方は同じである。。PCが1台しかないときはSOCKSを経由せずに直接アクセスすればよいので、SOCKSは不要である。

(追記) 以下の図はもともとアナログモデムと TA を意識したものであるが、PC1 がNIC 二枚刺しと考えると ADSL でも全く同じ構成になる。
  1. AN HTTPDの設定

     PC1でAN HTTPDを起動し、プロクシタブのサーバIPアドレスを 192.168.0.2 とする。

     SOCKSタブではSOCKSサーバ機能にチェックし、IPアドレス欄は 192.168.0.* とする。その他の設定は変更不要である。これで、192.168.0.* のPCからSOCKSが使用可能になる。


     SOCKSサーバ機能を動作させて「Winsock error 87: SOCKSゲートウェイスレッドをたちあげられません」と出るときには、プロクシタブのサーバIPアドレスが正しいかどうか確認する。

     (追記) 一般的には「SOCKS v4」と「SOCKS v5」はクライアントとしてどちらのバージョンが使われてもいいように両方にチェックしておくべきであるが、うまく動作しないケースが報告されている。もし上記の通り設定しても動作しない場合には使用する方のバージョンだけにチェックを付けて試してみるといいかもしれない。


  2. アプリケーションの設定
     ffftpを例に、PC2、PC3で動くアプリケーションの設定を説明する。

     オプション -> 環境設定 -> FireWall を下図のように設定する。SOCKSはここでは v5 とした。FireWallホストにはSOCKSサーバの IPアドレスを設定する。FireWallユーザ名/FireWallパスワードは上で設定した SOCKSサーバに合ったものを設定する。もし * とした場合には任意でよい。


     また、ffftpのホストの設定はこの下のような設定になる。「拡張」の中の「FireWallを使う」にチェックをする。

    (注) ffftpは次項の SocksCap32 から使うこともできる。SOCKS経由の場合との設定上の違いはホストの設定で 「FireWallを使う」のチェックを外すだけである。FireWall(SOCKSサーバのこと)にアクセスするのが ffftp 自身ではなく SocksCap32 なので ffftp では不要ということである。
     SocksCap32を使うとオーバーヘッドがある分、(恐らく)アクセスが遅くなるであろう。

     ffftp以外のアプリケーションでも SOCKS 対応のソフトは SOCKS サーバや SOCKS ユーザ名などを設定する個所があるので、同様に設定すればよい。下記URLにいろいろなアプリの設定例が記載されているので参考になるであろう(Application Configurationの項)。
     http://www.http-tunnel.com/html/support/user_guides.asp


  3. SOCKS対応していないアプリケーションの場合
     アプリがSOCKS対応でない場合には、この上のようにはうまくいかない。しかし、SocksCapというソフト(非商用利用はフリー。32ビットバージョンをSocksCap32と呼ぶ)を使うと、SOCKS対応していないあらゆるアプリでSOCKSサーバから外へのアクセスが可能となる。ゲームでも使えるのでネットワークゲーム好きな人は幸せになれるかもしれない(ラグナロクオンライン(RO)によく使われているようである)。(SOCKSではなくゲートウェイを使って接続できる場合もあるので、パンダネットと東風荘の例も参考になるであろう)

     以下その方法を説明する。

    (1) SocksCap32を下記URLからダウンロードし、インストールする。
     http://archive.socks.permeo.com/cgi-bin/download.pl

    2004.5 現在、Version 2.36(Win95/98/Me/2000/XP/NT4用、2004.12.1までの使用期限有り。ただし期限以前に新版が配布されるのでそれをインストールすれば継続使用が可能)か、Version 1.03(Win95/98/NT4用。Me/2000/XPでは不可)が入手可能である。

    (2) SocksCap32を起動し、File -> Settingsを以下のように設定する。Name Resolution はローカルにDNSがあるなら、Attempt local then remote でも構わない。



    (3) File -> Newから、SOCKS経由で使用するアプリケーションを入力するか、exeファイルを Drag & Drop し、New Application Profile...で登録する。登録例を下図に示す。登録したアプリは、Control ウィンドウ内にアイコン表示される。



    (4) Control ウィンドウ内のアイコンをダブルクリックか、あるいはポイント後、 Run Socksified! をクリックすると、SocksCap32上でそのアプリが実行される。後は普通の使い方をすればFIREWALL越えのアクセスが可能である。FFFTPやNapsterのようにアプリケーションに SOCKS、Proxy、Firewallなどの設定項目があったとしても、SocksCap32上で実行するならその設定は不要である。

    (追記) Yahoo!ゲーム にアクセスするには SocksCapに登録した IEやNetscapeを起動し、ブラウザのプロキシ設定で(もし何か設定されていれば) Socks欄をアドレス、ポートとも空白にすれば(HTTPやFTPなど他の欄は変更不要)クライアントPCでもゲームが可能になります。
    (注) SocksCap32 で SOCKS Version が 4 ではアクセスできません。



    (5) 上記(2)でProtcolをSOCKS Version 5に設定すると、次回からSocksCap32を起動する度に以下のようにユーザ名、パスワードを問い合わせてくる。サーバ側でユーザ名、パスワードが「*」となっているときは、任意の文字列を入力すればよい。もしサーバ側でユーザ名、パスワードが設定されていればそれを入力する。



(参考) SocksCap32はNECが開発し無償配布しているソフトであるが、後継製品である e-Border Driverをパーミオ・テクノロジーズ社(NECからスピンアウトしてできた会社)が開発している。私はこの会社とは何の関係もないので義理立てすることはないのだが、e-Border Driver へのリンクを張ってもらえないかとのメールをもらったので紹介する。お礼に e-Border Driver の使用権くらいはもらえるのではないかと密かに期待しているのだが…。:-)

(追記) 2003/3にある方から上記のリンクが切れているとのメールをもらいました。いつの間にかホームページの構成が変わってしまっていたようです。その後パーミオ社からは梨の礫だし、筆者自身は e-Border Driver を使ってないので的確にフォローできなくなっています。SocksCap32は Expireされても新しいバージョンをダウンロードしてインストールすれば引き続き使用できますので SocksCap32 を使うのがいいかと思います。それでも e-Border Driver に興味があるという方はトップページからたどってみつけてください。Permeo Security Driver v4.1 for Windows というのがそれなのかどうか?



作成:いと,mailto:gfh05223@nifty.com