「XDMCP」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(3人の利用者による、間の9版が非表示)
1行目: 1行目:
  +
[[Category:リモートデスクトップ]]
 
[[Category:X サーバー]]
 
[[Category:X サーバー]]
 
[[en:Xdmcp]]
 
[[en:Xdmcp]]
  +
[[w:X display manager#X Display Manager Control Protocol|Wikipedia]]: から
このページでは "X Display Manager Control Protocol" (XDMCP) を使ってリモートセッションを実現する方法を説明します。パラメータについては GDM のドキュメントを見て下さい: [http://library.gnome.org/admin/gdm/3.6/configuration.html.en#xdmcpsection]。
 
  +
: X ディスプレイマネージャーコントロールプロトコル (XDMCP) は UDP ポート 177 を使用します。X サーバーは、クエリパケットを送信してディスプレイマネージャーにセッションを開始するように要求します。ディスプレイマネージャーがその X サーバーへのアクセスを許可すると、ディスプレイマネージャーは Willing パケットを X サーバーに送り返すことで応答します。
  +
  +
これにより、X セッションをリモートで開くことができます。
  +
  +
{{Warning|XDMCP は、Telnet と同様に、暗号化されていない認証を実行します。スヌーピングが可能である場合、システムは攻撃に対して脆弱になります。デフォルトでは無効になっており、X トラフィックには ssh トンネルを使用することが推奨されます。}}
   
 
== グラフィカルログインの設定 ==
 
== グラフィカルログインの設定 ==
27行目: 33行目:
 
192.168.0.10 はサーバーの IP アドレスに置き換えて下さい。
 
192.168.0.10 はサーバーの IP アドレスに置き換えて下さい。
   
設定後 X サーバーと xdm デーモンを再起動してください。
+
次に {{ic|xdm.service}} [[再起動]] してさい。
   
 
=== GDM ===
 
=== GDM ===
   
  +
設定ファイルで XDMCP を有効にします。
{{ic|/etc/gdm/custom.conf}} を編集して以下を記述:
 
   
  +
{{hc|/etc/gdm/custom.conf|2=
[xdmcp]
 
  +
[xdmcp]
Enable=true
 
  +
Enable=true
Port=177
 
  +
Port=177
 
  +
}}
そして Gnome Display Manager を再起動:
 
 
# systemctl restart gdm
 
 
inittab を使っている場合、root で他の tty にログインして以下を実行:
 
 
# telinit 3
 
# telinit 5 && exit
 
 
=== KDM ===
 
 
Xdmcp 機能のサポートはあまり安定していません。LightDM を使うほうが簡単です。
 
 
kdmrc ({{ic|/opt/kde/share/config/kdm/kdmrc}} [KDE 3x] または {{ic|/usr/share/config/kdm/kdmrc}} [KDE 4x]) を編集して以下のように記述してください:
 
 
[Xdmcp]
 
Enable=true
 
 
変更を適用するには X サーバーを再起動する必要があります:
 
   
  +
次に {{ic|gdm.service}} を [[再起動]] して下さい。
# systemctl restart kdm
 
   
 
=== LightDM ===
 
=== LightDM ===
   
  +
設定ファイルで XDMCP サーバーを有効にします。
{{ic|/etc/lightdm/lightdm.conf}} を編集して以下を記述:
 
   
  +
{{hc|/etc/lightdm/lightdm.conf|2=
[XDMCPServer]
 
  +
[XDMCPServer]
enabled=true
 
  +
enabled=true
port=177
 
  +
port=177
  +
}}
   
  +
ヘッドレスシステムでは、LightDM がバックグラウンドで実行できるように、1 つのシートの自動起動を無効にします。
そして LightDM を再起動:
 
   
  +
[LightDM]
# systemctl restart lightdm
 
  +
start-default-seat=false
   
  +
次に {{ic|lightdm.service}} を [[再起動]] して下さい。
=== SLiM ===
 
 
SLiM は Xdmcp をサポートしていません。
 
   
 
== LAN 上のリモートマシンから X にアクセス ==
 
== LAN 上のリモートマシンから X にアクセス ==
  +
 
以下のコマンドでネットワーク上の 192.168.0.10 のコンピュータのログインマネージャにアクセスすることができます。TCP と UDP ストリームが開きます。SSH 接続でログインマネージャにアクセスすることはできません。
 
以下のコマンドでネットワーク上の 192.168.0.10 のコンピュータのログインマネージャにアクセスすることができます。TCP と UDP ストリームが開きます。SSH 接続でログインマネージャにアクセスすることはできません。
   
93行目: 83行目:
 
上述のように XDMCP のアクセスを許可したら、{{ic|/etc/X11/xdm/Xservers}} を編集して以下をコメントアウト:
 
上述のように XDMCP のアクセスを許可したら、{{ic|/etc/X11/xdm/Xservers}} を編集して以下をコメントアウト:
 
#:0 local /usr/bin/X :0
 
#:0 local /usr/bin/X :0
root で XDM を起動して下さい。例: {{ic|xdm -config /etc/X11/xdm/archlinux/xdm-config}}
+
root で XDM を起動して下さい。例: {{ic|xdm -config /etc/X11/xdm/archlinux/xdm-config}}
   
 
==シンクライアントの設定==
 
==シンクライアントの設定==
105行目: 95行目:
   
 
=== Session declined: Maximum Number of Sessions Reached ===
 
=== Session declined: Maximum Number of Sessions Reached ===
  +
{{ic|/etc/gdm/custom.conf}} を編集して最大セッション数を追加してください:
 
  +
{{ic|/etc/gdm/custom.conf}} を編集して {{ic|MaxSessions}} を追加してください:
  +
 
[xdmcp]
 
[xdmcp]
 
Enable=true
 
Enable=true
'''MaxSessions=2'''
+
MaxSessions=''X''
 
=== ログイン画面や GNOME にチラつきが発生する ===
 
ログイン画面が何度も作成されて反応しない場合、リモートマシンの GNOME Shell にアクセスしようとしています。ワイヤレスで接続されているなど、ネットワークの速度が原因です。GNOME Shell を無効化/アンインストールしてください:
 
# pacman -R gnome-shell
 

2023年10月20日 (金) 11:40時点における最新版

Wikipedia: から

X ディスプレイマネージャーコントロールプロトコル (XDMCP) は UDP ポート 177 を使用します。X サーバーは、クエリパケットを送信してディスプレイマネージャーにセッションを開始するように要求します。ディスプレイマネージャーがその X サーバーへのアクセスを許可すると、ディスプレイマネージャーは Willing パケットを X サーバーに送り返すことで応答します。

これにより、X セッションをリモートで開くことができます。

警告: XDMCP は、Telnet と同様に、暗号化されていない認証を実行します。スヌーピングが可能である場合、システムは攻撃に対して脆弱になります。デフォルトでは無効になっており、X トラフィックには ssh トンネルを使用することが推奨されます。

グラフィカルログインの設定

XDM

/etc/X11/xdm/xdm-config を開いて以下をコメントアウトしてください:

DisplayManager.requestPort:    0

以下のようになります:

!DisplayManager.requestPort:    0

次に /etc/X11/xdm/Xaccess を編集して全てのホストでログインウィンドウを表示できるようにしてください。以下のようになっている行を見て下さい:

*             #any host can get a login window

行頭のハッシュ記号 '#' を削除してください。

ネットワークインターフェイスが複数ある場合は以下のように行を追加します:

LISTEN 192.168.0.10

192.168.0.10 はサーバーの IP アドレスに置き換えて下さい。

次に xdm.service再起動 して下さい。

GDM

設定ファイルで XDMCP を有効にします。

/etc/gdm/custom.conf
[xdmcp]
Enable=true
Port=177

次に gdm.service再起動 して下さい。

LightDM

設定ファイルで XDMCP サーバーを有効にします。

/etc/lightdm/lightdm.conf
[XDMCPServer]
enabled=true
port=177

ヘッドレスシステムでは、LightDM がバックグラウンドで実行できるように、1 つのシートの自動起動を無効にします。

[LightDM]
start-default-seat=false

次に lightdm.service再起動 して下さい。

LAN 上のリモートマシンから X にアクセス

以下のコマンドでネットワーク上の 192.168.0.10 のコンピュータのログインマネージャにアクセスすることができます。TCP と UDP ストリームが開きます。SSH 接続でログインマネージャにアクセスすることはできません。

# Xnest -query 192.168.0.10 -geometry 1280x1024 :1

もしくは、Xnest で描画が更新されない問題が起こる場合、Xephyr を使用:

# Xephyr -query 192.168.0.10 -screen 1280x1024 -br -reset -terminate :1

もしくは、ランレベル3の場合:

# X -query your_server_ip

Xserver がモニターを認識して適切な解像度が設定されるはずです。

ノート: リモートホストから XDMCP Direct/Query と Broadcast 接続を有効にすることでリモートホストで XDM を使ってローカル X サーバーを起動しなくてもよくなります。

上述のように XDMCP のアクセスを許可したら、/etc/X11/xdm/Xservers を編集して以下をコメントアウト:

#:0 local /usr/bin/X :0

root で XDM を起動して下さい。例: xdm -config /etc/X11/xdm/archlinux/xdm-config

シンクライアントの設定

dhcp と tftp サーバーを設定する必要があります。Dnsmasq が両方のサーバーの働きをします。ネットワークブートイメージは thinstation プロジェクトを見て下さい。ネットワークカードが PXE をサポートしていない場合、Etherboot を試すことができます。

GUI ベースのクライアント

トラブルシューティング

Session declined: Maximum Number of Sessions Reached

/etc/gdm/custom.conf を編集して MaxSessions を追加してください:

[xdmcp]
Enable=true
MaxSessions=X