URL: https://www.overclockers.at/linux/von-hinter-einem-nat-die-externe-ip-auslesen-lan-only-solved_256025/page_1 - zur Vollversion wechseln!
Hallo,
Ich bräuchte eine Lösung um auf Linux von der Kommandozeile aus meine externe IP zu ermitteln. Dabei geht es um ein VM Image, das aufgrund von Pool Exhaustion nicht bridged werden kann, also hinter'm NAT des Hypervisors sitzt. Ich brauche aber für diverse Sysconfigs meine externe LAN IP, also die vom Host.
Ich kann dabei keine externen Dienste benutzen, muß das also irgendwie innerhalb unserer LANs lösen. Zwei DNS Server sind im LAN vorhanden, befinden sich aber nicht unter meiner Kontrolle.
Der Host ist Windows 10, der Hypervisor ist VirtualBox in Version 6.0. Der Gast ist CentOS 8 Linux.
Gibt es irgendeine Lösung, mit der sich meine VM ihre externe Host IP holen kann?
Danke!
das centos darf aber nicht ins internet ?
edit: sorry, hab nicht genau gelesen, du willst die externe ip vom host, nicht die öffentliche externe ip adresse ermitteln...
Möglicherweise verstehe ich das ganz falsch aber wäre das nicht ein Fall für traceroute?
Ich habe tracepath versucht, das beim CentOS dabei ist, aber da sehe ich nur die Routing IPs.
Also mein privater VM Pool ist 10.20.2.0/24. Sagen wir der externe LAN Pool ist 192.168.0.0/24. Nehmen wir an meine VM hat private IP 10.20.2.15. Der Gateway vom Hypervisor in's äußere LAN ist 10.20.2.2.
Der Windows 10 Host hat dann z.B. 192.168.0.15 als Adresse und 192.168.0.1 als Gateway. Die DNS Server sind wieder ein einem anderen Subnetz. Sagen wir Mal die wären 192.168.1.253 und 192.168.1.254.
Wenn ich jetzt aus der VM raus ein Tracepath auf einen der DNS fahre, schaut das so aus:
Code:# tracepath -n 192.168.1.253 1?: [LOCALHOST] omtu 1500 1: 10.0.2.2 0.503ms 2: 10.0.2.2 0.434ms 2: 192.168.0.1 1.045ms asymm 64 3: 192.168.1.253 0.842ms !H Resume: pmtu 1500
is der host im dns eingetragen? sonst kannst doch den LAN dns mit "dig" oder "host" fragen ?
wieso ändert sich die ip vom host überhaupt ? einfach im DHCP fixieren....
edit: das mit traceroute ist klar, der zeigt nur die nächsten hops
Die Host IP ändert sich nicht. Unser zentraler DHCP weist die fix auf MAC-Basis zu. Die Sache ist nur die: Die VM entwickle ich, und die wird dann auf über 100 Rechnern deployed. Natürlich mit über 100 unterschiedlichen Host IPs dann.
Zu dig: Ich habe einfach keinen blassen Schimmer wie man dig benutzt, hab's noch nie gebraucht. Für einen schnellen Hinweis bin ich sehr dankbar, weil mir die Zeit davonrennt. Muß ein komplett neues System bauen in nur einem Monat..
Danke!
Doublepost!
Gewisse Hosts darf die VM ja im LAN ansprechen. Da ist auch ein Webserver dabei. Ich denke mir grade, vielleicht könnte man ein simples PHP Skript bauen, das einfach nur die Client IP zurückgibt. Und die dann per wget oder curl abrufen?
Eventuell könnte ein arp-scan zum Erfolg führen, es hängst aber auch davon ab wie die Netzwerkgeräte konfiguriert sind, sprich ob sie das zulassen.
Du müsstest im Klasse C Netz, wo der Webserver steht, einen arp-scan machen und dir das Ergebnis irgendwie abholen, bzw. schicken lassen.
arp-scan gibt's scheinbar bei CentOS 8 standardmäßig nicht mehr. Danke trotzdem für den Vorschlag! Ich habe es jetzt aber schon um's Eck gelöst.
Folgendes Miniskript returnIP.php liegt jetzt auf einem Webserver, der zu unserer Infrastruktur gehört. Mit dem muß die VM sowieso reden können.
Skript:
Code:<?php echo $_SERVER['REMOTE_ADDR']; ?>
Code:#!/usr/bin/env sh myIP=$(curl -k [url]https://usersuperwebserver.unserdomain.at/getclientip/returnIP.php[/url])
Gute Lösung
das nächste mal einfach im terminal:
curl ifconfig.me
edit: sorry, hab übersehen, dass nur lokal gemeint ist
Sonst wär's ja einfach gewesen.
Im Prinzip habe ich da jetzt wohl eh genau das nachgebaut was diese Onlineservices auch anbieten.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025