サーバーが最初にiPhoneにpingを実行しない限り、iPhoneはIPアドレスでローカルサーバーにアクセスできません。

サーバーが最初にiPhoneにpingを実行しない限り、iPhoneはIPアドレスでローカルサーバーにアクセスできません。

私のデスクトップ開発マシンは、Web サーバーとして apache2 を実行している Ubuntu 22.04.3 LTS です。私の iPhone は、iOS バージョン 17.3.1 を実行している iPhone 12 Pro です。Ubuntu マシンでは UFW が無効になっています。私の自宅には、Ubiquiti ゲートウェイ アプライアンスを搭載したネットワークが 1 つだけあります。

時々、iPhone の Web ブラウザから IP アドレスで Web 開発サーバーにアクセスする必要があります。

これまで、これは問題になったことはありませんでした。しかし最近(いつからかはわかりませんが)、私の iPhone はこのサーバーにまったくアクセスできなくなりました。Web ブラウザー経由の HTTP/HTTPS リクエストは両方とも最終的にタイムアウトし、電話は私がインストールした「iNetTools」というネットワーク ツール アプリを使用してサーバーに ping を送信できません。

このネットワーク上の他のマシン (たとえば、私のラップトップ) は問題なく Ubuntu Web サーバーにアクセスでき、Ubuntu マシンに ping を送信できます。同様に、Ubuntu マシンは iPhone に ping を送信できます。潜在的な変数としてこれらの微妙な違いを排除するために、iPhone と Ubuntu サーバーの両方が同じ 5GHz チャネル上にあり、同じ AP (メッシュ ネットワーク) 上にあることを Unifi ソフトウェアで確認しました。

Ubuntu マシンから iPhone に ping すると、突然 iPhone からの HTTP/HTTPS リクエストが機能し始め、iPhone も Ubuntu マシンに ping できるようになることがわかりました。この状態はしばらく続き、やがて機能しなくなります (iPhone は再び Ubuntu サーバーにアクセスできなくなります)。そして、時計仕掛けのように、Ubuntu サーバーから iPhone に ping すると機能が回復します。

これは私の iPhone の何らかのプライバシー設定 (おそらく最近の iOS アップデートによるもの??) を示唆しているように感じます。前述したように、他のデバイスはこのサーバー (および互いに) と問題なく一貫して通信できます。

Ubiquiti/Unifi クライアント リストに両方のデバイス (Ubuntu サーバーと iPhone) が表示されています。Ubuntu サーバーが最初に iPhone に ping を開始しない限り、iPhone から Ubuntu サーバーに ping することはできません。この ping は成功するまでに常に数秒かかります。最初の応答は通常約 3000 ミリ秒で、次に約 2000 ミリ秒、さらに約 1000 ミリ秒となり、その後の応答時間は予想どおり 10 ミリ秒未満になります。

関連情報