Forum: PC Hard- und Software Windows 7 und Localhost / 127.0.0.1


von Netzwerker (Gast)


Lesenswert?

Unter XP können meine MS Visual C++ Programme problemlos über 
"localhost" kommunizieren, unter Windows 7 klappt das nicht mehr. Es gab 
wohl auch Probleme, so auf einen Datenbankserver zuzugreifen.

Allerdings lässt sich mit zwei socat [1] Instanzen dennoch so per TCP 
kommunizieren.

Die altbekannte umleitung von localhost zu 127.0.0.1 ist in der Windows 
7 hosts auskommentiert, mit Hinweis darauf, dass der DNS das erledigt.
Einkommentieren ändert nichts am Verhalten.

Es bleibt mir derzeit nichts anderes übrig, als die LAN Adresse der 
Maschine zur lokalen Kommunikation zu nutzen.

Ist dieses Verhalten "by design" / gibt es einen workaround?


[1] http://www.dest-unreach.org/socat/

von Peter II (Gast)


Lesenswert?

geht bei mir problemlos

C:\Users\ICH>ping -4 localhost

Ping wird ausgeführt für PC [127.0.0.1] mit 32 Bytes Daten:
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128

von (prx) A. K. (prx)


Lesenswert?

ping localhost auf Win7 Basisinstallation, im IPv4 Netz:

Ping wird ausgeführt für (...) [::1] mit 32 Bytes Daten:
Antwort von ::1: Zeit<1ms
Antwort von ::1: Zeit<1ms

::1 = localhost in IPv6.

von Peter II (Gast)


Lesenswert?

A. K. schrieb:
> ping localhost auf Win7 Basisinstallation, im IPv4 Netz:

jetzt machst du aber ein IPv6 ping

von (prx) A. K. (prx)


Lesenswert?

Stimmt auffallend, aber dafür kann ich nix. Wie gesagt, das Netz ist 
IPv4, das DNS auch. Dass die Windows-Kiste für localhost IPv6 verwendet 
ist ihre Entscheidung. IPv4 geht aber auch:

Ping wird ausgeführt für 127.0.0.1 mit 32 Bytes Daten:
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128

Der Name "localhost" wird, wenn mit IPv4 verwendet, zu 127.0.0.1 
aufgelöst:

X:\temp>host localhost
Name: (...)
Address: 127.0.0.1

von Netzwerker (Gast)


Lesenswert?

Pingen kann ich auch..
Es wird was mit geänderten Sicherheitvorkehrungen zu tun haben 
(WINSOCK). Allerdings bin ich Einsteiger und steige nicht wirklich 
durch:

Winsock server not working on Win7:
http://forums.codeguru.com/archive/index.php/t-507783.html

Using SO_REUSEADDR and SO_EXCLUSIVEADDRUSE:
http://msdn.microsoft.com/en-us/library/ms740621(v=vs.85).aspx

Dass ping und socat funktionieren, heisst nur, dass es gehen müsste. 
Offenbar muss also beim Herstellen der Netzwerkverbindug unter Windows 7 
mehr berücksichtigt werden als bislang.

von (prx) A. K. (prx)


Lesenswert?

Netzwerker schrieb:
> Dass ping und socat funktionieren, heisst nur, dass es gehen müsste.
> Offenbar muss also beim Herstellen der Netzwerkverbindug unter Windows 7
> mehr berücksichtigt werden als bislang.

Kaum. Das Uralt-Programm netio funktioniert auch. Der Server kommt 
allerdings mit einem Popup der Firewall hoch.

von Peter II (Gast)


Lesenswert?

A. K. schrieb:
> Stimmt auffallend, aber dafür kann ich nix.

doch, man kann ping einen parameter mitgeben -4


@Netzwerker

hast du denn keine Fehlermeldung? Sind die programm von dir geschrieben? 
Ist der port überhaupt offen (netstat)?

von bluppdidupp (Gast)


Lesenswert?

Ich kann problemlos z.B. zu einer postgresql-DB via 127.0.0.1 zugreifen 
unter win7.

Ich vermute stark dass da bei dir einfach passende Regeln in der 
Windows-Firewall fehlen:
- Bei Anwendungen sollte eigentlich die Firewall nachfragen, sobald die 
Anwendung versucht an einem Port zu lauschen (unter Visual Studio laufen 
Anwendungen im Debugger teilweise über vshost.exe oder ähnlich, evtl. 
wurde die mal versehentlich geblockt - dann kommt die Meldung nicht 
mehr...)
- Bei Diensten sorgt in der Regel der dazugehörige Installer dafür 
passende Firewall-Regeln anzulegen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.