本ページはこんな方におすすめ
- なぜか Android 端末(スマホ・タブレット・TV)がネットに繋がらない
- Wi-Fi には繋がるけど、インターネットできない
インターネット接続するときは、多くの場合、Wi-Fi 接続を利用しています。
私が使用している端末の中で、Android 端末だけが Wi-Fi ルーターに繋がらない現象が起きています。この現象は、私のみならず多くの人も体験しているようですが、解決策がよくわからないので自分なりに対応してみることにします
Wi-Fi に繋がらない原因の究明
私の環境では、禁断の HUAWEI HG8247 が供給されています。昨今の話題の中、使用して良いものなのか微妙ですが、一見するとよくできたルーターのように感じます。
設定環境
このルーターで、Android 端末だけつながらなくなるのは、もしかして Google の HUAWEI 対策なのかと疑ってしまいました。
Wi-Fi に繋がらないデバイスは?
1つしか試すデバイスがない環境では、Wi-Fi ルーターに問題があるのか、Android デバイスに問題があるのか今ひとつつかみきれません。幸いにも、いくつかのデバイスをある程度の期間(一ヶ月近く)試すことができていますので、それぞれピックアップしていきます。
結論を言えば、Android デバイスのみ Wi-Fi に繋がらない現象が起きるようです。一方、Windows PC に関しては普通に繋がります。Apple 端末についても問題なく繋がります。
Wi-Fi に繋がらない Android デバイス
Android と言ってもたくさん種類があるため、デバイス固有の問題なのかを切り分けるためにもいくつか試してみる必要がありました。繋がらない現象が起きるデバイスは次の通りでした(あくまでも私が試せた中でのお話です)。
- Sumsung Galaxy S9 Plus(Android 10 系)
- Sony KJ-55X9500G(Android 9 系)
- Toshiba REGZA 43C310X(Android 8 系)
- Kindle Fire TV 4K(Android 7 系)
- Dell XPS 15(Windows10 系)
Wi-Fi に繋がるデバイス
- Apple iPhone 6(iOS 12系)
- Apple iPhone XR(iOS 13系)
- Apple iPhone XS(iOS 13系)
- Apple iPad Air (2016年製)(iOS 10系)
- MSI Windows10 マシン(Windows10 系)
MSI の Windows10 マシンは常時使用している PC で、LAN 接続もできますが Wi-Fi 接続も問題なくできています。
〔とにかく原因究明1〕 WiFi シグナルはしっかりと受けているかどうか
Wi-Fi につながるもつながらないも、Wi-Fi の電波がそもそも届いていない、スマホやタブレットがその電波に対応していないようなケースではつながらなくて当然なので、まず確認します。
ルーターに有線接続し、ブラウザ上から管理者モードで確認します。
Wi-Fi ルーターの Wi-Fi 機能をオフにしているような滅多にないケースに当てはまらないかの確認です。
私のルーターの場合は、2.4GHz 帯域、5GHz 帯域ともにオンになっています。
場合によっては、オンになっていてもハードウェア的に壊れている可能性もありますが、現実に Apple 端末は Wi-Fi 接続できているので、ハードウェアはとりあえず動いているとして次に進みます。なお、テストした Apple および Android、Windows 端末はすべて 2.4GHz 帯と 5GHz 帯に対応しています。
後ほど別記事でしっかり載せようと思うのですが、端末いかんによっては 5GHz 帯域の特定チャンネルにはアクセスできないなどの端末そのものの制限があります。Wi-Fi の規格は込み合っていて、5GHz に対応しているからといって、すべてのチャンネルに接続対応しているとは限らないのが面倒な点です。
ただ、Galaxy S9 などは積極的にすべてのチャンネルに対応してきた端末のはずで、これがつながらないのは何か別の理由がありそうです。Wi-Fi のチャンネルの件はとりあえず保留にして、次のチェック項目に進みます。
〔とにかく原因究明2〕Wi-Fi の接続そのものはできそうか?
あまりネットに詳しくない人はネットに繋がらなくなったら「インターネットがおかしい」や「Wi-Fi がおかしい」と言うような表現で終わってしまって、原因究明が進まなくなることがよくあります。
まずは、LAN ケーブルでルーターにつないで確認
Wi-Fi ルーターに接続する場合、多くは有線で LAN ケーブル経由で接続する方法があります。LAN が繋げることができるノートやデスクトップ PC をお持ちの方は、有線接続でルーターに接続してみるテストが必要です。
ルーターが物理的に壊れている場合は、この時点でトラブルが噴出してきます。具体的な接続方法は、ルーターの本体(裏・表・横など)にルーターの IP アドレスとパスワードが書かれていますので、その IP アドレスをブラウザのアドレス欄に打ち込んでアクセスします。多くは「192.168.1.1」や「192.168.*.1」(*は254までの整数)などのアドレスになっているはずです。また、LAN ケーブルをつなぐ PC は IP 設定(割り当て)を自動(DHCP)にして、プロキシなどは使用しない設定に戻しておく必要があります(デフォルトでそうなっています)。
ところが、今回は DHCP についても誤動作の疑いがあるので、DHCP が働く働かないにかわらず、アクセスする必要があります。優先接続する PC はルーターと同一ネットワークに属するアドレスを設定しておく必要があります。DHCP 割り当てに慣れきっている人は、意外と忘れがちですので、ケーブル接続する LAN カード(PC)の IP アドレスを設定しておきます。
具体的にはルーターのアドレスが 192.168.1.1 なら 192.168.1.2 などになります。初めての方でも作業できるように具体化して(チート表を作って)おくと、
PC に設定するアドレス:192.168.A.b
(A の数字をそろえる、b は 1 以外の 254 までの数字)
で即席対応できます。
スマホで Wi-Fi 接続を試す
iOS(13 系)の載った iPhone では Wi-Fi に 5G 接続できて、IP アドレスも拾ってくるところから Wi-Fi そのものは問題なく動いているように見えます。ところが、Android(10系)の載った Galaxy S9+ からは Wi-Fi 接続には成功しつつも "Couldn't get IP address(IP アドレスが取得できません)" となり、IP アドレスが取得できていないことがわかりました。
Dell 製のラップトップ(Windows10)で試すと、Wi-Fi には接続できるのですが、インターネット接続なしとなり、どうやら IP アドレスが自動で取得できていないことがわかりました。
FireTV Stick だけは別問題
昨年中頃(2019年中頃)に入手した HDMI 接続の FireTV Stick 4K を愛用しているのですが、自宅のルーター(HUAWEI HG8247W5)の Wi-Fi シグナルを全く拾わない状況になっています。一瞬、故障を疑いましたが、Wi-Fi を再スキャンしてみると、他の家のWi-Fiのシグナルは拾っているので故障ではないようです。一方、iPhone のみならずその他の Android デバイスは FireTV には表示されないルーターのシグナルを拾っているので、FireTV Stick だけ特別何かトラブルが生じている感じです。TV の裏の HDMI 端子に差しているので、シグナルを拾いにくいのかもしれませんが、これまたスキャンしてみると隣人どころではない、もっと遠くの家のWi-Fiシグナルらしきものも拾っていることがわかりました。
実は、これは先ほど別記事にするといいました、Wi-Fi のチャンネルの対応の問題です。FireTV Stick が 5GHz 帯のすべてのチャンネルに対応しているかと言えばそうでもないのです。情報が少ないので試していくしかないのですが、私はチャンネルの自動選択を切り、手動でチャンネルを設定することにします。W53 の 52 チャンネルに設定すると、とりあえず受信するのでこのチャンネルに固定して使うようにします。私の環境では 52 チャンネルは今のところ他者(近場のユーザーが使用するWi-Fi)とも重ならないので、これに設定しています。なお、チャンネル幅は自動にしています。52 チャンネルは W53 なので 4K 対応ではない FireTV Stick(HD版)だとシグナルを拾わないかもしれません。
W53 のチャンネルは少々制限があるので、使用する場所で混雑がなければ W52 のチャンネルから選ぶのが無難です。
〔とにかく原因究明3〕今の「できる・できない」点をまとめる
今回のケースでは、
- とりあえず Wi-Fi シグナルはきているらしい
- Apple デバイスは繋がるiPhone XS
- Android 端末は IP が取得できない
- Windows10 マシンは IP 取得が不安定
という状況です。Wi-Fi そのものに接続できないのではなく、IP アドレスをルーターから拾ってこれないことが直接の原因のようです。
なぜ、Apple 端末だけ問題なく IP アドレスを拾えるのかが気がかりですが、単にそれだけの問題であれば、IP アドレスを自動割り当てにせず、固定することにより(静的アドレス)対処できます。
試しに、Sony KJ-55X9500G に静的アドレスを設定してみたところ、問題なくインターネットに繋がりました。Netflex にもアクセスできましたので、Android 端末に IP アドレスが割り振られないことが原因で、ネットに繋がらないと言うことのようです。Android 9 以上だと、「IP アドレスが取得できません」けどアクセスポイントには繋がっていますというメッセージが出るタイプの端末が多いのですが、Android 8 以下で Wi-Fi 接続の場合は、IP アドレスが取得できない場合は、そもそも Wi-Fi にも繋げないということがあるようです。
Apple 製品と Windows PC に対する誤解
普段使いっぱなしにして、電源もほぼ落とさない MSI 製の PC も主に Wi-Fi 接続していて、必ず IP を拾ってきてネットにアクセスできるため、Windows10 PC も DHCP からしっかりネットワークアドレスを割り当てられていると思ったのですが、時々起動する DELL 製のノート PC を起動すると、ルーターには接続できるけど、IP アドレスが取得できないということがわかりました。
また、Apple デバイスがすべて IP アドレスを取得することに成功していると書きましたが、数日間電源が切れたまま放置していた iPod を充電して起動してみたところ、IP アドレスを取得しないことが判明しました。iOS のバージョンが7以下だったかと思うので、比べる対象にしていいのかどうか迷いましたが、初代 iPad ですら IP を拾っていることを考えると、何か原因があると考えられます。
実は、Apple 製品は IP を拾っていたのではありませんでした。Apple 製品は Wi-Fi に接続できたけど IP が拾えなかった場合は、直近に取得した IP アドレスをそのまま使うという設定になっているようです(これは設定としては多かれ少なかれ、多くの製品が採用している設定です)。家庭用 Wi-Fi ルーターの場合、端末がコロコロ入れ替わってごっちゃになるというより、いつも同じ端末が接続しているというケースが多いと思います。そのため DHCP で一度取得したアドレスは、特段コンフリクトが起こるようなケースでもなければ、そのままいつも同じアドレスを優先的に使おうとします。Apple 製品はこの性質がモロに現れる設定になっているため、IP アドレスを拾ってきたかの如く見えただけのようです。これも、普段から電源を入れっぱなしにしている MSI 製の Windows PC も同様で IP アドレスのリース期間が長いために起きた、偶然にアクセスできた現象だといえそうです。
現にパケットキャプチャしてみると、まったくルーターの DHCP サーバーが応答していないことがわかりました。
このルーターは特定の状況下では、DHCP サーバーが働かなくなるようです。
〔とにかく原因究明4〕IP アドレスの自動割り当てを見直す
これまでの経緯で、Android スマホが Wi-Fi ルーターには接続できてはいるけれど、IP アドレスが取得できていないので、インターネットにつながらないということがわかりました。
今回は、多数の Android 端末に IP アドレスが自動割り振りできていないことから、Android 特有の問題か、DHCP サーバーの設定ミス等を含めて問題が疑われます。
多くの Wi-Fi ルーターはオープンソースの DHCP サーバーソフトを使っているため、そのバージョンなどの特定は容易です。私が確認した HUAWEI HG8247W5 の場合は、
udhcp Server-Client Package 0.9.8 Copyright (c) Russ Dill <Russ.Dill@asu.edu> July 2001. All rights reserved.
* udhcp client/server
* Copyright (C) 1999 Matthew Ramsay <matthewr@moreton.com.au>
* Chris Trew <ctrew@moreton.com.au>
*
* Rewrite by Russ Dill <Russ.Dill@asu.edu> July 2001
でした。
"udhcp Server-Client Package 0.9.8" という DHCP ソフトは 2002年10月末日以降、バージョンアップされていない、かつては Linux 系の OS によく使われたこともある枯れたソフトです。枯れているので安心という声もありそうですが、プロトコルは変わっていないとはいえ、古すぎるので、他の構成(アプリの動作)と合わせるとコンフリクトなどそのまま起こることも考えられます。
今後、IPv6 が主流となると見越して、IPv4 の方は枯れたもので対応するのが良いと考えたのでしょうか。
〔とにかく原因究明5(オマケ)〕DHCP だけが悪いのか確認
04-19 21:55:44.713 D/WifiService( 2368): NetworkSelectionStatus NETWORK_SELECTION_TEMPORARY_DISABLED
04-19 21:55:44.713 D/WifiService( 2368): mNetworkSelectionDisableReason NETWORK_SELECTION_DISABLED_DHCP_FAILURE
04-19 21:55:44.713 D/WifiService( 2368): NETWORK_SELECTION_DISABLED_DHCP_FAILURE counter:5
04-20 09:40:38.764 D/DhcpClient( 2368): Broadcasting DHCPDISCOVER
04-20 09:41:11.286 D/DhcpClient( 2368): Broadcasting DHCPDISCOVER
04-20 09:41:14.731 D/WifiStateMachine( 2368): ObtainingIpState CMD_IP_CONFIGURATION_LOST rt=352488402/2410556353 0 0 failures: 0/9 18:3d:5e:fe:d6:c0 bcn=257
04-20 09:41:14.732 D/WifiStateMachine( 2368): L2ConnectedState CMD_IP_CONFIGURATION_LOST rt=352488402/2410556354 0 0 failures: 0/9 18:3d:5e:fe:d6:c0 bcn=257
04-20 09:41:14.740 D/DhcpClient( 2368): doQuit
04-20 09:41:14.742 D/ApfFilter( 2368): (wlan0): shutting down
04-20 09:41:14.746 V/WifiConfigManager( 2368): Disable counter for network mynetwork for reason NETWORK_SELECTION_DISABLED_DHCP_FAILURE is 1 and threshold is 5
04-20 09:41:14.747 D/wpa_supplicant(13221): wlan0: Cancelling scan request
04-20 09:41:14.747 D/wpa_supplicant(13221): wlan0: Request to deauthenticate - bssid=18:3d:5e:fe:d6:c0 pending_bssid=00:00:00:00:00:00 reason=3 state=COMPLETED
04-20 09:41:14.747 D/wpa_supplicant(13221): TDLS: Tear down peers
04-20 09:41:14.747 D/wpa_supplicant(13221): wpa_driver_nl80211_disconnect(reason_code=3)
04-20 09:41:14.751 D/DhcpClient( 2368): Receive thread stopped
04-20 09:41:14.752 D/DhcpClient( 2368): onQuitting
今回の Wi-Fi 接続の不具合は、DHCP サーバーが特定の状況では動かなくなると仮定します。現に Android デバイスは USB 接続でデバッグできるのでログを落としてみます。ログは Wi-Fi の接続手順まで詳細に落とします。
落としたログを読んでみると、Android デバイスはしっかり DCHPDISCOVER を送っているのですが、どれも応答しません(ここでは応答できるのは Wi-Fi ルーターのみ)。タイムアウトが生じています。つまり、接続はできるけど、IP アドレスが拾えない状況そのままです。ということで、原因はルーター内蔵の DHCP サーバーが機能しないことによるものです。
また、 WifiConfigManager が出している NETWORK_SELECTION_DISABLED_DHCP_FAILURE あたりも原因特定のキーワードなりそうです。
このログだけで、DHCP に問題ありと断定しない方が良いかもしれませんが、とにかくニオイます。ニオイのもとをしっかりチェックします。
〔解決策〕を考える
これまでで、ある程度の容疑が固まったら、できる対応は次の通りです
- DHCP がしっかり動くタフなルーターに切り替える
- 能無しルーターの Wi-Fi 機能はオフにして、別ルーターもしくはサーバーを組み込む
- 面倒なので、すべて静的アドレスを与えて対処する
1番目のルーター取り換えは、光回線を提供しているプロバイダ次第です。実は、プロバイダ独自のファームウェアを組み込んでいる場合など、本来のルーターの機能がすべて使えなくなることがあります。永遠にグレーアウトするような設定項目はよくあります。
その他の機能にも不満なら、プロバイダから支給されるルーターを PPPoE だけに使い、その他をすべて自前で用意するという方法もあります。
2番目の別ルーターの組み込みは現実的には可能です。省電力ボックスPCなどをルーターにしたり、DHCP サーバーにしたりすれば対応できます。ただ、今回のように DHCP サーバーのようなどうでもいいような小物のために、別サーバーやルーターをわざわざ構築するのはマニアっぽくなります。
3番目は応急処置にもなりますが、セキュリティ的にも安心できる原始的な解決策です。商売で他人のネットワークを修復するようなケースでは、この方法は知能指数低すぎの解決策ですので、手間だけかかって、お金がいただけないタダ働きの対応になります。
逆に、個人レベルで自分の家程度のネットワークを修復するだけなら、この方法が最も低コストで簡単です。
〔解決策2〕の可能性を考える
ポンコツのルーターを補佐するために、別サーバーを補佐的に置くことはよくやる方法です。個人や家庭レベルで常時10台以上の端末が動く環境では、DHCP サーバーがあるに越したことはありません。しかし、DHCP サーバーというのは重要な働きをするとは言え、たいしてリソースを消費しない軽いサーバーです。これを動かすためだけに、たとえ省電力省出力 PC であっても設置するのは個人次第です。
もし設置するのであれば、DHCP のみならず、Web サーバーなどほかの機能もついでに担当させるくらいの設計にしたいものです。
作る予定がないわけでもないので、その際は詳細にレポートします。
〔解決策3〕でとりあえず手を打つ
ネットワークの知識がある人は、ここまで読む必要もないとは思いますが、それぞれの端末に固定 IP(静的アドレス)を割り振るようにします。そうすることで、LAN 側から WAN へのアクセスは可能になるはずです。一方で、ルーターによりけりですが、DHCP で静的アドレス付与するような設定がないマシンには、たとえそのマシンが IP アドレスを設定していたとしても、外部からのアクセスは認めないというような構成になっているものもあります。
具体的にこのことは、外部に HTTP などの Web サーバーを公開したり、対戦ゲームのようなソフトに、外部からのアクセスを許すポートフォワーディグ機能が働かないことがあります。これもファイアウォール機能を無効にするなどで対応することができる場合がありますが、今後のネタにします。
固定 IP(静的アドレス)を割り振るコツ
固定 IP(静的アドレス)を各端末に割り振るのは、台数が増えれば面倒ですが、滅多にネットワーク内の構成が変わらない、変わっても自分で把握できる程度であれば、何とかやりくりできます。
本当は、麻雀のリーパイせずに頭の中にネットワークを描いて設計するのがセキュリティ的に良いのでしようが、私の場合は 182.168.1.*2 はテレビ等のように、十の位で割り振っています。どうでもいい IP 家電などは 200~254 までに閉じ込めています。トータルで固定 IP を設定する端末は 20 個程度でした。そのうち常時稼働するものは8つ(FireTV なども含む)程度ですので、自分の所有デバイス(端末)がいくつあるのかを管理するにも、いい手かなと納得しています。
固定 IP(静的アドレス)を割り振るときの注意点
滅多にないというわけでもないのですが、デフォルトのネットマスクが 24 になっていないルーターがそれなりの数あります。24 だと最大で 254 ほどの端末を扱えますが、26 だと最大で 62 台、27 だと最大で 30 台、28 だと最大で 14 台ほどになります。
理屈の上では、少ない台数でまとめる方が良いのでしょうが、27 や 30 だと端末の入れ替え時にパンクしますので、可能な限りネットマスクは 24(もしくは 25)あたりにしておく方が良いと思います。24 だと多すぎるというのも最もですが、セキュリティ管理をしっかりすれば危険性は他と遜色ありません。
(オマケ)固定 IP(静的アドレス)の割り当て手順
Android の場合
図は英語になっていますが、日本語環境でも同様です。図のような手順で「設定」メニューをたどります。
プロキシはなしに設定しています。必要な環境の方は、中身を埋めます。
IP 設定の項目は「Static:固定、静的」を選び、図のような「192.168.」から始めるアドレスの場合は、IP アドレスはルーターのアドレスの末尾の数字だけを、他の端末と重ならない数字ら変更して、入力確定します。
ゲートウェイというのは、多くの場合はルーターの(プライベート)アドレスになります。なお、上の〔解決策2〕を行う場合は、必ずしもそうなりません。プレフィックス(Prefix length、ネットマスク)は 24 にしました。人によりけりですが、25 や 26 にすることもあり得ます。
DNS の欄ですが、例では違った IP アドレスを入れていますが、プロバイダから割り当てられた DNS のアドレスが不明な場合は 8.8.8.8 と 8.8.4.4 を入れてください。
Apple iPhone の場合
iPhone の場合も「設定」から、現在接続に成功している Wi-Fi のアクセスポイントをタップしていきます。「i」をタップして、詳細設定します。
IP アドレス設定を自動(Automatic)になっているところを、手動(Manual)にします。
後は手動で IP アドレスを入力していくだけですが、今回の例では iPhone は直近の取得アドレスが残っているので、そのままマネして入力しても問題ありません。サブネット・マスクについては 192.168 から始まるアドレスの場合は、255.255.255.0 としておくのが無難です。これは上の 24 ビットマスクと同じ意味です。
ルーターのアドレスは、間違いなく入力してください。DNS についても上の Android と同様に、プロバイダ提供のものがわからないケースでは 8.8.8.8 あたりで試してみましょう(後から、プロバイダ提供の DNS サーバーのアドレスを調べて入力してもかまいません)。
Windows の場合
Windos10 の場合はタスクバーのインターネットアクセスのアイコンをクリックして、現在接続しているアクセスポイントのプロパティを開きます。
図のように入力すると、固定 IP が設定されます。
- 未経験からエンジニアを目指すTechAcademy Pro(エンジニア転職保証コース) で抜け駆け?
- Webマーケティングコース にとりあえず参加