ทันเนลการเชื่อมต่อ TCP / IP ผ่านการเชื่อมต่อเดสก์ท็อประยะไกล


34

มีเซิร์ฟเวอร์ Windows ระยะไกลบนเครือข่ายส่วนตัวซึ่งฉันสามารถเชื่อมต่อผ่านการเชื่อมต่อเดสก์ท็อประยะไกลได้ ฉันต้องการเชื่อมต่อ TCP / IP จากคอมพิวเตอร์ของฉันไปยังคอมพิวเตอร์เครื่องอื่นบนเครือข่ายของเซิร์ฟเวอร์นั้น

การเชื่อมต่อเดสก์ท็อประยะไกลทำให้สามารถแบ่งปันเครื่องพิมพ์ไดรฟ์และทรัพยากรอื่น ๆ ในพื้นที่ผ่านการเชื่อมต่อ มีวิธีใดบ้างในการ "เชื่อมต่อ" ช่องสัญญาณ TCP / IP ผ่าน RDC?

ฉันต้องการบางสิ่งที่คล้ายกับการส่งต่อพอร์ตที่ SSH จัดทำ ฉันไม่เห็นวิธีที่จะทำสิ่งนี้ผ่าน RDC แต่ฉันหวังว่าความสามารถจะอยู่ที่นั่นและฉันก็ไม่รู้เกี่ยวกับมัน

คำตอบ:


7

ฉันไม่คิดว่าคุณสามารถใช้ช่องสัญญาณผ่าน RDP ได้อย่างไรก็ตามหากคุณต้อง rdp ไปยังเซิร์ฟเวอร์แล้วเริ่มต้นช่องสัญญาณ ssh กลับไปยังไคลเอนต์ของคุณเครื่องของคุณจะเชื่อมต่อด้วย ssh คุณสามารถส่งต่อทั้งพอร์ตระยะไกลและโลคัลเพื่อที่คุณจะสามารถทำสิ่งนั้นได้ในสิ่งที่ตรงกันข้าม

แก้ไข

หากคุณติดตั้งเซิร์ฟเวอร์ ssh บนไคลเอนต์พีซีของคุณและตั้งค่าให้ยอมรับการเชื่อมต่อ ssh ที่พอร์ต 443 จากนั้นคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ ssh (ไคลเอ็นต์ของคุณ) จากเซิร์ฟเวอร์ของคุณ (โดยใช้การเชื่อมต่อไคลเอ็นต์ ssh) และคุณไม่จำเป็นต้องเปิดพอร์ตใด ๆ ควรเปิด 443 สำหรับ https)


1
ใช่ดูเหมือนฉันจะต้องติดตั้งเซิร์ฟเวอร์ SSH น่าเสียดายที่ต้องมีการดำเนินการจาก MIS เพื่อเปิดพอร์ตในไฟร์วอลล์ดังนั้นอาจใช้เวลาสองสามวัน / สัปดาห์
Kristopher Johnson

พีซีไคลเอนต์ของฉันอยู่หลังไฟร์วอลล์ไม่กี่ชั้น ไม่ทราบว่าฉันสามารถเชื่อมต่อจากเซิร์ฟเวอร์กลับไปยังไคลเอนต์ (โลกนี้ง่ายขึ้นมากเมื่อพอร์ตทั้งหมดเปิด)
Kristopher Johnson

ลองนึกภาพกรณีที่ไม่มีการสื่อสารที่ทำงานได้จากเซิร์ฟเวอร์ไปยังลูกค้าแม้จะมี 443 tcp สิ่งเดียวที่เรามี RDP
carpinchosaurio

19

ถ้าคุณกำลังเรียก rdesktop บนฝั่งไคลเอ็นต์ (แทนไคลเอนต์ Windows พื้นเมือง), คุณสามารถใช้rdp2tcp
อนุญาตให้คุณจัดการพอร์ต TCP ที่ส่งต่อผ่านการเชื่อมต่อ RDP


สำหรับการสนับสนุนการส่งต่อพอร์ตบนไคลเอนต์ windows RDP ให้คะแนนสำหรับgithub.com/FreeRDP/FreeRDP/issues/935
Vadzim

1

ฉันไม่พบอะไรที่ดีไปกว่าrdp2tcp ที่จะใช้กับ Windows Server ที่ไม่อนุญาตการเข้าถึงของผู้ดูแลระบบหรือการเชื่อมต่อเครือข่ายระหว่างอินเตอร์เฟสกับอินเตอร์เฟส คุณจะต้องทำการแก้ไข OOPบน rdesktop ของคุณเพื่อให้มันใช้งานได้ (ไปที่หน้าสุดท้ายเพื่อค้นหาอันที่สอดคล้องกับ rdesktop รุ่นล่าสุด) ฉันใช้คอมไพเลอร์ MinGW เพื่อรวบรวมปลาย Windows ของอุโมงค์

