Kök erişimi olmayan / etc / hosts dosyasına yazmaya benzer geçersiz kılma dizileri oluşturabilir miyim


48

Tarayıcımın kullanacağı bir dns kaydı ayarlamak istiyorum, ancak root erişimim yok, bu yüzden değiştiremiyorum /etc/hosts. Bunu, dns'leri henüz kurulmamış olan apache ile vhost'ları test etmek için yapmam gerekiyor. Firefox ve chrome erişimine sahibim, bu yüzden bunu kolaylaştıracak bir eklenti varsa; veya diğer seçenekler faydalıdır.

güncelleme: dns geçersiz kılmanın alternatifi muhtemelen doğru olanları apache'ye gönderirse, HTTP başlıklarını değiştirmektir.


1
Son satır belli değil. Ayrıca, bu SF'ye daha uygun olmaz mı?
tshepang

@tshepang ... hayır çünkü bunu linux masaüstünde yapmam gerekiyor mu?
xenoterracide

1
Hala çok net değil. Tam olarak "veya diğer seçenekler yararlı" ne demek? Beni tahmin etme.
tshepang

3
@tshepang Ne aradığımı bilmiyorum ... neden soracağımı bilseydim? Göz önünde bulundurmadığım seçenekler olabilir. Apache'nin sanal konakçıların, http ve dns'in birlikte nasıl çalıştığını açıklamamı istediğinizi hissediyorum.
xenoterracide

Bunu aradığını düşünüyorum: unix.stackexchange.com/a/104511/135943
Wildcard

Yanıtlar:


65

Test amacıyla değiştirilmiş DNS çözünürlüğü olan bir program çalıştırmanın bir yolunu arıyordum. Benim için çözüm, HOSTALIASESortam değişkenini kullanıyordu :

$ echo "foo www.google.com" >> ~/.hosts
$ HOSTALIASES=~/.hosts wget foo

Bakın hostname(7).

(Yan not: Örnekte, HOSTALIASESortam değişkeni yalnızca wgetsüreci etkiler . Tabii ki, export HOSTALIASESgeçerli kabuğun tüm alt işlemlerinde etkili olmasını sağlayabilirsiniz .)


1
Gerçekten bu + 10k gibi olmalı, ne yazık ki sadece +1
xenoterracide

Katılıyorum! + 10 k !!
Anders Hansson

3
Çok teşekkürler! Örnek prepend gerekir exportçoğu durumda: export HOSTALIASES=~/.hosts.
ezequiel-garzon

8
IP adresi ve ana bilgisayarlar "." içeremez, yalnızca ana bilgisayarları ana bilgisayarlara destek olarak görünüyor.
netawater

Windows için de aynı çözüm var mı?
Akceptor

10

Ana bilgisayar adlarını çözmek ve onları / etc / hosts dosyasından farklı bir dosyada aramak için libc işlevinin etrafına bir sarmalayıcı yazabilirsiniz. Ardından, ana makinenizi kullanmak istediğiniz herhangi bir uygulamayı çalıştırın.

LD_PRELOAD=wrapper.so firefox

4
En yararlı, açılışı yönlendirme, sarmalayıcı yapmak /etc/nsswitch.confiçin ~/.nsswitch.confve yapmak ~/.nsswitch.confDNS veritabanlarını sorgular.
Gilles 'SO- kötülük yapmayı bırak'

6

Bunu yapmanın en iyi yolunun SOCKS5 proxy'si ayarlamak ve firefox'a DNS isteklerini SOCKS5 proxy'si (ağ.proxy.socks_remote_dns) üzerinden göndermesini sağlamak olduğunu düşünüyorum. Openssh ile oldukça kolay bir şekilde (-D seçeneği) bir çorap5 proxy ayarlayabilir ve daha karmaşık DNS ayarları için özel / etc / hosts dosyasıyla çalışan bir uzak ana bilgisayara veya DNSMasq gibi bir şeye sahip olabilirsiniz . Etkili olsa da, bu, DNS ayarlarının yapılandırmasını sistem genelinde değişiklikler yapabileceğiniz bir sisteme doğru itiyor.


söylenenden daha kolay, bizi dışarı
atmamızı

5

Süper kullanıcı olarak şu soruyu göz atın:

https://superuser.com/questions/184643/override-dns-in-firefox

Tartışılan seçenekler ve SO bağlantısı uygun çözümler değilse, o zaman şu göz atın:

https://superuser.com/questions/100239/hostname-override-in-firefox

Özellikle check-out:

https://addons.mozilla.org/en-US/firefox/addon/redirector/

Bu addon'un yardımcı olabileceği anlaşılıyor - ama gerçek uygulamasına bağlı.


Maalesef bu sorudaki op benzeri hiçbiri uygun görünmüyor.
xenoterracide,

