Autor |
Beitrag |
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mi 27.04.11 19:35
Hallo,
ich entwickle gerade eine ASP.NET-Webanwendung und habe diese in den IIS-Server geladen. Über die LAN-interne IP-Adresse des Rechners, auf dem der Server läuft, kann ich die Website abrufen, nicht aber über die externe Adresse des Routers. Die Portfreigabe funktioniert, das habe ich mit einem anderen Programm getestet.
Wireshark liefert folgende Erkenntnis: Die SYN-Pakete kommen an, werden aber nicht mit ACK beantwortet. Das heißt doch, dass der TCP-Listener die Anfrage nicht aktzeptiert, oder? Und wie kann ich IIS so konfigurieren, dass er die Pakete annimmt? Eine Bindung auf die externe IP-Adresse ist bereits hinzugefügt.
Ich hoffe, es findet sich eine Lösung. Vielen Dank schonmal für eure Vorschläge!
Grüße,
Yogu
|
|
Yogu 
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Fr 29.04.11 18:32
Ich erlaube mir mal einen *Schiebeposting* und möchte noch einmal betonen, dass ich dankbar bin für jeden Hinweis.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 29.04.11 18:55
Wie sieht es mit der Firewall aus?
Da wäre es normal, wenn es gar keine Antwort gibt. 
|
|
Yogu 
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Fr 29.04.11 19:17
Juhu, ein Post
Die Firewall habe ich gerade noch einmal gänzlich ausgeschaltet - ohne Erfolg. Außerdem kann es gar nicht an ihr liegen: Wenn ich statt der IIS einen selbst programmierten TCP-Server lauschen lasse und diesen Eingehende Verbindungen akzeptieren lasse, kommt die Verbindung zustande.
Ich glaube vielmehr, dass der IIS-Server Pakete von externen IP-Adressen nicht beantwortet. Es gibt das Modul "Einschränkungen für IP-Adressen und Domänen", aber daran liegt es nicht. Gibt's vielleicht noch mehr solcher Möglichkeiten, bestimmte IP-Adressen auszuschließen?
Grüße,
Yogu
|
|
dark-destination1988
      
Beiträge: 178
Erhaltene Danke: 21
|
Verfasst: Mo 02.05.11 10:32
schonmal über Portforwarding probiert?
von außen muss ja prinzipiell an die interne Adresse weitergeleitet werden.
Ich vermute deshalb das du das über Portforwarding erreichen kannst.
Du rufst über die Externe Adresse auf. Der Router leitet es an die interne weiter und du erhälst damit eine antwort von der Internen Adresse, obwohl die Externe angesprochen wurde
|
|
dark-destination1988
      
Beiträge: 178
Erhaltene Danke: 21
|
Verfasst: Mo 02.05.11 10:32
Zuletzt bearbeitet von dark-destination1988 am Mo 02.05.11 10:33, insgesamt 1-mal bearbeitet
|
|
Yogu 
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mo 02.05.11 15:57
Hallo,
danke für deine Antwort, dark-destination1988. Am Router ist bereits eine Protfreigabe eingerichtet, d.h. er wurde so konfiguriert, dass er den Port 80 der externen IP-Adresse mit dem Port 80 der lokalen IP-Adresse meines Rechners verknüpft. Das meinst du wohl mit Port Forwarding. Das Problem ist aber, dass der IIS-Server die Pakete, die über diese Portfreigabe gesendet wurden, nicht akzeptiert. Wahrscheinlich ist irgend eine Einstellung gesetzt, dass er nur lokale IP-Adressen annimmt. Aber die finde ich eben nicht.
Vorübergehend habe ich das Problem damit gelöst, dass ein anderer TCP-Server die Verbindungen in Empfang nimmt und dann selbst eine Verbindung zum IIS-Server aufbaut, um die Daten zu übertragen. So denkt der IIS-Server, die Daten kämen vom eigenen Rechner, obwohl sie von außen stammen. Das löst zwar erstmal das Problem, birgt aber ein Sicherheitsrisiko und erlaubt es mir nicht, lokale Anfragen anders zu behandeln als normale (z.B. mit erweiterten Fehlermeldungen).
Der IIS Express scheint übrigens genau das gleiche Problem zu haben.
Grüße,
Yogu
|
|
Yogu 
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Do 26.05.11 20:49
Hallo,
ich habe inzwischen eine Lösung gefunden, die mit IIS Express funktioniert. Im Prinzip muss nur folgende Zeile ausgeführt werden:
Quelltext 1:
| netsh http add urlacl url=http://hostname:port/ user=Jeder |
In der Quelle wird statt Jeder everyone verwendet, aber in der deutschen Version von Windows muss die Übersetzung benutzt werden.
Wie man die Regel wieder löscht und wie das ganze unter XP funktioniert, steht auf der verlinkten Seite.
Grüße,
Yogu
|
|
|