Ich habe einen Apache-Server auf einem Raspberry P laufen und er funktioniert im lokalen Netzwerk einwandfrei. Und nachdem ich Port 80 weitergeleitet und versucht habe, eine Verbindung über die öffentliche IP herzustellen, meldet Chrome ERR_CONNECTION_REFUSED. Aber das Seltsame ist, dass ich den Server erreichen kann, wenn ich VPN verwende und dieselbe IP verwende. Was kann ich tun?
-telnet 80.***.***.78 80
Trying 80.***.***.78...
telnet: connect to address 80.***.***.78: Connection refused
telnet: Unable to connect to remote host
-route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
-sudo netstat -lapute:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 *:http *:* LISTEN root 6137 2051/apache2
tcp 0 0 *:ssh *:* LISTEN root 6367 2249/sshd
tcp 0 0 pi.local:ssh nmb.local:65535 ESTABLISHED root 8669 2565/sshd: pi [priv
udp 0 0 *:9949 *:* root 5918 1809/dhclient
udp 0 0 *:mdns *:* avahi 6293 2184/avahi-daemon:
udp 0 0 *:54070 *:* avahi 6295 2184/avahi-daemon:
udp 0 0 *:bootpc *:* root 5946 1809/dhclient
udp 0 0 pi.local:ntp *:* root 6310 2200/ntpd
udp 0 0 localhost:ntp *:* root 6309 2200/ntpd
udp 0 0 *:ntp *:* root 6304 2200/ntpd
Antwort1
Das ist normal. Portweiterleitung funktioniert nur für Verbindungen von außen nach innen. Portweiterleitung erlaubt es Servern in einem LAN nicht, sich mit Rechnern in demselben LAN über die öffentliche IP-Adresse des Routers zu verbinden. Dies erfordert eine Form von Dual-NAT (NAT sowohl vor als auch nach dem Routing), die Hairpinning genannt wird.
Einige Router führen Hairpinning durch, wenn Sie die Portweiterleitung konfigurieren, was manche Leute verwirrt und sie glauben lässt, dass dies bei der Portweiterleitung der Fall ist. Das ist aber nicht der Fall.
Ich habe es genauer erklärtHier.