วิธีการทำให้ X.org ฟังการเชื่อมต่อระยะไกลบนพอร์ต 6000


17

นี่คือบน Ubuntu 10.10 (Maverick Meerkat) เดสก์ท็อป 64 บิต

ฉันต้องการให้เซิร์ฟเวอร์ X ของฉันฟังการเชื่อมต่อระยะไกลจากไคลเอนต์ในเครื่องอื่น ๆ ในเครือข่ายท้องถิ่น ฉันรู้เกี่ยวกับssh -Xและนั่นไม่ใช่สิ่งที่ฉันต้องการ ฉันจำการเปลี่ยนแปลงบางอย่างเช่นTCPListenจากnoเป็นyesแต่ไม่จำว่าควรใช้การเปลี่ยนแปลงนี้ที่ใด

ฉันสนใจวิธีการแบบ GUI หรือแบบ CLI

การแก้ไข PS /etc/X11/xinit/xserverrcเพื่อลบ-nolisten tcpตัวเลือกและการรีบูตไม่ทำงาน


คำแนะนำคงเป็นการปิดการใช้งานไฟร์วอลล์ (iptables) ในขณะที่คุณพยายามทำสิ่งต่าง ๆ

@ user243114 คำใบ้ส่งคืนไม่ได้ใช้ แต่ขอบคุณอยู่ดี :)
ΤΖΩΤΖΙΟΥ

คำตอบ:


16

(ที่นี่ต่อไปนี้สำเนาเกือบทุกคำตอบด้วยตนเองจากคำถามที่เหมือนกันในข้อผิดพลาดเซิร์ฟเวอร์ที่ฉันลืมเกี่ยวกับ; Askubuntu ยังไม่ได้สร้าง)

จากข้อมูลที่พบในหน้านี้เกี่ยวกับการเปิดใช้งาน XDCMPและไฟล์ /etc/gdm/gdm.schemas ฉันจัดการเพื่อสร้าง/etc/gdm/custom.confไฟล์:

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

[chooser]

[security]
DisallowTCP=false

[debug]

ระวังด้วยตัวอักษร: มันจะไม่ทำงานถ้าคุณเขียน "disallowTCP = false" ... ฉันได้เปลี่ยนไฟล์ / etc / X11 / xinit / xserverrc เป็น:

exec /usr/bin/X11/X

เช่นฉันลบ-nolisten tcpตัวเลือกในการปฏิบัติการ X ฉันไม่รู้ว่าฉันต้องการ คุณอาจต้องการลองหลีกเลี่ยงการแก้ไขนี้

หากคุณเปลี่ยนไฟล์ xserverrc เท่านั้น X จะเริ่มต้นด้วย "-nolisten TCP"

หลังจากนั้นสิ่งที่จำเป็นทั้งหมดคือการรีสตาร์ทกระบวนการ gdm:

sudo service gdm restart

คุณสามารถตรวจสอบความสำเร็จเป็น:

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

ปรับปรุง

หลังจากอัปเกรดเป็น 12.04 ฉันมีปัญหาเดียวกัน ในครั้งนี้ผู้ร้ายคือ lightdm ที่ระบบใช้ ไฟล์ที่จำเป็นต้องได้รับการอัปเดตคือ/etc/lightdm/lightdm.confและการเพิ่มที่จำเป็นคือxserver-allow-tcp=trueใน[SeatDefaults]ส่วน

และหลังจากนั้นฉันก็พบคำตอบนั้น :)

สรุป

ดังนั้นใน 10.10 นี้ยังคงทำงาน: สร้างที่มีเนื้อหาตามที่ระบุไว้ข้างต้นและเริ่มต้นใหม่/etc/gdm/custom.confgdm


1
สำหรับ Ubuntu 14.04 สิ่งเดียวที่จำเป็นคือมีไฟล์อย่างเช่น /usr/share/lightdm/lightdm.conf.d/100-custom.confประกอบด้วย `[SeatDefaults] server-allow-tcp = true`
Nitz

@Nitz โปรดทราบว่าxserver-allow-tcp=trueคุณไม่มี 'x' ในความคิดเห็นของคุณ คุณสามารถลบความคิดเห็นที่มีอยู่แล้วเขียนใหม่ได้ แม้ว่าคำตอบจะรวมถึงการแก้ปัญหานั้นในขณะนี้
Alexis Wilke

1
ฉันแสดงความคิดเห็นกับคำถามเดิมของคุณเกี่ยวกับความผิดพลาดของเซิร์ฟเวอร์ : ตอนนี้ Xorg โดยค่าเริ่มต้นไม่ฟัง TCP เราจำเป็นต้องเพิ่ม-listen tcpเพื่อเปิดใช้งาน แต่gdm3ดูเหมือนจะไม่มีความเป็นไปได้นี้
L. Levrel

