「XDMCP」の版間の差分
Blackteahamburger (トーク | 投稿記録) |
|||
(同じ利用者による、間の7版が非表示) | |||
2行目: | 2行目: | ||
[[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 トンネルを使用することが推奨されます。}} |
||
== グラフィカルログインの設定 == |
== グラフィカルログインの設定 == |
||
28行目: | 33行目: | ||
192.168.0.10 はサーバーの IP アドレスに置き換えて下さい。 |
192.168.0.10 はサーバーの IP アドレスに置き換えて下さい。 |
||
− | + | 次に {{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 接続でログインマネージャにアクセスすることはできません。 |
||
94行目: | 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}} |
==シンクライアントの設定== |
==シンクライアントの設定== |
||
106行目: | 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=''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 セッションをリモートで開くことができます。
目次
グラフィカルログインの設定
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 のアクセスを許可したら、/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 ベースのクライアント
- remmina
- Xming for Windows
トラブルシューティング
Session declined: Maximum Number of Sessions Reached
/etc/gdm/custom.conf
を編集して MaxSessions
を追加してください:
[xdmcp] Enable=true MaxSessions=X