Wie kann ich die automatische Portweiterleitung von localhost durch Mac verhindern?

392
user416988

Ich habe eine Anwendung, die läuft und auf lokale Anforderungen auf Port 4001 wartet. Wenn ich eine zweite Anwendung zum Anfordern von Anforderungen über Port 4001 starte, scheint mein Mac die Anforderung automatisch an einen anderen Port weiterzuleiten. Wenn ich beispielsweise vor dem Start der zweiten Anwendung nachschaue, welche Prozesse auf Port 4001 ausgeführt werden, erhalte ich Folgendes:

Grants-MacBook-Pro:sbin grantseward$ sudo lsof -i -n -P | grep 4001 Password: java 113 grantseward 52u IPv6 0x3465d3725017ec8d 0t0 TCP *:4001 (LISTEN) 

Sobald ich jedoch die zweite App starte, scheint sie ursprünglich Anfragen an Port 4001 zu senden, aber dann werden sie an 49509 weitergeleitet, und dieser Port ist geschlossen / nicht das, was meine andere App gerade hört (der zweite Port ändert sich auch bei jedem Stopp und Starten Sie die zweite App, damit ich nicht einfach ändern kann, wo ich zuhöre.

Grants-MacBook-Pro:sbin grantseward$ sudo lsof -i -n -P | grep 4001 java 113 grantseward 52u IPv6 0x3465d3725017ec8d 0t0 TCP *:4001 (LISTEN) java 113 grantseward 59u IPv6 0x3465d3725f0a988d 0t0 TCP 127.0.0.1:4001->127.0.0.1:49505 (CLOSE_WAIT) java 121 grantseward 80u IPv6 0x3465d3726032d38d 0t0 TCP 127.0.0.1:49506->127.0.0.1:4001 (ESTABLISHED) 

Irgendwelche Ideen, wie ich die Regeln ändern kann, damit Anfragen an 4001 bei 4001 landen?

0

1 Antwort auf die Frage

0
Gordon Davisson

Was Sie sehen, ist normal. Es ist nicht so, dass die Verbindung an Port 49505 weitergeleitet wird, sondern dass ein Client-Programm, das an Port 49505 ausgeführt wird, eine Verbindung mit dem Dienst an Port 4001 herstellt. Eine TCP-Sitzung wird durch die IP-Adresse und die Portnummern der beiden Enden der Verbindung definiert. In diesem Fall haben Sie eine Sitzung zwischen 127.0.0.1:4001 (Prozess-ID 113 (Server-Programm)) und 127.0.0.1:49505 (Prozess-ID 121 (Client-Programm)).

Übrigens, jedes Mal, wenn Sie den Client erneut ausführen (oder der Client eine neue Verbindung öffnet), wird ihm im Allgemeinen ein neuer Quellport zugewiesen (anstelle von 49505).

Danke, dies half mir indirekt, die Ursache zu finden. Es stellte sich heraus, dass eine Steckdose geöffnet wurde, die nie geschlossen wurde, was mich daran hinderte, die gewünschte Verbindung herzustellen. user416988 vor 9 Jahren 0