Ich möchte einen DNS-Datensatz festlegen, den mein Browser verwendet, habe jedoch keinen Root-Zugriff, sodass ich keine Änderungen vornehmen kann /etc/hosts
. Ich muss dies tun, um vhosts mit Apache zu testen, dessen DNS noch nicht eingerichtet wurde. Ich habe Zugriff auf Firefox und Chrome. Wenn es also ein Plug-In gibt, das dies erleichtern könnte. oder andere Optionen sind hilfreich.
update: die alternative zum überschreiben des dns besteht wahrscheinlich darin, die htp-header zu ändern. wenn die richtigen an apache gesendet werden, sollte der richtige inhalt zurückgegeben werden.
dns
not-root-user
http
Xenoterracid
quelle
quelle
Antworten:
Ich suchte nach einer Möglichkeit, ein Programm mit geänderter DNS-Auflösung zu Testzwecken auszuführen. Für mich verwendete die Lösung die
HOSTALIASES
Umgebungsvariable:Sehen
hostname(7)
.(Randnotiz: Im Beispiel
HOSTALIASES
wirkt sich die Umgebungsvariable nur auf denwget
Prozess aus. Natürlich können Sieexport HOSTALIASES
sie für alle Unterprozesse der aktuellen Shell wirksam werden lassen.)quelle
export
in den meisten Fällen:export HOSTALIASES=~/.hosts
.Sie können einen Wrapper um die libc-Funktion schreiben, um Hostnamen aufzulösen und sie in einer anderen Datei als / etc / hosts nachzuschlagen. Führen Sie dann eine beliebige Anwendung aus, mit der Sie Ihre hosts-Datei verwenden möchten
quelle
/etc/nsswitch.conf
to umleitet~/.nsswitch.conf
und eine~/.nsswitch.conf
Abfrage für Ihre DNS-Datenbanken erstellt.Ich denke, der beste Weg, dies zu tun, wäre, einen SOCKS5-Proxy einzurichten und Firefox anzuweisen, die DNS-Anforderungen über den SOCKS5-Proxy (network.proxy.socks_remote_dns) zu senden. Sie könnten ziemlich einfach einen socks5-Proxy mit openssh einrichten (Option -D) und einen Remote-Host mit einer benutzerdefinierten / etc / hosts oder etwas wie DNSMasq für komplexere DNS-Einstellungen ausführen . Tatsächlich wird jedoch die Konfiguration der DNS-Einstellungen auf ein System übertragen, an dem Sie systemweit Änderungen vornehmen können.
quelle
Schauen Sie sich die folgende Frage beim Superuser an:
https://superuser.com/questions/184643/override-dns-in-firefox
Wenn die besprochenen Optionen und der SO-Link keine praktikablen Lösungen sind, überprüfen Sie Folgendes:
https://superuser.com/questions/100239/hostname-override-in-firefox
Besonders zu beachten:
https://addons.mozilla.org/en-US/firefox/addon/redirector/
Es hört sich so an, als ob dieses Addon helfen könnte - aber ich hänge von seiner tatsächlichen Implementierung ab.
quelle
Zum Testen von vhosts können Sie den Apache-Server in Firefox als Proxy festlegen. Der eingegebene Name wird an Apache weitergeleitet. Das Durchsuchen anderer Websites wird dadurch unterbrochen. Setzen Sie den Proxy zurück, wenn Sie fertig sind.
quelle
Ich brauchte etwas Ähnliches für ssh, scp usw. für einen Server, der die IP alle paar Wochen ändert (und unsere IT hat einige Wochen Verspätung beim Einstellen des Hosts). Ich habe es mit einer speziellen Variablen für diesen Server gelöst:
export FOO='131.227.aaa.bbb
und dann kann ich einfachssh bar@$FOO
und ich ändere die IP in meinem,~/.bashrc
wann immer es sich ändert ...quelle
Pech nicht, können Sie nicht, außer Sie schreiben Ihren eigenen Internetbrowser.
Wenn Sie einige Tests durchführen müssen, benötigen Sie eine Testmaschine, unabhängig davon, ob es sich um eine virtuelle oder eine reale Maschine handelt. Fragen Sie daher Ihren Unix-Administrator (oder Hosting-Anbieter), wie Sie eine Entwicklungsumgebung einrichten können.
Sie können auch eine VM auf Ihrem PC installieren, eine Linux-Distribution installieren, Apache und Ihre Änderungen testen (es ist nicht so schwer, wie es sich anhört).
Aktualisieren
Zur besseren Erklärung wird jede Anwendung mit den Standardbibliotheken geschrieben. Auf diese Weise muss niemand die Bibliothek auf niedriger Ebene und Funktionen wie gethostbyname () umschreiben.
Diese Funktionen sind normalerweise so eingestellt, dass sie Dateien (/ etc / hosts) und DNS verwenden. Wenn Sie also benötigen, dass Ihr Browser einen Namen auflöst, der unter / etc / hosts angegeben ist, haben Sie nicht allzu viele Alternativen .
quelle
open()
und jedem anderen Aufruf auf niedriger Ebene. Solange das dynamische Laden von Code aktiviert ist (.so)