Tunneling Koneksi TCP / IP melalui Remote Desktop Connection

34

Ada server Windows jarak jauh di jaringan pribadi yang dapat saya hubungi melalui Remote Desktop Connection. Saya ingin dapat membuat koneksi TCP / IP dari komputer saya ke komputer lain di jaringan server itu.

Remote Desktop Connection memungkinkan untuk berbagi printer, drive, dan sumber daya lokal lainnya melalui koneksi. Apakah ada cara untuk "tunnel" koneksi TCP / IP melalui RDC?

Saya ingin sesuatu yang mirip dengan port-forwarding yang disediakan oleh SSH. Saya tidak melihat cara untuk melakukan ini melalui RDC, tapi saya berharap kemampuannya ada dan saya tidak tahu tentang itu.

Kristopher Johnson
sumber

Jawaban:

7

Saya tidak berpikir Anda bisa melakukan tunnel melalui RDP, namun jika Anda ingin rdp ke server dan kemudian memulai ssh tunnel kembali ke klien Anda, mesin Anda akan terhubung oleh ssh. Anda dapat meneruskan porta jarak jauh dan lokal sehingga Anda bisa melakukannya sehingga semuanya terbalik

EDIT

Jika Anda menginstal server ssh pada PC klien Anda dan mengaturnya untuk menerima koneksi ssh pada port 443 maka Anda dapat terhubung ke server ssh (klien Anda) dari server Anda (menggunakan koneksi ssh client) dan Anda tidak perlu membuka port apa pun ( 443 harus terbuka untuk https)

Charles Gargent
sumber
1
Ya, sepertinya saya harus menginstal server SSH. Sayangnya, itu akan membutuhkan tindakan dari MIS untuk membuka port di firewall, sehingga mungkin perlu beberapa hari / minggu.
Kristopher Johnson
PC klien saya ada di belakang beberapa lapisan firewall. Tidak tahu apakah saya dapat terhubung dari server kembali ke klien. (Dunia menjadi jauh lebih mudah ketika semua port terbuka.)
Kristopher Johnson
Bayangkan sebuah kasus di mana tidak ada komunikasi yang layak dari server ke klien bahkan dengan 443 tcp, satu-satunya hal yang kita miliki RDP
carpinchosaurio
19

Jika Anda menjalankan rdesktop di sisi klien (bukan klien Windows asli), Anda dapat menggunakan rdp2tcp .
Ini memungkinkan Anda untuk mengelola penerusan port TCP melalui koneksi RDP.

Nicolas Collignon
sumber
Untuk dukungan penerusan port pada windows, klien RDP memilih github.com/FreeRDP/FreeRDP/issues/935
Vadzim
1

Saya tidak menemukan sesuatu yang lebih baik daripada rdp2tcp untuk digunakan dengan Windows Server yang tidak mengizinkan akses admin atau routing jaringan antar-antarmuka. Anda perlu melakukan patch OOP pada rdesktop Anda agar ini berfungsi (buka halaman terakhir untuk menemukan yang sesuai dengan versi terbaru dari rdesktop). Saya menggunakan kompiler MinGW untuk mengkompilasi ujung terowongan Windows.

Dokumentasinya juga sangat bagus dan ringkas.

Apa yang mungkin tampak seperti poin minor: Jika Anda menggunakan nama 'addin' dengan '-' di dalamnya, rdesktop gagal mengurai baris perintah dengan benar. Ini mungkin bashism yang membutuhkan pelarian yang tepat, tapi saya tidak yakin.

Perhatikan bahwa sejauh yang saya mengerti, ini bukan terowongan TCP 'benar' yang 'melihat' unit data Protokol TCP karena itu tidak akan mungkin terjadi tanpa hak admin di sisi Windows. Ini lebih seperti proxy kaus kaki dengan titik akhir yang sudah dikonfigurasikan sebelumnya (tidak terlalu konsekuensial). Ini juga menampilkan proxy kaus kaki yang sebenarnya jika Anda suka itu.

Saya dengan mudah mengelola sesi SSH interaktif dengan itu, tetapi tidak tahan untuk transfer file SSH (memberi 'saluran virtual terputus' di konsol rdesktop (rdp2tcp berjalan sebagai proses anaknya dengan stdout / stdin dup2'ed / piped oleh rdesktop , tetapi tanpa perubahan ke stderr)). Ada sumber konstan yang disebut RDP2TCP_PING_TIMEOUT yang tampak seperti batas waktu keepalive untuk memegang terowongan. Dengan asumsi semacam pelambatan dalam jaringan perantara, meningkatkan ini dari 5s menjadi 900s tampaknya telah melakukan trik, dan itu bertahan untuk transfer hingga 100MB (butuh sekitar 15 menit pada jaringan tertentu).

Di luar itu, meskipun, rdp2tcp ditemukan menerima SIGPIPE, yang diklaim telah diterima karena rusaknya pipa rdesktop, meskipun saya tidak dapat menemukan bukti apa pun yang terjadi baik dari kode rdesktop, atau output dari ' Tidak ada perubahan dalam jumlah pipa untuk rdesktop sebelum dan sesudah pemicu SIGPIPE.

Jika ini terjadi, Anda perlu me-restart rdesktop, dan mungkin juga sisi Windows dari tunnel. Anda dapat menggunakan rsync dan melanjutkan transfer file, dan mungkin Anda dapat mengotomatiskan seluruh proses pemulihan.

Semua ini menganggap Linux sebagai klien Anda. Saya belum mencoba rdesktop yang ditambal pada Windows karena beberapa masalah yang tidak berhubungan dengan Cygwin / X. Saya kira itu harus bekerja.

Juga, pengalaman saya dengan SSH, tetapi transfer file yang sangat besar dengan cara lain kemungkinan akan mengalami masalah yang sama.

serigala
sumber
cara mengatur item di atas di Windows 7
Thangamani Palanisamy
0

Saya pikir Anda dapat menggunakan penerusan port lokal ke RDP:

A -> B -> C

A adalah Windows atau Mac, B adalah Linux dan C adalah Windows. Jika Anda ingin RDP ke C dari A dan C tidak secara langsung dapat dijangkau dari A maka pada A

ssh username@B -L 7777:C:3389

Buka klien RD, lalu arahkan 127.0.0.1:7777 menggunakan nama pengguna dan kata sandi C. Saya mencoba ini dari Mac tetapi harus bekerja untuk Windows.

Srinivas Nukala
sumber