เอกสารยังยอดเยี่ยมและรัดกุม

สิ่งที่อาจดูเหมือนเป็นจุดรอง: หากคุณใช้ชื่อ 'addin' กับ '-' ในนั้น rdesktop จะไม่สามารถแยกบรรทัดคำสั่งได้อย่างถูกต้อง นี่อาจเป็นการทุบตีที่ต้องการการหลบหนีที่เหมาะสม แต่ฉันไม่แน่ใจ

โปรดทราบว่าเท่าที่ฉันสามารถเข้าใจได้นี่ไม่ใช่อุโมงค์ TCP ที่ 'เห็นจริง' ซึ่งเห็น 'หน่วยข้อมูลโปรโตคอล TCP เนื่องจากไม่สามารถทำได้หากไม่มีสิทธิ์ของผู้ดูแลระบบในฝั่ง Windows มันเป็นเหมือนถุงเท้าพร็อกซีที่มีจุดปลายที่กำหนดค่าไว้ล่วงหน้า นอกจากนี้ยังมีพร็อกซีถุงเท้าจริงถ้าคุณคิด

ฉันจัดการเซสชัน SSH แบบอินเทอร์แอคทีฟได้อย่างง่ายดาย แต่มันไม่ได้รองรับการถ่ายโอนไฟล์ SSH (ให้ 'ยกเลิกการเชื่อมต่อแชนเนลเสมือน' ในคอนโซล rdesktop (rdp2tcp ทำงานเป็นกระบวนการลูกด้วย stdout / stdin dup2'ed / piped โดย rdesktop แต่ไม่มีการเปลี่ยนแปลงเป็น stderr)) มีค่าคงที่ในแหล่งที่เรียกว่า RDP2TCP_PING_TIMEOUT ซึ่งดูเหมือนว่าจะหมดเวลาแบบ keepalive สำหรับการถือครองอุโมงค์ สมมติว่ามีการควบคุมปริมาณบางอย่างในเครือข่ายระดับกลางการเพิ่มสิ่งนี้จาก 5 วินาทีเป็น 900 ดูเหมือนจะทำกลอุบายและมันก็ถ่ายโอนได้มากถึง 100MB (ใช้เวลาประมาณ 15 นาทีในเครือข่ายนั้น ๆ )

นอกเหนือจากนั้นแม้ว่าพบว่า rdp2tcp ได้รับ SIGPIPE ซึ่งอ้างว่าได้รับเนื่องจากการแบ่งในท่อ rdesktop แม้ว่าฉันจะไม่พบหลักฐานว่าเกิดขึ้นจากทั้งรหัส rdesktop หรือผลลัพธ์ของ ' lsof 'ซึ่งไม่แสดงการเปลี่ยนแปลงจำนวนของท่อสำหรับ rdesktop ก่อนและหลังทริกเกอร์ SIGPIPE

หากสิ่งนี้เกิดขึ้นคุณจะต้องรีสตาร์ท rdesktop และอาจเป็นด้าน Windows ของอุโมงค์ด้วย คุณสามารถใช้ rsync และทำการถ่ายโอนไฟล์ต่อและบางทีคุณสามารถทำให้กระบวนการกู้คืนทั้งหมดเป็นไปโดยอัตโนมัติ

ทั้งหมดนี้สมมติว่า Linux เป็นลูกค้าของคุณ ฉันไม่ได้ลอง rdesktop ที่ได้รับการติดตั้งบน Windows เนื่องจากมีปัญหาที่ไม่เกี่ยวข้องกับ Cygwin / X ฉันเดาว่ามันควรจะทำงาน

นอกจากนี้ประสบการณ์ของฉันอยู่กับ SSH แต่การถ่ายโอนไฟล์ขนาดใหญ่ด้วยวิธีอื่น ๆ มีแนวโน้มที่จะประสบปัญหาเดียวกัน


วิธีการตั้งค่าด้านบนรายการใน Windows 7
Thangamani Palanisamy

0

ฉันคิดว่าคุณสามารถใช้การส่งต่อพอร์ตโลคัลไปยัง RDP:

A -> B -> C

A คือ Windows หรือ Mac, B คือ Linux และ C คือ Windows หากคุณต้องการ RDP ถึง C จาก A และ C ไม่สามารถเข้าถึงได้โดยตรงจาก A แล้วบน A

ssh username@B -L 7777:C:3389

เปิดไคลเอนต์ RD จากนั้นชี้ 127.0.0.1:7777 ใช้ชื่อผู้ใช้และรหัสผ่านของ C. ฉันลองจาก Mac แต่ควรใช้กับ Windows

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