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
Xnest
Xephyr
Xvfb
XGGI
See also: