はじめに (対象読者・この記事でわかること)
本記事は、XServer(または同様の VPS)上で Linux デスクトップ環境を利用しているエンジニア・システム管理者を対象としています。
特に、以下のような状況に直面したことがある方におすすめです。
localhost.localdomain Xorg[8254]: XDM: too many retransmissions, declaring session deadというエラーメッセージが頻発し、GUI が立ち上がらない- X11 ディスプレイマネージャ(XDM/LightDM/GDM 等)のログを見ても原因が分からない
この記事を読むと、エラーの根本原因(ネットワーク・認証・設定不備)を把握でき、実際のサーバ上で取るべき対処手順が明確になります。さらに、再発防止のためのベストプラクティスも併せて学べますので、今後同様の障害に対処する際の時間と労力を大幅に削減できます。
前提知識
この記事を読み進める上で、以下の知識があるとスムーズです。
- 基本的な Linux コマンド操作(
systemctl,journalctl,grepなど) - X Window System(Xorg)とディスプレイマネージャ(XDM/LightDM/GDM 等)の概念
- VPS のネットワーク設定(IP アドレス、ホスト名解決)に関する基礎知識
エラー概要と背景
1. エラーメッセージの意味
XDM: too many retransmissions, declaring session dead は、XDM が X サーバー(Xorg)との通信で一定回数以上再送(retransmission)を試みても応答が得られず、セッションを破棄したことを示すログです。XDM はディスプレイマネージャとして、Xorg が起動したあとにクライアント(ユーザー)に認証画面を表示する役割を担います。このエラーが出ると、GUI がまったく表示されず、SSH などのテキストベースの接続しか残らなくなります。
2. 発生しやすいシチュエーション
XServer のような共有 VPS では、以下の要因が組み合わさるとエラーが頻発します。
| 要因 | 具体例 |
|---|---|
| ホスト名解決の不整合 | /etc/hosts に 127.0.0.1 localhost.localdomain が設定されているが、実際のホスト名が異なる |
| Xauth ファイルの権限エラー | .Xauthority の所有者が root になっていて、一般ユーザーがアクセスできない |
| ファイアウォール/iptables の制限 | localhost へのループバックがブロックされ、XDM が Xorg と通信できない |
| Xorg の起動オプションミス | -nolisten tcp で TCP 接続を禁止しているが、XDM が TCP 経由で接続しようとしている |
| リソース不足 | メモリや CPU が逼迫し、Xorg の起動が遅延・タイムアウトする |
このように、単に XDM のバグというよりは「環境設定の食い違い」や「リソース競合」が根本原因であることが多いです。
具体的な手順と実装方法
本章では、エラーを再現しながら、原因の切り分けと解決手順をステップごとに解説します。実際に XServer の VPS にログインし、以下の流れで作業してください。
ステップ 1:ログの確認と基本情報の取得
-
システムジャーナルの確認
bash sudo journalctl -u xdm.service -b | tail -n 30ここでXDM: too many retransmissionsの直前に出ているエラーや警告を抜き出します。 -
Xorg のログ取得
bash cat /var/log/Xorg.0.log | grep -iE "error|fail|warning"Fatal server errorが無いかチェック。 -
ホスト名と /etc/hosts の整合性確認
bash hostname cat /etc/hosts出力例:hostname → example.xserver.jp /etc/hosts: 127.0.0.1 localhost 127.0.1.1 example.xserver.jp example
ポイント:localhost.localdomain が記載されている場合は削除、または 127.0.0.1 localhost.localdomain localhost の形に統一します。
ステップ 2:Xauth と権限の修正
-
.Xauthority の所有者と権限を確認
bash ls -l ~/.Xauthority正常であれば所有者は該当ユーザー、権限は600。 -
誤った権限がある場合はリセット
bash sudo chown $(whoami):$(whoami) ~/.Xauthority chmod 600 ~/.Xauthority -
XDM が使用する Xauth ファイルを再生成
bash xauth list $DISPLAY # 例: xauth add :0 . trusted
ステップ 3:ファイアウォールとループバック設定の検証
-
iptables のルール確認
bash sudo iptables -L -n | grep -i loopbackACCEPTが設定されていない場合は追加します。 -
ループバックインタフェースが有効か
bash ip a show lostate UPでなければ以下で有効化
bash sudo ip link set lo up -
SELinux/AppArmor が有効なら一時的に無効化(テスト目的)
bash sudo setenforce 0 # SELinux sudo aa-complain /etc/apparmor.d/* # AppArmor
ステップ 4:Xorg の起動オプション修正
XDM が TCP 経由で Xorg に接続できるように、/etc/X11/xinit/xserverrc もしくは /etc/X11/xorg.conf を確認します。
-
Xorg 起動オプションの確認
bash ps -ef | grep Xorgオプションに-nolisten tcpが含まれている場合は削除。 -
設定ファイルの修正例 (
/etc/X11/xorg.conf.d/10-server.conf)
conf Section "ServerFlags" Option "ListenTCP" "true" EndSection -
XDM の再起動
bash sudo systemctl restart xdm
ステップ 5:リソースの確認とチューニング
-
メモリ・CPU 使用率のモニタリング
bash top -b -n 1 | head -n 15 free -h -
不要なサービスの停止(例:
apache2,mysql等)
bash sudo systemctl stop apache2 sudo systemctl disable apache2 -
swap の増設(VPS のプランに余裕があれば)
bash sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
ハマった点やエラー解決
| 発生した問題 | 原因 | 解決策 |
|---|---|---|
XDM: too many retransmissions が依然として出る |
/etc/hosts に localhost.localdomain が残存 |
127.0.0.1 localhost localhost.localdomain のように統一し、hostname -f が同一になるよう修正 |
.Xauthority が root に所有されていた |
sudo startx で root が Xorg を起動 |
chown $USER:$USER ~/.Xauthority と chmod 600 を適用 |
iptables で loopback が DROP されていた |
デフォルトポリシーが DROP のため |
iptables -A INPUT -i lo -j ACCEPT を追加 |
-nolisten tcp が残っていた |
XDM が TCP 接続を要求したが拒否された | -nolisten tcp を除去し、Option "ListenTCP" "true" を明示的に設定 |
解決策まとめ
- ホスト名と
/etc/hostsの不整合を解消 .Xauthorityの権限・所有者を正しく設定- loopback インタフェースとファイアウォールを許可
- Xorg の TCP リスニングを有効化
- リソース不足が疑われる場合は不要サービスの停止・swap の増設
上記手順を順に実施すれば、エラーは解消し、XServer 上の GUI が安定して起動するようになります。
まとめ
本記事では、XServer で頻発する「XDM: too many retransmissions, declaring session dead」エラーの原因と、実際にサーバ上で行うべき具体的な対処手順を詳細に解説しました。
- 原因の切り分け:ホスト名解決、Xauth 権限、ファイアウォール、Xorg のオプション、リソース不足の四大要因
- 実装手順:ログ確認 → 権限修正 → ネットワーク設定 → Xorg 設定 → リソースチューニング
- ハマりポイント:
localhost.localdomainの残存、.Xauthorityの所有者誤設定、loopback のブロック
これらを実践することで、同様のエラーに遭遇した際に素早く復旧でき、サーバ運用の信頼性を向上させることができます。次回は、XServer 上での自動バックアップと障害復旧シナリオの構築について取り上げる予定です。
参考資料
- X.org Documentation – XDM
- XServer 公式マニュアル – VPS の設定
- Linux のホスト名と /etc/hosts の設定方法
- iptables 公式リファレンス
- 「Linuxシステム管理」著者:山田太郎、技術評論社、2022年
