Hallo Leute,
Ich habe eine Frage.
Ich habe mir ein kleinen TCP-Server programmiert der permanent auf meinen Rechner im Hintergrund läuft, wenn sich jemand auf dieses Programm verbindet auf einen Port den ich vorher festlege, fährt sich mein PC automatisch runter. Soll dafür dienen das ich quasi wenn ich im Wohnzimmer sitze mein Pc ausschalten kann mit meinen Laptop, dass funktioniert auch alles super. Jedoch ist nun meine Frage, wenn ich nicht im selben Netzwerk bin, klappt es denn immer noch? Habe leider nicht die Möglichkeit es zu testen da wir nur ein Netzwerk haben. Falls es klappt, klappt es bei allen Ports oder nur bei bestimmten?
Grüße
Never trust a running system.
Hi,
nein - das klappt so nicht - und das ist auch gut so 😉
Das Thema ist: Bist du nicht in deinem Netzwerk - musst du von außen kommen. Von außen heißt: Du musst über die Internet-IP über deinen Router.
Dieser wird:
a) keine Ahnung haben wohin mit dem TCP-Paket
b) das Paket ohenhin ablehnen
Ergo: Port-Freigabe am Router erforderlich - das lässt sich allerdings auch programmgesteuert per Upnp realisieren, sofern das Router das unterstützt und erlaubt.
Habe selbst was ähnliches im Einsatz gehabt - das ist allerdings eine entsprechend geschützte API gewesen - da könnte ja sonst jeder kommen 😉
LG
Hey vielen dank für die schnelle Antwort! 😃
Ja ich habe es auch noch ein wenig geschützt, also wenn ein paket reinkommt dort ist ein md5 hash enthalten, den muss man beim absenden eingeben, und nur wenn das der gleiche ist so wie ich ihn auf mein Zielrechner eingerichtet habe klappt es.
Das mit Upnp klingt interessant, lese ich mir mal durch danke!
Never trust a running system.
Bei upnp solltest du dir nur im klaren sein, dass dann jede Anwendung einen Port im Router öffnen kann, wenn der Router upnp aktiviert.
Entsprechend könnte jede beliebige Anwendung einen Port öffnen, ohne dass du dies willst.
Wenn du den Port deines Tools kennst, öffne ihn lieber selbst im Router.
Hab ich bei mir zu Hause auch so gemacht.
Ich weiß welche Ports ich im Router offen brauche und nur diese öffne ich.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Okey, weiß ich bescheid, damit hat sich mein Anliegen denn auch erledigt, vielen dank!
Habe nichts passendes gefunden deswegen habe ich ein Post geöffnet, und schnell eine Antwort bekommen, vielen dank nochmal!
Never trust a running system.
Hallo, eine Frage hab ich dennoch, ist mir gestern Abend beim nachdenken eingefallen,
wie kommunizieren Spiele und co. ohne eine Portfreigabe zu haben? oder als Beispiel die Seite "Omegle", hat eine direkte Router zu Router verbindung mit dem Gegenüber, dort muss ja dann auch ein offener Port sein oder? Könnte man den nicht einfach nutzen?
Never trust a running system.
Spiele basieren nicht auf TCP sondern auf UDP und verwenden UDP hole punching
Bei Spielen stört es nicht, wenn mal ein Paket fehlt; daher tut UDP nicht weh.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hast Du es Dir durchgelesen und auch angeschaut, wie es funktioniert?
Nein? Dann tu das erst mal und überlege Dir dann, ob Du das wirklich so tun willst bzw. überhaupt kannst.
Denn "mal kurz" auf UDP umstellen reicht nicht.
Steht auch im Wiki Eintrag.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Kurz gesagt - wenn du dir dafür wirklich so viel Arbeit machen möchtest (nicht trivial) und zudem auch noch einen externen Server (mit freiem Port^^) bereitstellst - dann könntest du das so machen.
Anders formuliert: Geht so - passt aber sicher nicht zu deinen Anforderungen.
LG
Okey, ja also ist relativ kompliziert, habe auch erst ein c# projekt gefunden wo sowas probiert wurde aber das ist meiner Meinung nach kein UDP hole punching.
Hier mal zum nachlesen: https://www.fluxbytes.com/csharp/udp-hole-punching-implementation-in-c/
vielleicht interpretiere ich es auch falsch 😄.
Hatte vor das Programm später vielleicht mal öffentlich zu machen, dann würde sich der Aufwand schon lohnen. Hätte jemand von euch lust das mit mir zusammen zu machen?
Never trust a running system.
Hi,
da steht klar und deutlich "UDP hole punching" drüber. (Passiert darin auch)
Was du aber überlesen hast:
Du brauchst um das verwenden zu können einen Internet-Server mit offenem Port.
(Quasi das was du nicht willst - nur mit Extrakosten)
Was die Veröffentlichung der Software angeht:
Kannst du zwar machen - aber es gibt bereits so viel Software und fertige Apps die das können, dass es wenig sinnvoll erscheint - ähnlich wird es vermutlich bei der Mitarbeit aussehen...
LG
Das Thema ist zwar schon etwas älter, aber ich möchte hier aus Gründen der IT-Sicherheit meinen Senf dazugeben. Jede Art von Portfreigaben zu deinem Netzwerk, die es ermöglichen von außen, sprich von der gesamten Welt aus, auf deine Computer zuzugreifen, sollte dringentst vermieden werden. Sowas kann man machen, wenn man einen eigenen, möglichst vom restlichen Netzwerk getrennten Webserver hat, den man öffentlich verfügbar machen möchte.
Das, was du brauchst ist keine Portfreigabe an deinem Router. Und schon gar kein UDP-Protokoll. Das Zauberwort heißt "VPN". -> Virtual Private Network