(Ich bin neu hier!) Ich betreibe einen virtuellen Server mit CentOS. Ich versuche, einen Server zu betreiben, der auf Port 37760 lauscht. Der Code, den ich ausführe, wird erfolgreich ausgeführt, also führe ich aus
netstat -lptu
Um eine Liste der Ports anzuzeigen, die lauschen, und
tcp 0 0 localhost.localdomain:37760 *:* LISTEN 15006/node
ist einer der Einträge. Wenn ich jedoch in meinem Browser zu ip:37760 gehe, läuft die Verbindung ab!
Ich bin sicher, dass es sehr offensichtlich ist, aber etwas Hilfe wäre sehr hilfreich!!
Danke
Antwort1
Die netstat
Ausgabe zeigt, dass node
nur auf dem lokalen Host abgehört wird. Sie müssen daher entweder einen Browser auf dieser virtuellen Konsole verwenden und zu localhost:37760
der Konfiguration derjenigen Einheit navigieren node
, die auf allen Adressen abgehört werden soll, oder diese aktualisieren.
Antwort2
Es besteht eine große Chance, dass Ihre lokale Firewall die Verbindung blockiert.
Überprüfen Sie Ihre lokale iptables
Firewall. Sie können den aktuellen Status sehen, indem Sie etwas in der Art von Folgendes ausführen:
iptables -vnL
Das Ergebnis ist eine Ausgabe, die etwa wie folgt aussieht:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
9192K 3593M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
18 740 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
1763K 180M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
6124 367K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
Diese vier Regeln lauten wie folgt:
- Datenverkehr zulassen, der mit einer bestehenden Verbindung verknüpft ist
- ICMP-Verkehr zulassen.
- Den gesamten Datenverkehr über die Loopback-Schnittstelle zulassen
- Neue Verbindungen über TCP-Port 22 zulassen (ssh)
Sie können den persistenten Status in sehen /etc/sysconfig/iptables
. Sie können das Tool verwenden, system-config-firewall
wenn Sie einen GUI-Konfigurationsmechanismus wünschen, oder Sie können diese Gelegenheit nutzen, um mehr darüber zu erfahren, wie die Firewall-Konfiguration über die Befehlszeile funktioniert.
Antwort3
CentOS schaltet standardmäßigIPTableson und erzwingt eine ziemlich strenge Sicherheitsrichtlinie mit SELinux. Wenn Sie versuchen, von einem anderen Computer aus auf den Port zuzugreifen, werden in der Standardkonfiguration von IPTables alle eingehenden Verbindungen außer SSH abgebrochen. Wenn Sie sich keine Sorgen um die Sicherheit machen, können Sie einfach Folgendes ausführen:
sudo service iptables stop
um IPTables vollständig auszuschalten.
Die andere Sache, die Sie auf CentOs aufhalten könnte, istSELinux. Dies fungiert als zweite Sicherheitsebene für Prozesse und das Dateisystem und verhindert, dass einige Server standardmäßig die Berechtigung zum Bereitstellen von Dateien haben, da sie keinen Zugriff auf das Verzeichnis haben, aus dem die Dateien bereitgestellt werden sollen. Sie haben hier mehrere Optionen.
1) Schalten Sie SELinux aus, indem Sie die Einstellung /etc/selinux/config
wie unten gezeigt ändern:
SELINUX=disabled in /etc/selinux/config
2) Besser ist es, audit2allow
zu prüfen, ob SELinux Ihren Server blockiert, und wenn ja, eine neue Sicherheitsrichtlinie zu erstellen, um den Server zuzulassen. Siehe diesCentOSWiki-Eintrag sowieDasBlog-Eintrag.
Wenn Sie eine VM verwenden, stellen Sie abschließend sicher, dass Ihre VM über Netzwerkzugriff und Berechtigungen zur Verwendung der NIC-Konfiguration der zugrunde liegenden Hardware verfügt.