X-Server (XDMCP)

Setting up an X-Window service (deamon)

Before anything, remember that an X-Window terminal is also a service (X-Server). Therefore, you must be sure that both terminal and remote host can reach each other. That is to say that firewalls are set up on both machines (remote host and terminal) to allow required XDMCP ports, and either:

    • Both machines are on the same network.

    • Are on different networks, but gateways (routers, NAT, etc.) are set up to allow communications to be initiated on both ends, and each machine IP address can be reached from the other network.

More on the X Window System at Wikipedia.

Set up your network (XDMCP ports)

You should set up your network first. If you don't, you might have the correct XDMCP service configuration, and you'll be trying to find where it's failing not realizing it's a network configuration problem.

Testing IP reach

First, test if both machines (remote host and X-terminal) can reach each other.

Ping the remote host IP from the X-terminal (ping aaa.bbb.ccc.ddd), and ping the X-terminal from the remote host.

Set up both firewalls

Open the following ports at the firewall on both machines:

This is what's mostly used. But IANA has listed a somewhat different set of ports:

xdmcp 177/tcp X Display Manager Control Protocol

xdmcp 177/udp X Display Manager Control Protocol

x11 6000-6063/tcp X Window System

x11 6000-6063/udp X Window System

font-service 7100/tcp X Font Service

font-service 7100/udp X Font Service

Source: http://www.iana.org/assignments/port-numbers

OS dependable configurations

The following configurations are OS dependable.

Yet, they should work on most Linux distributions that use the X11 implementation. These include Red Hat 5.4, CentOS 5.4, and recent Fedora releases (>=6?).

Setup the GDM Login Manager

This tells GDM to use XDMCP service.

Enable XDMCP at the GDM

Go to /etc/gdm and edit the custom.conf file.

Add to the [security] section the following:

  • DisallowTCP=false

  • AllowRemoteRoot=true

Add to the [xdmcp] section the following:

  • Enable=true

Save the changes.

Should look like this:

[security]

DisallowTCP=false

AllowRemoteRoot=true

[xdmcp]

Enable=true

Or:

[daemon]

KillInitClients=false

[security]

DisallowTCP=false

AllowRemoteRoot=true

[xdmcp]

Enable=true

[gui]

[greeter]

Browser=true

IncludeAll=true

[chooser]

[debug]

[servers]

Check attached file below.

Restart the X services

Beware that you should do this over a text console, as the X service will be brought down. Log as root at the first console, for example (<CTRL><ALT><F1>).

Execute the command:

  • /sbin/init 3

And then the command:

  • /sbin/init 5

The first will bring the X down, and the second will bring it up again.

The X console should be on console #7 (<CTRL><ALT><F7>).

Done

Should be up and running.

Free X-terminals

Free software for X:

Windows

Linux

See also: