Click here to Skip to main content
15,888,351 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Anyone has any info how can I share my screen over internet. I am working in a remote desktop application.

I dont want to use any router port forwarding as that will not work for my application.

I use this code and its working nice if I am inside NAT / LAN. But how do I make it working over internet ?

From some research, I found that I possibly will have to have a server in the middle.

Customer PC (session code a1) <---->Server (a1) <----> Engineer PC (Session a1)

But how do I do that using .net ?
Posted
Updated 18-Apr-15 17:10pm
v3

1 solution

>>
Quote:
But how do I make it working over internet ?


"
Quote:
But how do I do that using .net ?


its not really a .Net issue - its a Network Communications/Security Issue - you need the correct External/Public TCP/IP Address, NAT, Route, Security etc to be set up

its not impossible - that is, if your organisation allows direct connections into the 'internal' network space from an external computer.

You don't say what/if you have a firewall between you and the outside world, and the steps required are going to be different depending on if that's a single firewall, dual firewalls inner/outer and a DMZ inbetween them etc

The 'Safest' way to do this, from a security point of view, is as you point out above - you have an external proxy, and you make an outbound connection to that proxy, something on that proxy hooks up the 'other side' of the rdp connection - obviously, one assumes you'd be using secure tcp/ip protocols here as well - this is the essence of how things like TeamViewer work

Assuming you have a simple single firewall type setup, or its all done on your ADSL router, you need :-

a) A Fixed/Static External/Public TCP/IP Address the remote RSP Session can connect to you on (or, you can use a dynamic address, but its a PITA to reconfigure every time that changes, not very practical)

b) You 'NAT' and or route the external tcp/ip address to your local/internal PC address

c) You allow inbound communications from (the external tcp/ip address) to the NAT or Local address of your PC, only TCP/IP on port 3389 (only allowing a single external tcp/ip address in goes a little way to stop you being hacked)

They are very rough steps, you really need a network security professional to analyse your setup and advise whats safest and best for you
 
Share this answer
 
Comments
MonirMia 19-Apr-15 0:33am    
Thanks for your reply. Okay the application will kind of do exactly like how teamviewer works. So how do I develop that ? For team viewer, I dont change anything in my firwall or router or adsl/ So I install a piece of software which is installed in my PC. I believe it opens a port and create a virtual channel from my computer to teamviewer server. this is why I can access my compueter from anywhere in the world using teamviewer. How do I do the similar thing in c# and .net ?
Garth J Lancaster 19-Apr-15 2:55am    
you would need to set up a machine 'in the cloud' you then write a proxy/relay server that takes data from one socket (from the engineer pc for example), and relays it to the other the customer pc (Im not sure and wouldn't be without reading the RDP spec if there is 'return data' in which case you pass the return/response back the other way, from customer pc to engineer pc)

think of it as a bidirectional relay service

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900