Ubuntu 16.04 LTS で Wi-Fi 接続が「安定しない」
標題の語句で検索をかけると山ほど記事が出てきます。皆さん困っているようです。私もです。
結論
Realtek(の一部)のアダプタだと安定しない*1。
やったこと
DNS を Google のものに変えたり、各種の設定をいじったりはしました。しかしこういうことはたいてい根本的な解決にはならないものです(今回もそうでした)。そして設定をグチャグチャにしたことを後悔するものです。
USBアダプタを経由しての有線LANはド安定です。
判明した事実
時間的周期が同じだとすれば電源系なども考えられるのですが、ときにすぐ切断されたり、ときに結構長い間保ったりと、周期性は見いだせませんでした。
つながらなくなったときは、ローカルマシンにpingも通りません。IPアドレスは取得できている(少なくともそう「見える」)のですが、そこからどこにもつなげられない状態かと思います。
つながらなくなっても一定時間(不定)放置すると、復活します。
詳しく検証すると丸一日以上コースなので断念です。理由が判明したとしても、いわゆる「おま環」だとしたら解決も面倒でしょう。
ではどうするか
つながらなくなったら以下のコマンドを叩く。ただしもちろん、根本的な解決方法ではない。
$ sudo service network-manager restart
環境
- ルータ
- ASUS RT-AC68U
- マシン
- ASUS E202SA(日本では R206SA や R206S とも)
- 周波数帯
- 2.4GHz
そして本質的解決へ
手元に余っていたバッファローの USB の 無線LAN アダプタ(後掲)を使って接続したら切断されなくなりました。4時間以上接続維持ができている(FRESH! の ウェザーニュース で確認しています)ので、たぶんこれなんじゃないでしょうか*2。
そのアダプタはこれ
アダプタ情報
上がダメだった方(内蔵の Realtek)で、下が OK だった方(BUFFALO の USB アダプタ)です。BUFFALO の方は OS 上ではMediaTek 802.11n WLAN
とも表示されています。
$ sudo lshw -class network *-network 詳細: 無線インターフェース 製品: RTL8821AE 802.11ac PCIe Wireless Network Adapter ベンダー: Realtek Semiconductor Co., Ltd. 物理ID: 0 バス情報: pci@0000:01:00.0 論理名: wlp1s0 バージョン: 00 シリアル: XX:XX:XX:XX:XX:XX 幅: 64 bits クロック: 33MHz 性能: pm msi pciexpress bus_master cap_list __________________ physical wireless 設定: broadcast=yes driver=rtl8821ae driverversion=4.4.0-87-generic firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11abgn リソース: irq:312 IOポート:e000(サイズ=256) メモリー:81200000-81203fff *-network 詳細: 無線インターフェース 物理ID: 1 バス情報: usb@1:2 論理名: wlx7cdd90bdc0bf シリアル: XX:XX:XX:XX:XX:XX 性能: __________________ physical wireless 設定: broadcast=yes driver=mt7601u driverversion=4.4.0-87-generic firmware=N/A ip=XXX.XXX.XXX.XXX link=yes multicast=yes wireless=IEEE 802.11bgn