最初に
僕はある日突然、Laptopで立てたPythonの簡易サーバーにスマホからアクセスできないトラブルにぶつかりました。それがあまりにも複雑で長期に渡って僕を苦しめたので、こうして記事にまとめたという次第です。
隠された真実。(キリッ)(煽りタイトルやめろ)
面倒で語られない手順の真実
ぶっちゃけ、外部端末からのアクセスの実現は、巷で紹介されている程度を遥かに越えて大変に面倒なものでした。(しかし、あなたは以下の手順に従うだけで済みますね。素晴らしい!)
(ファイアウォールやアンチウィルスを切ってセキュリティホールを作る必要などどこにもなかったんや……(※効果には個人差があります))
前提
- ローカルサーバの設定に問題はない
- 機器とPCが同じLANに接続している
- あなたはそのルーターの設定に必要なユーザー名とパスワードを知っている。
- Windows 10
- この親切なサイトを見てもうまくいかなかった。
上記の内容についてはここでは説明しません。もしこれらの前提に引っかかるようなら、Google先生に聞いてみましょう。大半はいい手引が見つかるはずです。
そして、teratailに寄せられたこの回答は今回話す内容をざっくりと説明してくれています(これをもっと早く見つけていれば、あんなに苦しむ羽目にはなかったろうに……)。
当記事は、おおまかに言って、この回答の内容がよくわからない、またはおおよそわかったが解決には至らない、という人たちを対象にしています。以下は上記のteratailの回答をよく読んでから読み進めてください。
いますぐ試すべきこと
まず、接続しているLANが「プライベート」設定になっているか確認しましょう。
WindowsならタスクバーのWifiアイコンをクリックし、対象のLANのプロパティ
を開けば目前に当該の設定が現れます。
それでもうまくいかない?
-
ネットワークの共有オプションの、プライベートの設定は
ネットワーク探索を有効にする
が選択されているか?- タスクバーのWifiアイコン(右クリック)
ネットワークとインターネットの設定を開く
共有オプション
プライベート
-
Windows Defenderの
すべての着信接続をブロックします。
の選択が外されているか?- タスクバーのWifiアイコン(右クリック)
ネットワークとインターネットの設定を開く
Windows ファイアウォール
プライベート ネットワーク
-
このコンピューターのインターネット接続を通しての接続を許可する
にチェックが入っているか?- タスクバーのWifiアイコン(右クリック)
ネットワークとインターネットの設定を開く
アダプターのオプションを変更する
-
Wi-Fi
(右クリック) ※ただし、有線接続の場合はローカルエリア接続
プロパティ
-
共有
タブ
プライバシーセパレーター機能をオフにする
本題。僕には最後まで気づけなかった原因について。
プライバシーセパレーター機能ってなに?
この文献に目を通したら、お手持ちのルーターのセットアップをやりなおしましょう。
これはルーターによって設定方法がまちまちなので、各自でしらべてもらうしかありません。
ただし、以下のような傾向が考えられます。
- ルーターと有線接続しないと設定できない
- たいていは192.168.0.1で設定できる
- SSIDに~GW, ~AWなどの、接尾辞らしきwがついている回線にはデフォルトでセパレート機能がオンになっていて、逆にそのwがない回線ではオフになっている場合がある。こうした場合、プリンターとPC両方をwのついていない回線につなぐことで設定変更しなくても解決する。
以上で僕がサーバー接続を実現した手順の紹介を終わります。
他にめぼしい原因があれば教えて下さい。ありがとうございました。
#で、どこがどう「隠された真実」なの?
- プライバシーセパレーターの設定はググってもなかなか出てこない
- いわんや、ネットワーク設定からプライバシーセパレーターまで包括的に説明してくれる文献ももちろんなかった
- みなWindows ファイアウォールやアンチウィルスソフトウェアをオフにせよと口酸っぱく言うがそんな必要などなかったんや……