HerrVonFluff
Anmeldungsdatum: 28. Mai 2015
Beiträge: 42
|
Hallöchen, ohne lange Vorrede! Mein Problem: Ich kann meine Webseite auf meinem LAMP-Server nicht im Browser aufrufen, wenn ich die (externe) IP eingebe. Kann also nicht öffentlich auf meinen Server zugreifen. Eine Fehlermeldung gibt es nicht, nur laden bis zum Time Out. Was Helfern helfen könnte:
Server läuft (ich kann eine Website aufrufen, indem ich "localhost" bzw. die IP "192.168.0.12" im Browser eingebe) Portweiterleitung ist im Router eingerichtet (Dieser Port-Scanner sagt: "Port 80 Wird zur Kommunikation mit dem Webserver verwendet.") Rechte für alle Verzeichnisse u Dateien sind 775 In den Logdateien (/var/log/apache2/) wird nichts protokolliert, wenn ich versuche, die Seite via externe IP aufzurufen Zwischen Router und Rechner sitzt noch ein Repeater (spielt aber keine Rolle für die Portweiterleitung des Routers, oder?) Portweiterleitung ist folgendermaßen eingerichtet:
Port Öffentlich: 80
Port Privat: 80
Protokoll: TCP/UDP
IP-Adresse: 192.168.0.12 (die mich auch lokal zum Server führt)
??? ☺
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4437
|
Wenn du möchtest, kannst du mal die IP mitteilen, hatte auch mal den Fall, dass es im eigenen Netzwerk (über die öffentliche IP) nicht ging, aber externe problemlos darauf zugreifen konnten.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Poste mal bitte die Ausgaben folgender Befehle in einem Codeblock:
| cat /etc/apache2/ports.conf
netstat -tlpn
iptables -nL
|
|
HerrVonFluff
(Themenstarter)
Anmeldungsdatum: 28. Mai 2015
Beiträge: 42
|
verdooft schrieb: Wenn du möchtest, kannst du mal die IP mitteilen, hatte auch mal den Fall, dass es im eigenen Netzwerk (über die öffentliche IP) nicht ging, aber externe problemlos darauf zugreifen konnten.
Danke! Bin dem mal nachgegangen und habe Browsershots (Screenshots der IP über browserstack.org) generieren lassen. Kein Browser konnte drauf zugreifen. misterunknown schrieb: Poste mal bitte die Ausgaben folgender Befehle in einem Codeblock:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | n@ASUS:~$ cat /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
Listen 8080
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
|
| n@ASUS:~$ sudo iptables -nL
[sudo] password for n:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | n@ASUS:~$ sudo netstat -tlpn
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:51013 0.0.0.0:* LISTEN 877/rpc.statd
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1389/mysqld
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 815/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 867/rpcbind
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1580/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1190/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3482/cupsd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 815/smbd
tcp6 0 0 :::51328 :::* LISTEN 877/rpc.statd
tcp6 0 0 :::139 :::* LISTEN 815/smbd
tcp6 0 0 :::111 :::* LISTEN 867/rpcbind
tcp6 0 0 :::8080 :::* LISTEN 6757/apache2
tcp6 0 0 :::80 :::* LISTEN 6757/apache2
tcp6 0 0 :::22 :::* LISTEN 1190/sshd
tcp6 0 0 ::1:631 :::* LISTEN 3482/cupsd
tcp6 0 0 :::445 :::* LISTEN 815/smbd
|
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Dein Apache lauscht korrekt an Port 80 und reagiert auch auf alle IPs. Das Problem liegt also nicht am Server an sich. Ich vermute, dass noch ein Fehler im Port-Forwarding ist, und es daher zum Timeout kommt. Das lässt sich natürlich schlecht debuggen. Was für einen Router nutzt du? Gibt es da irgendwelche Debug-Logs? Funktionieren andere Portweiterleitungen (beispielsweise SSH)?
|
HerrVonFluff
(Themenstarter)
Anmeldungsdatum: 28. Mai 2015
Beiträge: 42
|
Was für einen Router nutzt du?
Hitron CVE30360 Gibt es da irgendwelche Debug-Logs?
Negativ Funktionieren andere Portweiterleitungen (beispielsweise SSH)?
Bin noch nicht in den Genuss gekommen, ssh zu benutzen. Kann ich das unkompliziert testen, ohne ein fremdes System zu konfigurieren? Oder wofür kann man sonst mal eben eine Portweiterleitung einrichten u testen?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
HerrVonFluff schrieb: Bin noch nicht in den Genuss gekommen, ssh zu benutzen. Kann ich das unkompliziert testen, ohne ein fremdes System zu konfigurieren?
Oder wofür kann man sonst mal eben eine Portweiterleitung einrichten u testen?
Portweiterleitung kann man ganz einfach testen. Leite einfach einen Port deiner Wahl weiter (12345) und dann versuchst du per netcat einen Text zu senden:
| # auf dem Server
echo "Das ist ein Test" | nc -l -p 12345
# irgendwo
nc DEINSERVER 12345
|
Der String "Das ist ein Test" sollte jetzt übertragen werden und erscheinen (geht natürlich auch mit telnet).
|
HerrVonFluff
(Themenstarter)
Anmeldungsdatum: 28. Mai 2015
Beiträge: 42
|
Ok, ich habe gerade diese Weiterleitung eingerichtet:
Anwendungsname: -SERVICES-
Protokoll: TCP/UDP
Öffentlicher Port Bereich: 12345 - 12345
Privater Port Bereich: 12345 - 12345
IP-Adresse: 192.168.0.12
netcat:
| n@ASUS:~$ echo "Das ist ein Test" | nc -l -p 12345
|
...passiet nix bzw:
| n@ASUS:~$ sudo nc -vz 192.168.0.12 12345
nc: connect to 192.168.0.12 port 12345 (tcp) failed: Connection refused
|
Hab ich den Test jetzt richtig gemacht? misterunknown schrieb: # auf dem Server
also mein Rechner = mein Terminal??? # irgendwo
also stdout = mein Terminal???
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
HerrVonFluff schrieb: netcat:
| n@ASUS:~$ echo "Das ist ein Test" | nc -l -p 12345
|
...passiet nix
Das ist richtig. Der Befehl öffnet den Port 12345 und schickt den Text "Das ist ein Test" raus. Da noch niemand zu dem Port verbunden ist, wartet der Prozess, bis das der Fall ist. Möchtest du den Test also auf dem gleichen Rechner machen, dann brauchst du 2 Terminals 😉 In dem ersten muss der Befehl abgesetzt werden. Der läuft so lange, bis sich jemand zu dem Port verbindet.
| n@ASUS:~$ sudo nc -vz 192.168.0.12 12345
nc: connect to 192.168.0.12 port 12345 (tcp) failed: Connection refused
|
Da der andere Befehl vermutlich nicht mehr lief, ist das die korrekte Antwort (der Port ist zu). Du musst auch den Parameter -z weglassen, da der nur zum scannen von Ports ist. Wir wollen aber testen, ob der Text auch übers Netz geht. Du kannst das mit der IP 192.168.0.12 testen (das sollte Problemlos möglich sein). Der eigentliche Test muss natürlich mit deiner externen IP erfolgen.
|
HerrVonFluff
(Themenstarter)
Anmeldungsdatum: 28. Mai 2015
Beiträge: 42
|
Danke ☺ | n@ASUS:~$ nc -v 192.168.0.12 12345
Connection to 192.168.0.12 12345 port [tcp/*] succeeded!
Das ist ein Test
|
...aber leider
| n@ASUS:~$ nc -v [ext. IP] 12345
nc: connect to [ext. IP] port 12345 (tcp) failed: Connection timed out
|
Sollte ich mich mal an den Support des Routers wenden?
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
HerrVonFluff schrieb: | n@ASUS:~$ nc -v 192.168.0.12 12345
Connection to 192.168.0.12 12345 port [tcp/*] succeeded!
Das ist ein Test
|
So muss es aussehen 👍
...aber leider
| n@ASUS:~$ nc -v [ext. IP] 12345
nc: connect to [ext. IP] port 12345 (tcp) failed: Connection timed out
|
Sollte ich mich mal an den Support des Routers wenden?
Also ich glaube nicht, dass es etwas mit dem Router zu tun hat. Wenn die Portweiterleitung korrekt eingerichtet ist, sollte das passen – so viel kann man da schließlich nicht falsch machen. Ich würde als erste Anlaufstelle deinen Internet-Provider sehen und dort beim Support anrufen.
|
HerrVonFluff
(Themenstarter)
Anmeldungsdatum: 28. Mai 2015
Beiträge: 42
|
Ok werd ich machen. Nur eins noch: Die IP, die ich bei der Portweiterleitung eintragen muss, kann ja nur die (IPv4) Adresse sein, die ich mittels ifconfig im Bereich wlan0 angezeigt bekomme, oder?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | n@ASUS:~$ ifconfig
eth0 Link encap:Ethernet Hardware Adresse f4:6d:04:be:11:39
UP BROADCAST MULTICAST MTU:1500 Metrik:1
RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:0 (0.0 B) TX-Bytes:0 (0.0 B)
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:65536 Metrik:1
RX-Pakete:11925 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:11925 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX-Bytes:3503873 (3.5 MB) TX-Bytes:3503873 (3.5 MB)
wlan0 Link encap:Ethernet Hardware Adresse e0:b9:a5:60:03:2e
inet Adresse:192.168.0.12 Bcast:192.168.0.255 Maske:255.255.255.0
inet6-Adresse: 2a02:8109:a280:a68::2/128 Gültigkeitsbereich:Global
inet6-Adresse: fe80::e2b9:a5ff:fe60:32e/64 Gültigkeitsbereich:Verbindung
inet6-Adresse: fd00:fc:8dd7:9222:a19d:3c97:5d94:abc4/64 Gültigkeitsbereich:Global
inet6-Adresse: fd00:fc:8dd7:9222:e2b9:a5ff:fe60:32e/64 Gültigkeitsbereich:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX-Pakete:292852 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:232326 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:250155824 (250.1 MB) TX-Bytes:38953044 (38.9 MB)
|
Also sowas wie die Adresse meines Rechners im lokalen Netz, wenn ich das richtig verstanden habe.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
HerrVonFluff schrieb: Die IP, die ich bei der Portweiterleitung eintragen muss, kann ja nur die (IPv4) Adresse sein, die ich mittels ifconfig im Bereich wlan0 angezeigt bekomme, oder?
Richtig.
|