Windows-Dienst: Listening on socket während als LocalSystem ausgeführt

Ich Schreibe einen kleinen server-Programm wie in C für Windows (unter Verwendung von MinGW/GCC, Tests auf Windows 7), schließlich soll das ausführen als Dienst mit dem lokalen Systemkonto. Ich bin erstellen einen socket, und mithilfe von Windows-Sockets bind(), listen() und accept() auf eingehende verbindungen zu warten. Wenn ich die Anwendung von der Kommandozeile aus (also nicht als Dienst, sondern als normaler Benutzer), habe ich keine Probleme mit der Verbindung zu externen IP-Adressen. Allerdings, wenn ich das Programm als Dienst mit dem lokalen Systemkonto, ich kann nur eine Verbindung zu dem Dienst von meinem eigenen PC, entweder mit 127.0.0.1 oder meine lokale Adresse, 192.168.1.80 (ich bin hinter einem router in einem kleinen lokalen Netzwerk). Weder externe IPs noch andere PCs im gleichen lokalen Netzwerk, mit dem local-Adresse, können jetzt eine Verbindung herstellen, obwohl es keine Probleme gab, ohne als Dienst ausgeführt wird.

Nun, ich habe gehört, dass die Vernetzung wird anders behandelt oder gar nicht zugänglich sind (?) bei Ausführung als lokales System oder lokaler Dienst oder Dienste nicht auf beide dem desktop und das Netz (Anmerkung: mein Dienst ist nicht interaktiv) in der gleichen Zeit aufgrund von überlegungen zur Sicherheit. Grundsätzlich, ich brauche, um herauszufinden, was falsch läuft/wie zu hören für verbindungen, die in einem service. Ausgeführt wird, erhält das gleiche wie als LocalSystem ausgeführt werden, aber mit Netzwerk-Zugriff? Sicher muss es-Server ausgeführt werden können als hintergrund-Dienste, so wie tun Sie es?

UPDATE: Es scheint, dass Sie die Vorschläge deaktivieren Sie die firewall auf dem richtigen Weg waren – ich kann eine Verbindung nach dem hinzufügen einer Ausnahme in der Windows Firewall. Ich denke, ich dachte nicht an der firewall, da, wenn Sie eine Anwendung ausführen, die mithilfe von sockets in der Regel, Sie bekommen eine Eingabeaufforderung Sie gefragt, um das hinzufügen von Ausnahmen, die nicht geschehen, wenn ein service ausgeführt wird, für die erste Zeit. Gibt es eine bessere Art das zu handhaben, als das hinzufügen die Regel für die firewall manuell? Tut LocalSystem-Berechtigungen zum hinzufügen einer Regel für die firewall selbst oder hätte ich dazu bei der installation irgendwie?

  • ich denke die firewall ist mehr wahrscheinlich Schuldigen, versucht, Sie auszuschalten?
InformationsquelleAutor Socob | 2012-06-08
Schreibe einen Kommentar