ネットワークの最近のブログ記事

Windowsには他人のPCをリモートで操作してヘルプするリモートアシスタンスという機能がある。リモートデスクトップのようなものだが、接続先のユーザがログインしたままで、他人がそのコンピュータに入って操作できるようになる、というところが違う(どちらかというとVNCのような感じ)。簡単なチャット機能もある。

手順は以下のサイト参照で。

遠隔操作でパソコンの設定を直してもらうには?
(Microsoft サポート)

ただ、問題は接続先のPCがモデムに直結ではなくルータ越しになっている場合、ヘルパーに通知されるIPアドレスがローカルIPになってしまうことがある。このIPはヘルパーに送信する Invitation.msrcincident というファイル(中身はxml形式のテキスト)の中に書かれている。

この UPLOADDATA タグの属性 RCTICKET に記述されている IPアドレスが、192.168. で始まるものになっていたら、ここにルータの外側から接続することができない。この場合、この部分をリモート接続を受ける側(ヘルプされる側)のPCのグローバルIPに書換えてやる(若しくは グローバルIPを ";" 区切りで追記する)。

グローバルIPはルータの設定画面を見るか、または ipconfig や tracert をやれば確認できるが、ヘルプを受ける側がそのような作業ができる技量を持ってない場合が多々なので難儀する。

そんなときに重宝するのが確認くん。

確認くん(VIA the UGTOP)

このページのURLを教えて「現在接続している場所(現IP)」というところのアドレスを教えてもらう(これがグローバルIP)。そのIPを Invitation.msrcincident に書きこんで開けばリモート接続できるはず。

ちなみに、ルータでリモートアシスタンス用のポートが閉じられてる場合は当然接続することができない(WindowsXP/7対応などとなっているルータであれば、デフォルトでこのポートは開いてると思うけど)。もし閉じられている場合は、同じく Invitation.msrcincident のIPアドレスの後ろ(":" 区切り)に書かれているポート番号を開くかルータの設定でマッピングする必要がある。が、しかし、これはさすがにヘルプを要するようなユーザができる作業ではない気がするので、とりあえず備考として覚えておく知識。

今まで使ってた無線LANルータ「WHR-G54S」が大分年季が入ってきて、内部電池も切れて時計も狂いまくりだったので、いまどきのルータに交換しようということで思い立って、このほど、高機能無線ルータ「WZR-HP-AG300H」を導入。

ちなみに、うちはマンションLAN(BiberBit)で、ADSLや光のモデムなどはなく、壁のLANジャックから直接100Mbpsの幹線につなぐ感じになってる。

構成は

インターネット(幹線)―有線ルータ―無線アクセスポイント―PC

という感じで、この無線アクセスポイントの部分をWHR-G54SからWZR-HP-AG300Hに置き換えた。この場合、LAN側のIPは有線ルータのDHCPを使っているので、WZR-HP-AG300HはルータモードをOFFにしてブリッジとして使用する。(WHR-G54Sもブリッジモードで使用していた)

これで、無線LANを使用しているゲーム機(PS3、Wii、XBOX360、PSP、及びNDS)、テレビ、DVDレコーダなどはAOSSで問題なく再接続完了。

問題はPC。※OS は Windows XP Pro の SP2

PC は Panasonic の Let's Note を使ってるのだけど、これは Intel Centrino で内部に無線アダプタ「Intel(R) Pro / Wireless 2915ABG」が入ってるので、これで無線接続していて、WHR-G54Sにもこれでずっと問題なく接続していた。

で、WZR-HP-AG300Hに置き換えて、クライアントマネージャ3を最新にしてAOSSで接続してみるのだけど、最初は接続成功してインターネットに出られる。しばらくはWebも使用できる。

が!

それから数秒~数分すると、なぜか接続できなくなるのですな。タスクバー右下の無線LAN、及びクライアントマネージャのインジケータは問題なく接続しているような表示なのだけど、実際はネットワークが使えなくなってる。(ブラウザでWebが開けない、ローカルネットワークに接続できない)

ちなみに、このときWZR-HP-AG300Hに対してPINGを打ってみると応答なし。

これを一時的に回復させることはできて、クライアントマネージャを起動して、その「再接続」ボタンを押すと、IPを再取得した後、ネット接続が復活する。若しくは、Windows XP 標準のワイヤレスLAN設定で一旦無効にし、再度有効にすると復活する。

がしかし、また数秒~数分すると接続できなくなる!

不思議なのは、PC以外のネットワーク機器は問題なく接続できるのに、PCだけがダメという点。あと、再接続すると一時的に接続が復活するという点(ダメならダメでずっとダメな方がむしろ潔い)。

この原因がわからずほとほと困っていたのだけど、どうもAOSSの設定か、BUFFALOのクライアントマネージャが悪さしてるのではないかと思い、クライアントマネージャをアンインストールして、AOSSを使わずWindows標準の手動でSSIDを設定したところ、いまのところ切れることなく接続が持続するようになった。

参考 : [FAQ1307 ] AOSS接続を利用せず、手動で無線接続したいです。

WZR-HP-AG300Hのルータ設定をWebで見ると、本体に貼りつけられているSSIDの他に別のSSIDが表示されていた(つくられた?)。本体貼付のSSIDが「XXXXXXXX」とすると、「XXXXXXXX-1」とか「XXXXXXXX-4」みたいに、最後にハイフン数字というようなSSIDがいくつかあって、AOSSを使うとこれらが使われているような感じだった。そして手動設定で「XXXXXXXX-1」や「XXXXXXXX-4」を設定すると同じ現象が再現(接続切れ)。これがマズイんじゃないのか?と思い、手動設定ではその数字付きではなく、オリジナル(本体貼付)のシールに書かれてる「XXXXXXXX」の方で接続するようにした。

これが正解なのかわからないけど、とりあえずこれで切れることはなくなったので備忘メモ。


追記:
WZR-HP-AG300Hは「IEEE 802.11n/a」対応のSSIDと「IEEE 802.11n/g/b」のSSIDがあるのだけど、「IEEE 802.11n/a」の方がセキュリティが強いらしいので、PCから接続する際は「IEEE 802.11n/a」のSSIDを設定すると良いらしい。それで接続しづらい場合に「IEEE 802.11n/g/b」を試してみると良いらしい。

ちなみに、PS3やPSP、Wii、DSなどのゲーム機でAOSS接続すると「IEEE 802.11n/g/b」の方でつながるっぽい。

Windows 7 (Vista もかな?)で、ブラウザを起動すると Flash Player のインストーラが起動して、そこでインストールを完了したにも関わらず、次回ブラウザを起動すると、また同じインストーラが起動して、何度も何度もインストールしなければならないという現象が発生する。

これは、管理者権限でインストールをしてない為に起こると思われる。

ので、Flash Player のインストーラをダウンロードし、それを管理者権限で実行すると、現象が発生しなくなる。

Flash Player のダウンロード
http://get.adobe.com/jp/flashplayer/

オンラインインストールではなく、ダウンロードした「install_flash_player.exe」を右クリックして「管理者として実行」で起動する(ブラウザが開いている場合は閉じる)。

これで解消するハズ。

追記:
もしかすると、ブラウザ自体を「管理者として実行」してそこでインストールするのでも良いかもしれない?(未検証)
avastの更新で最新の5にアップデートしたら、
BIGLOBEのメールだけ以下のようなエラーで送信できなくなった。

不明なエラーが発生しました。

件名 'TEST'
サーバー エラー: 421
サーバーの応答: 421
サーバー: 'mail.biglobe.ne.jp'
Windows Live メール エラー ID: 0x800CCC67
プロトコル: SMTP
ポート: 587
セキュリティ (SSL): いいえ

最初は設定ミスか、メーラかサーバが悪いのかと疑ったが、
設定をBIGLOBEのサポートページの通りに設定しても
全く状況がかわらないので途方に暮れていたんだけど、
原因は、avastのメールシールドだった。

BIGLOBEのSMTPは587ポートを使用するようになっているが、
このポートの設定がavastの設定からはずれている為に
その送信がブロックされていた。

avast5のコントロールパネルを開いて

「リアルタイムシールド」→「メールシールド」→「詳細な設定」
→「SSLアカウント」

を開いて「ne.jp」の「SMTP」のポートを587に変更する。

これで少なくともBIGLOBEメールは送信できるようになる。
(ただ、他のアカウントがある場合はそちらに影響するかも?)

うざかったら、このシールドを「停止」してしまえば良いが、
その場合、メール送受信時のウィルスチェックが効かなくなるので
そのあたりは自己責任で。
HTTPの応答を受け取って内容を解析するコードをつくっていたのだけど、
HTTP通信は全てテキスト形式だと思っていたら罠があった。

HTTP1.1は、BODY部がgzip圧縮されてくることがある!

圧縮、非圧縮を判定するキーはHEADER部のContent-Encodingにある。

Content-Encoding: gzip

などとなっていたら、BODY部は圧縮されている。
gzip以外に、x-gzipとかdeflateとか書かれてることもある。

その場合は、BODY部をzlibなどで展開する必要がある。

HTTP1.1対応のブラウザは暗黙にこれをやってるんですね。
(IEやFirefoxはHTTP1.1を拒否する設定もできる)

Paros

| コメント(0) | トラックバック(0)

HTTPで流れるデータを解析するときは、
従来 ethereal とかのパケットキャップチャを使っていた。
(というか、今も基本そうだけど)

ただ、プロトコルレベルの通信まで見る必要がなく、
HTTPヘッダの中身を見たいだけとかなら、Parosというツールで十分っぽい。

これは簡易プロキシみたいな感じで、
本来の用途としてはWebの脆弱性をチェックするツールらしい。

でも、これをProxyにすれば単にキャップチャとして使える。


PS.
ethereal は WireShark とかいう名前になったらしい。

今までキャッシュオブジェクトの数とか確認するのに
cachemanager.cgiを設定してWebでやっていたのだけど、
もっと簡単に見られる方法があった。

squidをmakeすると、toolsディレクトリの下に
squidclientというプログラムができる。
(make install すると bin にコピーされる)

これを使って

./squidclient cache_object://localhost/info

とやれば見られた。

例えば、今使われているディスクリプタ数を見たい場合は

./squidclient cache_object://localhost/info | grep descriptors


こんなの管理者としては常識なんでしょうネ。


参考:
Proxying with Squid
(sial.org)

URLでディレクトリ指定する場合に、URLの最後に"/"をつけないと、
HTTPレスポンスは200ではなく301になる。

301の場合、そのレスポンスヘッダ内のLocationフィールドに
正しい転送先が書かれているので、ブラウザは自動的に(暗黙的に)
そちらのページをリクエストして表示している。

つまり、

http://example.net/hoge

という指定で要求すると、
HTTPサーバは「そっちじゃないよ。こっちだよ」と

http://example.net/hoge/ ← スラッシュがついている

を再度要求するようにいってくる。

なので、ブラウザはもう一度"/"付きで要求している。
つまり、2回の要求、応答が発生している!

ディレクトリにブックマークやリンクをする際は、
なるべく"/"付きでやる方が、ネットワークやサーバにやさしい。


参考:
[Studying HTTP] HTTP Status Code
(studyinghttp.net)


2017年2月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

アーカイブ

宿・ホテル予約ならじゃらんnet
Powered by Movable Type 5.2.10