# Tomcat im Inernet nutzen



## kawrom (1. Mai 2008)

Hallo ,
habe vor kurzem angefangen ein bieschen mit Tomcat zu experimentieren und bis her habe ich gute Erfahrungen sammeln können. Unter "locahost" funktioniert alles einwendfrei... und zu Sachen die nicht so recht klappen wollen findet man haufenweise Tutorials und Beispiele im Netz. 
Jetzt wollte ich den nächsten Level betreten und meine Anwendungen, die auf dem "localhost" laufen, auch über das Inernet erreichbar machen. Hierzu habe ich mich beim DNS-Server *dyndns* angemeldet und eine DNS zu meiner IP zugewiesen bekommen (bsp.: xyz.dyndns.org).
Als DSL-Router nutze ich die "Fritzbox", bei der ich den Port 80 für HTTP-Server freigegeben und die nutzung eines DNS-Servers eingestellt habe. Zudem habe ich auch bei meiner Firewall den Port 80 freigegeben.
Als nächstes habe ich die "server.xml"-Datei des Tomcat folgendermaßen abgeändert:


```
<Connector port="80" protocol="HTTP/1.1" 
  connectionTimeout="20000" 
  redirectPort="8443" />
```

nun versuche ich meine Anwendung ähnlich wie unter dem "localhost" zu erreichen, mit dem unterschied, dass ich anstatt "localhost" jetzt meine URL eingebe. Der Aufruf sieht ungefähr so aus:

```
[url]http://xyz.dyndns.org/MyFirstServlet/hello[/url]
```

Leider funktioniert dies nicht (es wird nicht einmal die Fehlerausgabe des Servers angezeigt)...
Wieß jemand Rat?


----------



## ms (1. Mai 2008)

Du kannst nicht von deinem internen Netz über deine externe IP wieder auf dein internes Netz zugreifen. Probiers von einem anderen Rechner der nicht in deinem Netz hängt. Kannst mir auch eine PM schicken mit deiner domain und ich schau ob ich drauf zugreifen kann.

ms


----------



## maki (1. Mai 2008)

> Du kannst nicht von deinem internen Netz über deine externe IP wieder auf dein internes Netz zugreifen.


Doch doch, das geht.

kawrom, hast du einen dyndns client konfiguriert?


----------



## kawrom (1. Mai 2008)

Hm auch auf die Gefahr hin dass ich mich jetzt lächerlich mache ...  was ist denn ein dyndns client?

Ich dachte, dass eine http-Anfrage folgendermassen abläuft:

- Adresse wird im Browser eingegeben und an einen bekannten DNS-Server abgeschickt
- Wenn dieser DNS-Server diese Domain nicht kennt leitet er die Anfrage weiter an seine ihm bekannten DNS-Server
- Beim DNS-Server der die Domain kennt wird die entsprechende IP-Adresse ermittelt und an den anfragenden Rechner gesendet 
- Der Browser Sendet die HTTP-Anfrage an den Rechner mit der nun erhaltenen IP

Wozu dient dann ein dyndns client?
(Falls dies was hilft: in der Fritzbox ist das Häckchen bei "Dynamic DNS benutzen" gesetzt)


----------



## maki (1. Mai 2008)

> (Falls dies was hilft: in der Fritzbox ist das Häckchen bei "Dynamic DNS benutzen" gesetzt)


Das ist dein Client.

Bei privaten DSL Anschlüssen wird die IP Addresse spätestens alle 24 Std. geändert, der Client sorgt dafür, dass der DNS Server die aktuelle IP Addresse zum Domainnamen bekommt.

Was passiert, wenn du deine Domain pingst?


----------



## kawrom (1. Mai 2008)

Dies ist die Antwort:

Ping xyz.dyndns.org [84.187.7.XX] mit 32 Bytes Daten:

Antwort von 84.187.7.XX: Bytes=32 Zeit<1ms TTL=63
Antwort von 84.187.7.XX: Bytes=32 Zeit<1ms TTL=63
Antwort von 84.187.7.XX: Bytes=32 Zeit<1ms TTL=63
Antwort von 84.187.7.XX: Bytes=32 Zeit<1ms TTL=63

Ping-Statistik für 84.187.7.XX:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

Nicht wundern ich habe ein paar werte der Domain und der IP durch X-e ersetzt.
Nach meinen erkenntnissen antwortet der DNS-Server einwandfrei.

Ich dachte auch durch die aktivierung des "Dynamic DNS benutzen"-features der Fritzbox sendet diese automatisch eine Nachricht an den DNS-Server bei Änderung der IP-Adresse zum Zwecke der Aktualisierung.


----------



## kawrom (2. Mai 2008)

Ja... ich habs!

Die Fritzbox war dran schuld...

Diese leitete die Anfragen von Aussen an die falsche interne IP. Der Rechner hat vor einiger Zeit eine interne IP zugeordnet gekriegt und anscheinend, nachdem ich den mal wieder Formatiert habe, vergab die Fritzbox ihm eine andere. Die Portfreigaben bezogen sich jedoch auf die erste IP-Adresse.

Vielen Dank nochmal für die Anregungen.
 :lol:


----------



## ms (2. Mai 2008)

maki hat gesagt.:
			
		

> > Du kannst nicht von deinem internen Netz über deine externe IP wieder auf dein internes Netz zugreifen.
> 
> 
> Doch doch, das geht.


Und wie?
Muss man da was spezielles Konfigurieren?

ms


----------



## maki (2. Mai 2008)

> Und wie?
> Muss man da was spezielles Konfigurieren?


Ehrlich gesagt, keine Ahnung, bei mir ging's einfach.

Kann den (internen) Rechner sowohl über die Domain als auch über die IP (extern & intern) aus dem internen Netz erreichen.

Ist nicht das beste wenn man große Datenmengen im internen Netz übertragen will, da alles über den Router läuft wenn man ihn aus dem internen Netz über die Domain aufruft.


----------



## kawrom (3. Mai 2008)

Bei mir klappt das nun auch...

im Endeffekt muss das ja auch gehen, es ist ja so, dass bei der Anfrage ersteinmal das Lokale Netzwerk abgesucht wird. Hat ein Rechner die angefragte IP-Adresse antwortet dieser mit seiner MAC-Adresse. 
Hat kein Rechner eine solche IP, so wird beim bekannten DNS-Server nachgefragt...bis das Richtige Netzwrk ermittelt ist. 
Der Rechner des anderen Netzwerks antwortet nun mit seiner MAC und die Daten können nun unter einbindung der MAC-Adresse verschickt werden.

Also das einzige was man einrichten muss ist:
- die Firewall muss den entsprechenden Port freigeben
- Der (DSL)-Router muss Anfragen an bestimmten Ports (z.B. Port 80) an den richtigen Rechner im Netzwerk, also an die richtige interne IP, zustellen.

Der Rechner, der eine Anfrage startet weiss nicht einmal, dass er bei sich selbst anfragt.


----------