@ xenoterracide - Cevabımı güncelledim - belki yönlendirici eklentisi bir seçenek olabilir mi?
maxschlepzig

Sanırım ifade ettiği gibi yapmamalıyım, gerçekten yapmam gereken, gönderilen HTTP başlıklarını değiştirmek ... ana bilgisayarları kullanmaktan
vazgeçmek

SO çözümünü dürttüm (TamperData), ancak bu konağın nasıl değiştirileceğini görmedim. Canlı http başlıkları olayı gerçekten başlıkları değiştirmeme izin veriyor mu acaba, bunun bir izleyici olduğunu söylüyor.
xenoterracide

Sanırım ana bilgisayar adını kullanıyorsanız, SO'da bir kısımda listelenen Değişiklik Başlıkları uzantısı çalışıyor ... içinde ... henüz test edilmemiş ... sitelerin kullanılması dışında.
xenoterracide

2

Vhost'ları test etmek için Apache sunucusunu Firefox'ta proxy olarak ayarlayabilirsiniz. Girdiğiniz ad Apache'ye iletilecektir. Bu, diğer sitelere göz atmaktan kopar, böylece işiniz bittiğinde proxy'yi geri ayarlayın.


0

Her birkaç haftada bir IP değiştirmeye devam eden bir sunucu için ssh, scp vs. için benzer bir şeye ihtiyacım vardı (ve BT’nizin sunucuyu ayarlamak için birkaç hafta gecikmesi var). Bu sunucu için özel bir değişken kullanarak çözdüm: export FOO='131.227.aaa.bbbve sonra tam olarak yapabiliyorum ssh bar@$FOOve ~/.bashrcistediğim zaman IP'yi değiştirebiliyorum ...


-2

Şanssız değil, kendi internet tarayıcınızı yazmanız dışında yapamazsınız.

Bazı testler yapmanız gerekiyorsa, bir sanal makineye veya gerçek bir makineye ihtiyaç duyduğunuzda bir test makinesine ihtiyacınız vardır, bu nedenle Unix yöneticinize (veya barındırma sağlayıcınıza) bir geliştirme ortamını nasıl koyacağınızı sormanız gerekir.

Ayrıca PC'nize bir VM yükleyebilir, bir Linux dağıtımı yükleyebilir, Apache ve değişikliklerinizi test edebilirsiniz (göründüğü kadar zor değil)

Güncelleme

Daha iyi açıklamak gerekirse, her uygulama standart kütüphaneler kullanılarak yazılmıştır, bu şekilde hiç kimse düşük seviye kütüphanesini ve gethostbyname () gibi işlevlerini yeniden yazmak zorunda kalmaz.

Bu işlevler normalde, dosya (/ etc / hosts) ve DNS kullanacak şekilde ayarlanır, bu nedenle şanssızdır, tarayıcınızın bir ismi / etc / hosts dosyasında belirtilenden daha fazla alternatifi olmayan bir ismi çözmesi gerekirse .

  1. Kendi DNS sunucunuzu ayarlayabilir ve /etc/resolve.conf dosyasını değiştirmek için kimin root haklarına sahip olduğunu sorabilirsiniz.
  2. DeleGate gibi bir proxy sunucusu kurabilir ve VirtualHost'unuz için bazı kurallar belirleyebilirsiniz.
  3. Bu müşteri ana bilgisayarına sudo hakları sor
  4. Bağlantıyı test etmek için kullandığınız uygulamanın davranışını değiştirin (tarayıcıyı tahmin ediyorum), örneğin https://addons.mozilla.org/en-US/firefox/addon/switchhosts/

4
-1 kötü ifade ve patronizing. Ben barındırma sağlayıcısıyım ve sunucumuzda test etmem gereken lanet müşteriler sitesi. Yönetici erişimine sahip olmayan bir ağ önyükleme linux'umuz var ve üzerinde bir VM önyükleyebileceğime inanmıyorum.
xenoterracide

@ xenoterracide, söylenecek fazla bir şey yok. Bir SOCKET'in oluşturulma şeklini değiştirmen dışında, istediğin şey gerçekten mümkün değil.
tmow

1
@xenoterracide BTW, rahatsız etme niyeti yoktu.
tmow

barındırma sağlayıcısı olarak ... Aslında "sudo haklarım" var, aslında, her kutuda gerçek bir köklülük var ve masaüstüm dışında (göz kamaştırıcı hariç) her şeye tam erişimim var; .. Buna yardım
edemem

1
LD_PRELOAD ile belirli 'düşük seviye' fonksiyonlarını 'geçersiz kılabilir' ve istediğiniz şeyi yapabilirsiniz. Programa kendi / etc / hosts dosyalarınızı open()ve diğer düşük seviye çağrılarınız hakkında bilgi vermek. Dinamik kod yüklemesi yapıldığı sürece (.so)
akira
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.