Làm cách nào để khiến X.org lắng nghe các kết nối từ xa trên cổng 6000?


17

Đây là trên máy tính để bàn 64 bit Ubuntu 10.10 (Maverick Meerkat).

Tôi muốn làm cho máy chủ X của tôi lắng nghe các kết nối từ xa từ các máy khách trong các máy khác trên mạng cục bộ. Tôi biết ssh -Xvà đó không phải là điều tôi muốn. Tôi mơ hồ nhớ thay đổi một cái gì đó giống như TCPListentừ nođể yes, nhưng tôi không nhớ nơi sự thay đổi này sẽ được áp dụng.

Tôi quan tâm đến phương thức GUI hoặc phương pháp CLI.

Chỉnh sửa PS /etc/X11/xinit/xserverrcđể loại bỏ -nolisten tcptùy chọn và khởi động lại không hoạt động.


Gợi ý Có lẽ đáng để vô hiệu hóa tường lửa (iptables) trong khi bạn đang cố gắng để mọi thứ diễn ra.

@ user243114 gợi ý trở lại không sử dụng, nhưng nhờ anyway :)
ΤΖΩΤΖΙΟΥ

Câu trả lời:


16

(Ở đây có một bản sao gần như nguyên văn của một câu trả lời tự trả lời từ một câu hỏi giống hệt nhau trên serverfault mà tôi đã quên; Askubfox chưa được tạo).

Dựa trên thông tin tìm thấy trong trang này về việc bật XDCMP và tệp /etc/gdm/gdm.schemas, tôi đã quản lý để tạo một /etc/gdm/custom.conftệp:

# /etc/gdm/custom.conf
[xdmcp]

[chooser]

[security]
DisallowTCP=false

[debug]

Hãy cẩn thận với trường hợp thư: nó sẽ không hoạt động, nếu bạn viết "disallowTCP = false" ... Tôi cũng đã thay đổi tệp / etc / X11 / xinit / xserverrc thành:

exec /usr/bin/X11/X

tức là tôi đã loại bỏ các -nolisten tcptùy chọn để thực thi X. Tôi không biết nếu tôi cần. Bạn có thể muốn thử tránh chỉnh sửa này.

Nếu bạn chỉ thay đổi tệp xserverrc, tuy nhiên X sẽ bắt đầu bằng "-nolisten TCP".

Sau đó, tất cả những gì cần thiết là khởi động lại quá trình gdm:

sudo service gdm restart

Bạn có thể xác minh thành công là:

tzot@tzot-laptop:/etc/X11
$ netstat -an | grep -F 6000
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN
tcp6       0      0 :::6000                 :::*                    LISTEN

Cập nhật

Sau khi nâng cấp lên 12.04, tôi cũng gặp vấn đề tương tự. Lần này, thủ phạm là lightdm mà hệ thống sử dụng. Các tập tin cần được cập nhật là /etc/lightdm/lightdm.confvà bổ sung cần thiết là một phần xserver-allow-tcp=truetrong [SeatDefaults]phần.

Và sau đó, tôi cũng tìm thấy câu trả lời đó . :)

Tóm tắc

Vì vậy, trong 10.10, điều này vẫn hoạt động: tạo /etc/gdm/custom.confvới nội dung như được chỉ định ở trên và khởi động lại gdm.


1
Đối với Ubuntu 14.04, điều duy nhất cần có là có một tệp như /usr/share/lightdm/lightdm.conf.d/100-custom.confchứa `[SeatDefaults] server-allow-tcp = true`
Nitz

@Nitz, lưu ý rằng xserver-allow-tcp=truebạn đang thiếu 'x' trong bình luận của bạn. Bạn có thể xóa bình luận hiện tại của bạn và viết lại nó. Mặc dù câu trả lời bao gồm giải pháp đó ngay bây giờ.
Alexis Wilke

1
Tôi đã nhận xét về câu hỏi ban đầu của bạn về lỗi máy chủ : bây giờ Xorg theo mặc định không nghe TCP. Người ta cần thêm -listen tcpđể kích hoạt nó, nhưng gdm3dường như không cung cấp khả năng này.
L. Levrel

4

