I want to ssh to remote servers, both running CentOS
with X11Forwarding
enabled.
However the X application cannot run properly on one of them – on host B it works fine. But on host A I get the error "couldn't connect to display", each time I launch X application.
After checking the DISPLAY
environment variable on host A which I think is related to X window, I found its value localhost:10.0
. Following the tips here, I change DISPLAY=0:10.0
and it works. However, DISPLAY
on host B is still localhost:10.0
and works fine.
My question is, what does the value in DISPLAY
represent? What is the difference between localhost:10.0
and 0:10.0
?
It is said that localhost
identifies a host name. Then which host does it identify, the server(host A/B) on which my X application is running or my local client where I want the X window to display?
Any hints or pointers to documentation would be appreciated.
Best Answer
Part of the answer can actually be found here: https://stackoverflow.com/questions/746119/how-do-you-use-display-specifications
DISPLAY variable is basically 3 components:
As far as localhost aka 127.0.0.1 vs. 0.0.0.0 aka 0 is concerned you can take a look at this post:
https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1
Which explains the difference.
In your particular case 0.0.0.0:10.0 and localhost:10.0 would have the same effect but basically mean:
Practically there would be no difference since in the first case the scan of all interfaces would start with lo0, which normally is the first interface in the list.