魂が飛ばないときは?――リモートデスクトップ失敗の原因を考える

ここ最近、PC同士でリモートデスクトップを使用することが何度かあったのですが、どうしてかXPマシン同士ではTeraTermCygwinなどを使ったSSH接続によるポートフォワードに失敗して、うまく接続ができませんでした。今まで、単純にポートフォワードしている側(つまりTeraTermCygwinなど)が駄目なのかな、と思っていたのですが、完全に思惑が外れていたようです。というわけで、同じように詰まっている人もいるかもしれないので、一応メモ的に記しておきます。


そもそもポートフォワードというのは、ファイヤウォールでインターネットに対して壁を作っているLANに対して、一つだけ安全なポート(SSH)を開けておき、外と中のネットワーク上にあるポートを仮想的にSSHポート経由で繋ぐ事で、壁越しに便利なやり取りを出来るようにするものです。
ルータを使って繋いである家庭向けのADSL回線でも、ルータがファイヤウォールとして機能しているので、同じようにSSHを使うことで便利になります。当方では、SSHを使うために家に玄箱と呼ばれるLinuxサーバを立ち上げています。これに関してはまたいずれ(^^;;


リモートデスクトップでも、デフォルトでは3389というポートを開けて必要があるのですが、ルータの設定でこのポートを開けるのはほぼ自殺行為です。アクセスログを見ると、1時間以内で何度も世界中からアクセスが試みられてるのがわかると思います。というわけで、SSHのポート22のみを開けておいて、内部マシンのポート3389と、外側からアクセスするマシンのポート3389をポートフォワードにより繋げてやります。


http://www.hatena.ne.jp/1063772481この辺が参考になります。が、ポートフォワードを有効にした状態で、WindowsXPでXPのマシンに接続しようとすると、いくつかの問題が発生します。


・自身のマシンでもポート3389でリモートデスクトップを有効にしていると、番号がかちあって使えない
・それに何故か、localhostで繋げようとしても繋がらない。


上の問題は、単純にクライアント側のマシンで、リモート接続を無効にしてあげれば一応問題ありません。確認を忘れると、TTSSHCygwin等でポートフォワードに失敗しました、と言われてどつぼにはまります(^^;;;
また、それをクリアしても下の問題により、訳もわからず繋がりません。これは、WindowsXPが、「自分のアドレスには繋げさせない」という変なルールを持たせているからなのだそうで。こちらに詳しい解説がありますが、Windows98互換モードで実行させれば大丈夫なようです。だったら最初からそうしてほしかったりしますが、時におせっかいは足枷になりますね(^^;;