Câu trả lời này có liên quan đến Kubfox 17.04 và tôi thêm nó, bởi vì không có câu trả lời nào khác (liên quan đến gdmhoặc lightdm) giúp tôi. Trong trường hợp của tôi sddmđã chạy. Để kiểm tra điều này, hãy chạy ví dụ

ps -eal | grep sddm

Nếu nó đang chạy, các quy trình sddmsddm-helperđược hiển thị. Trong trường hợp này, thêm một tệp cấu hình /etc/sddm.confcó nội dung

[XDisplay]
ServerArguments=-listen tcp

Sau khi tạo tập tin này, khởi động lại hệ thống của bạn (có thể sddmkhởi động lại là đủ). Hậu quả là

PS ax | grep sddm 

hiển thị Xorgtùy chọn mong muốn -listen tcpvà X Server đã sẵn sàng cho các kết nối đến (đừng quên thêm máy chủ từ xa xhost).


1
Lưu ý rằng kể từ SDDM 0.14.0 (xuất xưởng với Kubfox 17.10 Artful), [XDisplay]phần này đã được đổi tên [X11]. Điều này gây ra nhiều nhầm lẫn khi tôi đang cố gắng giúp đỡ đồng nghiệp của mình cho đến khi tôi chạy một man 5 sddm.confmáy tương ứng 16.04 và 17.10 của chúng tôi và nhận thấy sự khác biệt!
keithzg

2

Ubuntu 18.04 chạy dưới dạng Ubuntu 18.04 với lightdm 1.26.0, đây là điều tôi phải làm (chỉ mất vài tuần để tìm ra tất cả). Bạn phải tạo cả hai /etc/lightdm/lightdm.conf/etc/lightdm.conf.d/50-xserver-command.confnhư sau:

sudo vi /etc/lightdm/lightdm.conf:

[Seat:*]

xserver-allow-tcp=true
xserver-command=X -listen tcp

sudo vi /etc/lightdm/lightdm.conf.d/50-xserver-command.conf:

[Seat:*]

xserver-command=X -core -listen tcp

Điều này sẽ khiến lightdm chạy Xorg với dòng lệnh sau:

Xorg -listen tcp :0 -seat seat0 -auth /var/run/lightdm/root/:0 -listen tcp vt7  
   -novtswitch

Điều này có " -listen tcp" hai lần, nhưng nó không làm tổn thương gì. Nếu bạn không có cả hai tệp, một trong các tùy chọn Xorg sẽ là "-nolisten tcp" ghi đè lên "-listen tcp" khác. Cuối cùng tôi đã tìm thấy manh mối cho điều này ở đây .

Sau đó thêm: xhost +vào của bạn.bashrc

Khởi động lại và kiểm tra xem Xorg hiện đang nghe trên cổng 6000:

$ netstat -nal | grep 6000
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN     
tcp6       0      0 :::6000                 :::*                    LISTEN     

Thưởng thức...


2

Kể từ Ubuntu 18.04, tôi đã xem xét các quy trình đang chạy và tìm ra trình quản lý hiển thị đang được sử dụng là gdm3:

$ ps ax|grep dm
 1515 ?        Ssl    0:00 /usr/sbin/gdm3

Sau đó, tôi chỉnh sửa /etc/gdm3/custom.confvà thêm một dòng:

[security]
DisallowTCP=false

Như đã đề cập, việc mở cổng 6000 không an toàn. Tuy nhiên, tôi chỉ sử dụng điều này ở mạng gia đình và cổng được bảo mật hơn nữa bằng cách iptableschỉ mở ra cho máy tính xách tay chính của tôi, nó sẽ ổn thôi.


Làm thế nào để điều này khác với câu trả lời được chấp nhận?
Stephen Rauch

1
Không khác nhau về cơ bản nhưng trong 18.04, tệp cấu hình là "/etc/gdm3/custom.conf" trong khi trong câu trả lời được chấp nhận là "/etc/gdm/custom.conf"
Bing Ren

1

Đối với Slim thay đổi tùy chọn xserver_argumentstrong /etc/slim.conf. Và khởi động lại phiên X của bạn.


Gầy là gì? Bạn nên thêm một liên kết trong câu trả lời của bạn, để bạn chứng minh nó có liên quan đến câu hỏi.
ΤΖΩΤΖΙΟΥ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.