ここしばらくVPN接続して接続先へリモートデスクトップをすると頻繁にフリーズしてイライラマックスでした。それが解決した話をしたいと思います。
解決方法
私の環境だけの可能性もありますが、Windows 10 20H2へアップデートするだけで解決します。
結局改善が見られず試行錯誤の結果、VPNルータの適切なMTUの指定が必要でした。
結局解決はしていませんが、Win10 >(VPN)>Win10だとフリーズしにくいことが分かりました。フリーズするのはリモートデスクトップ先が2012R2の時です。2016や2019では検証していません。
ようやく解決しました。いろいろ試行錯誤はしていましたが、実はネットワークの一部が100MBase-Tだったのです。1000MBase-Tに変えたところフリーズがなくなりました。
試行錯誤した内容もそれなりに意味はあったのかと思いますので、記録として残しておきます。
試行錯誤の末
このリモートデスクトップの問題は、1903から出ている現象のようでして、UDPを無効にしたり、WDDMグラフィックディスプレイドライバ無効にしたりすることで解決出来るようでしたが、私の環境では改善は観られませんでした。
そこで一縷の望みをかけてWindows 10 20H2へアップデートしてみたところ、残念ながら改善しません。そこで上記の「無効」にしていたものをあえて「有効」に設定してみたところ以前より反応がよくなったんじゃないかと思うくらいスムーズにリモートデスクトップが動作するようになりました。
ですが、何度か試すと以前と変わらず固まったり、切断されたりしました。
さらに原因を調べてみた
リモートデスクトップ接続が不安定なのはこの環境です。
接続元(Win10) >VPN> 接続先(2012R2) ※固まる
OSが原因ではないかと接続元や先を変えてみました。
接続元(Win7) >VPN> 接続先(2012R2) ※やや固まる
接続元(Win10) >VPN> 接続先(Win10) ※ 固まらない
不思議なことに接続先がWindows 10から2012R2へさらにリモートデスクトップ接続すると固まらないのです。そもそもVPN接続の設定がおかしいのではないかと調べてみると、怪しいのがMTUの設定。
接続元からpingを打ってみたところパケットサイズ 1372がマックスのようです。使ったコマンドはこちら
> ping -f -l 1372 -n 1 "接続先IPアドレス" ***.***.***.***からの応答: バイト数 =68 (1372 を送信) 時間 =32ms TTL=117
これからMTUのサイズを算出します。
1372 + 8(ICMPヘッダ) + 20(IPヘッダ) = 1400
接続しているWindows 10のMTUはどうなっているのでしょう。
> netsh interface ipv4 show interface このコマンドで接続しているインターフェイスのMTUを調べられます。1400になっていました。
接続先のVPNルータの設定を見てみました。
MTU 1500 ……
さっそく1400に設定してみたところ固まることはなくなったようです。原因はMTUかなぁ。
リモートデスクトップを重ねると固まった
リモートデスクトップ接続を重ねると固まる現象が出る場合は接続元のグループポリシーの「リモートデスクトップ接続にWDDMグラフィックディスプレイドライバーを使用する」を無効にします。設定後は端末を再起動します。
場所は、コンピュータの構成 > 管理用テンプレート > Windowsコンポーネント > リモートデスクトップサービス > リモートデスクトップセッションホスト > リモートセッション環境 にあります。
追加で「リモート ディスクトップ接続で H.264/AVC 444 グラフィック モードが優先する」と「リモート デスクトップ接続用に H.264/AVC ハードウェア エンコードを構成する」も無効にしたら調子がよくなりました。
コメント
あれー、結局かたまるぞ……回線速度が原因だったのかなぁ。Windows 7だと問題ないからなぁ。
MTUを調整してから固まることはなくなったけど、VPNの一時的な切断は治らない。VPN先へpingをすると切れることもあるし、また別な問題なのかなぁ。