Welche IP/Addresse brauche ich ?

Hey Leute ich habe ein kleines Programm geschrieben mit einem Server und einem Client.
Alles funktioniert reibungslos bis auf folgenes Problem :
wen ich mich auf meinem eigenen pc mit meinem server verbinden möchte funktioniert das ich teste das z.B mit dem telnet client.
wen ich aber online einen client nutze z.b https://www.adminkit.net/telnet.aspx
und dort meine ip addresse eingebe + port. dan verbindet dieser sich nicht.
jetzt folgende frage welche ip addresse brauch mein client programm um sich von jedem x beliebigen rechner aus mit meinem server zu verbinden ? wen ich in linux terminal eingebe if config bekomme etwa 4 ip6 addressen + den lokalen addressen habe alle ausprobiert und sogar die von https://www.wieistmeineip.de/ benutzt um eine verbindung aus einem anderen netz zu meinem server herzustellen, aber es will sich einfach nicht verbinden. kann mir jemand nen tipp geben ? hoffe ich habe mich richtig ausgedrückt
 
übrigens das hier ist meine server



import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

@SuppressWarnings("resource")
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket server = null;
Socket client = null;
try {
server = new ServerSocket(2000);

System.out.println("Server läuft auf " + server.getLocalPort()+" "+server.getInetAddress()+"Socketaddresse= "+server.getLocalSocketAddress()+" andere addresse = "+server.getReuseAddress());


}
catch(IOException e) {
System.out.println("Server nicht gestartet !!");
}

int clients = 0;

while (true) {
try {
client = server.accept();
clients++;

new beliebigerThread(clients, client);

}


catch (IOException ioe) {
System.out.println(ioe);
}

}
}
}
 

Thallius

Top Contributor
Mal davon abgesehen das das eine ganz dumme Idee ist deinen Rechner von aussen zugänglich zu machen must du dafür sicherlich deinen Router umprogrammieren. Diese sind, aus gutem Grund, immer so konfiguriert das das nicht geht.

Gruß

Claus
 

DrZoidberg

Top Contributor
Damit das funktioniert musst du an deinem Router eine Portweiterleitung einrichten. In diesem Fall müsstest du Port 2000 an deinen Server weiterleiten.
Wichtig ist auch die richtige IP Adresse zu verwenden. Die, die dir von wieistmeineip.de angezeigt wird, ist deine öffentliche IP unter der du aus dem Internet erreichbar bist. ifconfig zeigt dir auch private Adressen, die nur in deinem lokalen Netzwerk gültig sind. Die funktionieren natürlich nicht.
Es gibt übrigens zwei verschiedene Arten von IP Adressen, IPv4 und IPv6. IPv4 ist das alte Protokoll. Die Adressen bestehen aus 4 Zahlen zwischen 0 und 255, getrennt durch Punkte. Bei IPv6 dagegen benutzt man 8 hexadezimale Zahlen zwischen 0 und FFFF, getrennt durch Doppelpunkte.
Je nachdem was für einen Anschluss du hast, funktioniert eventuell nur eines von beiden. Viele Provider bieten nur noch DSL-lite Anschlüsse bei denen man sich eine IPv4 Adresse mit mehreren anderen Kunden teilt. In einem solchen Fall kann man sich übers Internet nur noch mittels IPv6 mit deinem Server verbinden. Bei IPv6 Adressen sind die Provider übrigens sehr viel grosszügiger. Da bekommst du nicht nur eine sondern gleich einen ganzen Adressbereich. Dein Router weist dann jedem Gerät im lokalen Netz eine oder mehrere IPv6 Adressen aus diesem Bereich zu, die dann auch - im Gegensatz zu den privaten IPv4 Adressen - im Internet gültig sind aber auch da ist eine Portweiterleitung nötig, da der Router eine Firewall integriert hat, die Verbindungsversuche normalerweise unterbindet.
 

Thallius

Top Contributor
Ich finde es trotzdem ziemlich mutig mit deinem Wissensstand über Nerzwerke deinen Rechner für das Internet nach draußen zu öffnen. Wenn du die Tage keine Daten mehr auf deiner Festplatte hast wirst du verstehen was ich meine....
 

JuKu

Top Contributor
Sobald du es von außen zugänglich machst (also den Port im Router freigibst), ist es nicht mehr lokal, sondern global.
Lokal ist dein internes Netz, das nach außen abgeschottet ist.
 

Ähnliche Java Themen


Oben