4

คำตอบนี้เกี่ยวข้องกับ Kubuntu 17.04 และฉันเพิ่มเพราะไม่มีคำตอบอื่นใด (เกี่ยวข้องกับgdmหรือlightdm) ช่วยฉัน ในกรณีของฉันsddmทำงานอยู่ หากต้องการตรวจสอบสิ่งนี้ให้ดำเนินการเช่น

ps -eal | grep sddm

ถ้ามันกำลังทำงานกระบวนการsddmและsddm-helperจะปรากฏขึ้น ในกรณีนี้เพิ่มไฟล์กำหนดค่าที่/etc/sddm.confมีเนื้อหา

[XDisplay]
ServerArguments=-listen tcp

หลังจากสร้างไฟล์นี้แล้วให้รีบูทระบบของคุณ (อาจจะมีการsddmรีสตาร์ทเพียงพอ) เป็นผลให้

PS ax | grep sddm 

แสดงXorgตัวเลือกที่ต้องการ-listen tcpและ X Server พร้อมสำหรับการเชื่อมต่อขาเข้า (อย่าลืมเพิ่มโฮสต์ระยะไกลด้วยxhost)


1
หมายเหตุว่าเป็นของ SDDM 0.14.0 (ซึ่งมาพร้อมกับ Kubuntu 17.10 เก่ง) ที่ส่วนได้ถูกเปลี่ยนชื่อ[XDisplay] [X11]สิ่งนี้ทำให้เกิดความสับสนมากเมื่อฉันพยายามช่วยเพื่อนร่วมงานของฉันจนกว่าฉันจะวิ่งman 5 sddm.confบนเครื่อง 16.04 และ 17.10 ตามลำดับและสังเกตเห็นความแตกต่าง!
keithzg

2

Ubuntu 18.04 ทำงานเป็น lubuntu 18.04 กับ lightdm 1.26.0 นี่คือสิ่งที่ฉันต้องทำ (ใช้เวลาเพียงสองสามสัปดาห์ที่จะคิดออกทั้งหมด) คุณต้องสร้างทั้งสอง/etc/lightdm/lightdm.confและ/etc/lightdm.conf.d/50-xserver-command.confเป็นดังนี้:

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

สิ่งนี้จะทำให้ lightdm รัน Xorg ด้วยบรรทัดคำสั่งต่อไปนี้:

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

นี่มี-listen tcpสองครั้ง แต่ไม่ได้ทำอะไรเสียหาย หากคุณไม่มีไฟล์ทั้งสองตัวเลือกหนึ่งใน Xorg จะเป็น "-nolisten tcp" ซึ่งจะแทนที่ไฟล์อื่น ๆ "-listen tcp" ในที่สุดผมก็พบเบาะแสในการนี้ที่นี่

จากนั้นเพิ่ม: xhost +ในของคุณ.bashrc

รีสตาร์ทและตรวจสอบว่า Xorg กำลังฟังบนพอร์ต 6000:

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

สนุก...


2

ตั้งแต่ Ubuntu 18.04 ฉันดูที่กระบวนการทำงานและคิดว่าตัวจัดการการแสดงผลที่ใช้อยู่คือ gdm3:

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

จากนั้นฉันจะแก้ไข/etc/gdm3/custom.confและเพิ่มบรรทัด:

[security]
DisallowTCP=false

ตามที่กล่าวไว้การเปิดพอร์ต 6000 ไม่ปลอดภัย อย่างไรก็ตามฉันใช้สิ่งนี้เฉพาะที่เครือข่ายในบ้านและพอร์ตนั้นปลอดภัยโดยiptablesการเปิดเฉพาะแล็ปท็อปหลักของฉันเท่านั้นก็น่าจะพอ


สิ่งนี้แตกต่างจากคำตอบที่ยอมรับได้อย่างไร
สตีเฟ่น Rauch

1
ไม่แตกต่างกันโดยพื้นฐาน แต่ใน 18.04 ไฟล์การกำหนดค่าคือ "/etc/gdm3/custom.conf" ในขณะที่คำตอบที่ยอมรับคือ "/etc/gdm/custom.conf"
Bing Ren

1

สำหรับบางเปลี่ยนแปลงตัวเลือกในxserver_arguments /etc/slim.confและเริ่มเซสชัน X ของคุณใหม่


Slim คืออะไร คุณควรเพิ่มลิงค์ในคำตอบเพื่อแสดงให้เห็นว่าเกี่ยวข้องกับคำถาม
ΤΖΩΤΖΙΟΥ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.