Hallo!
Also erstens musst du für DNS2Go (und jeden anderen Dynamic-DNS-Provider auch) eine Software haben, der deinen Rechner bei jeder Verbindung mit dem Internet neu dort anmeldet.
Denn bei jeder neuen Verbindung bekommst du ja eine neue IP-Adresse, und die muss man dem DNS-Server mitteilen, sonst kann die Namensauflösung gar nicht klappen.
Wenn du Glück hast, kann das dein Router übernehmen, da musst du mal im Menü bzw. im Handbuch schauen. Meiner kann das. Ansonsten bei deinem DynDNS-Provider die entsprechende Software absaugen.
Als zweites musst du ein Port-Forwarding einrichten. Wenn irgendein PC aus dem Web auf deine IP zugreift, redet er ja zuerst mal mit dem Router. Und der hat keine Ahnung, was man von ihm erwartet. Du musst dem Router sagen, das eingehende Anrufe auf dem Port 21 (das ist der Standard-Port für FTP) an den lokalen Rechner 192.168.0.31 (oder wo immer auch dein FTP-Server legt) durchgereicht werden sollen.
Auch hierzu durchs Menü stöbern oder das Handbuch des Routers wälzen.
Und zu guter Letzt musst du deinen FTP-Server auf Passive-Betrieb konfigurieren:
FTP-Server hinter einem Router
Wenn man die gängigen Webseiten befragt, wird man erfahren, das ein FTP-Server die Ports 20 und 21 benutzt. Und das es bei einem Router bzw. einer Firewall genüge, den Port 21 freizugeben und auf den Rechner, auf dem der FTP-Server laufen soll, zu forwarden.
Ich will nicht sagen, das das völliger Schwachsinn ist - aber es ist leider nur ein ganz kleiner Teil der Wahrheit. Denn wie jeder weiß, der dies einmal getestet hat: funktionieren wird’s so eher selten.
Um das Warum verstehen, und was man dagegen tun kann, benötigt man einen etwas tiefergehenden Einblick in die Abläufe eines FTP-Transfers.
Im ersten Schritt nimmt der Client mit dem Server auf Port 21 (oder welchen Port man auch immer im FTP-Server eingestellt hat) Kontakt auf. Dazu gehören neben der Anmeldung mit Usernamen/Passwort und der Überprüfung/Bestätigung, das der Server Resume-fähig ist, auch das Auskungeln der eigentlichen Datenverbindung. Der Port 21 ist nämlich ausschließlich für Kommandos da, der eigentliche Datentransfer läuft über einen anderen Port. Und da beginnen die Schwierigkeiten:
Es gibt zwei Möglichkeiten:
Beim aktiven FTP sagt der Client dem Server: Ich möchte die Daten auf dem Port x bekommen. x ist dabei ein ausgewürfelter Port zwischen 1024 und 65535. Daraufhin fängt der Server auf seinem Port 20 an, Daten (zuerst mal das Dirctory) an den gewünschten Port des Clients zu senden.
Sofern nun der Client hinter einem Router, einer Firewall oder einem Proxy-Server sitzt oder auch nur eine Software-Firewall installiert hat, werden die Daten davon abprallen, weil es von diesen Geräten/Programmen als unerwünschte/unerwartete Verbindungsaufnahme aus dem Web gewertet werden wird. Sprich: es wird keine Verbindung zustande kommen.
Beim passiven FTP dagegen kündigt der Server dem Client an, auf welchen Port er die Daten zu senden wünscht. Der Client bestätigt die Empfangsbereitschaft durch das Senden einer kurzen Nachricht auf eben diesem vorgeschriebenen Port - womit er der Firewall/dem Router oder Proxy gleichzeitig klar macht, das Daten auf diesem Port in den kommenden Minuten erwünscht sind und zu ihm weitergeleitet werden sollen.
Normalerweise sind auch dafür die Ports 1024-65535 vorgesehen, aber jede gute FTP-Server-Software lässt hier eine selber zu definierende Port-Range zu.
Ausdrücklich, weil es da jede Menge Missinformation im Internet gibt:
Passives oder Aktives FTP hat nichts mit dem Datentransfer zu tun, es beeinflusst weder die Geschwindigkeit noch die Anmeldung. Es geht ausschließlich darum, welcher der beiden Rechner den Port für die Datenübertragung festlegt!
Dem Client ist das egal, der probiert im Normalfall erst mal aus, ob es mit passivem FTP klappt und benutzt aktives nur, wenn passiv vom Server abgelehnt wird.
Im Klartext: Aktives FTP ist für den Betreiber des Servers zwar sehr einfach einzurichten (Server installieren und Port 21 auf dem Router freigeben), aber für den Client wird dann kompliziert: Er müsste die entsprechenden Ports auf seinem Router freigeben, um zu einer Verbindung zu kommen.
Mal ganz davon abgesehen, das 90% aller User Deppen sind, denen ich das Einrichten eines Port-Forwardings gar nicht zumuten möchte, bleibt die Tatsache, das der Client einen beliebigen Port zwischen 1024 und 65535 auswürfelt. Wenn man die alle forwarden würde (und das müsste man!), könnte man auf seinen Router/seine Firewall auch gleich ganz verzichten - denn damit würde ja auch die ganzen Ports, über die sich Würmer und Trojaner fortpflanzen, auch mit seinem Rechner verbinden. Aleine aus Sicherheitsgründen (nicht des Serverbetreibers, aber denen seiner Besucher) verbietet sich aktives FTP damit.
Passives FTP dagegen erfordert erst mal ein bischen Arbeit des Server-Betreibers: Man braucht zuallererst mal eine Server-Software, die sich auf passives FTP einstellen lässt - das kann bei weitem nicht jede! Definitiv funktionieren tut’s mit BulletProofFTP in der Version 2.3.1 - ältere Versionen können es nicht (alle)!
Im Server muss man dann unter Einstellungen/Passive Mode den Passive Mode einschalten. Außerdem muss man dort die IP-Adresse des Servers angeben. Nicht die IP-Adresse im lokalen Netz, sondern die, unter der das gesammte Netz von Internet aus erreichbar ist. Sofern man von seinem Provider eine dynamische IP bekommt, die bei jeder Einwahl wechselt, muss man sich daher bei einem DynDNS-Provider wie no-ip.com oder dnydns.org eine entsprechende Adresse besorgen, also etwas wie: ich.no-ip.com oder ich.dyndns.org.
Nun, das muss man so oder so, da ja auch der Server als solcher unter ständig wechselnden IP-Adressen im Web steht. Erreichbar ist er dann unter ftp://ich.no-ip.com.
Diesen Namen muss man in der Dialogbox des Servers unter „Dynamic IP“ eintragen. Außerdem sollte man in dieser Dialogbox auch noch die Port-Range vorgeben. Dabei empfieht es sich, eher sparsam zu sein. Bei einem „normalen“ Home-FTP-Server braucht man nicht mehr Ports als sich User gleichzeitig anmelden dürfen (kann man normalerweise auch irgendwo einstellen). 5-10 Ports dürften für jeden normalen DSL-Anschluß mehr als genug sein. Also stellt man z.B die Ports 41000-41010 ein. Wer seinen FTP-Server tarnen möchte, kann unter „General“ auch noch den Kommando-Port umstellen, also von 21 z.B. auf 40000 umstellen, um es Script-Kiddies, die nur nach FTP-Servern suchen, möglichst schwer zu machen.
Nachdem man dies alles auf seinem FTP-Server eingestellt hat, muss man noch die entsprechenden Ports (im Beispiel also 40000 und 41000-41010) in seinem Router auf den FTP-Server forwarden.
Und das war’s. Ab jetzt ist euer Server weltweit erreichbar, egal, ob der User hinter einer Firewall/einem Router sitzt, oder nicht. Vorraussetzung ist natürlich, das man im Server die entsprechenden User anlegt und die DynDNS-Adresse sowie den Kommando-Port seines Servers den entsprechenden Leuten zukommen lässt.