Memahami X Windows DISPLAY variabel lingkungan saat melakukan tunneling

9

Saya ingin ssh ke server jauh, keduanya berjalan CentOSdengan X11Forwardingdiaktifkan.

Namun aplikasi X tidak dapat berjalan dengan baik di salah satu dari mereka - pada host B berfungsi dengan baik. Tetapi pada host AI mendapatkan kesalahan "tidak dapat terhubung ke tampilan", setiap kali saya meluncurkan aplikasi X.

Setelah memeriksa DISPLAYvariabel lingkungan pada host A yang saya pikir terkait dengan X window, saya menemukan nilainya localhost:10.0. Mengikuti tips di sini , saya berubah DISPLAY=0:10.0dan berfungsi. Namun, DISPLAYpada host B masih localhost:10.0dan berfungsi dengan baik.

Pertanyaan saya adalah, apa yang DISPLAYdiwakili oleh nilai tersebut ? Apa perbedaan antara localhost:10.0dan 0:10.0?

Dikatakan bahwa localhostmengidentifikasi nama host. Lalu host mana yang diidentifikasi, server (host A / B) yang menjalankan aplikasi X saya atau klien lokal saya di mana saya ingin jendela X ditampilkan?

Petunjuk atau petunjuk untuk dokumentasi akan dihargai.

Summer_More_More_Tea
sumber

Jawaban:

5

Sebagian dari jawabannya sebenarnya dapat ditemukan di sini: /programming/746119/how-do-you-use-display-specifications

Variabel DISPLAY pada dasarnya adalah 3 komponen:

<host>:<display>[.<screen>]

Sejauh localhost alias 127.0.0.1 vs 0.0.0.0 alias 0 yang bersangkutan, Anda dapat melihat posting ini:

/server/78048/whats-the-difference-between-ip-address-0-0-0-0-0-and-127-0-0-1

Yang menjelaskan perbedaannya.

Dalam kasus khusus Anda 0.0.0.0:10.0.0 dan localhost: 10.0 akan memiliki efek yang sama tetapi pada dasarnya berarti:

  1. sambungkan ke antarmuka apa pun yang memiliki pengaturan tampilan 10
  2. terhubung pada lo0 ke pendengar tampilan 10.

Praktis tidak akan ada perbedaan karena dalam kasus pertama pemindaian semua antarmuka akan dimulai dengan lo0, yang biasanya merupakan antarmuka pertama dalam daftar.

Karlson
sumber
1
Terima kasih pada awalnya. Saya menemukan masalah sebenarnya, ikuti tips Anda. Masalah sebenarnya adalah yang localhostdiikat 192.168.1.200(beberapa ip spesifik seperti itu. Saya tidak ingin mengekspos konfigurasi asli saya.) Pada host A. Ini juga berfungsi ketika ekspor DISPLAY=127.0.0.1:10.0. Apakah penerusan X hanya berfungsi pada antarmuka loopback?
Summer_More_More_Tea
localhostadalah nama khusus yang berikatan dengan antarmuka loopback (lo0) di Linux dan tidak boleh terikat dengan alamat IP asli. Anda benar-benar dapat memeriksa ikatan dengan menjalankan sudo netstat -apn | grep 6010SSH Anda harus mendengarkan pada port itu untuk koneksi tampilan. Sejauh yang saya tahu itu 127.0.0.1saja.
Karlson