Dns
我可以在沒有 root 訪問權限的情況下創建類似於在 /etc/hosts 中寫入的覆蓋 dns
我想設置一個我的瀏覽器將使用的 dns 記錄,但我沒有 root 訪問權限,所以我無法修改
/etc/hosts
. 我需要這樣做以使用尚未設置其 dns 的 apache 測試虛擬主機。我可以使用 firefox 和 chrome,所以如果有一個外掛可以幫助它;或其他選項有幫助。**更新:**覆蓋 dns 的替代方法可能是修改 HTTP 標頭,如果將正確的標頭髮送到 apache,則應返回正確的內容。
我正在尋找一種方法來執行具有修改的 DNS 解析的程序以進行測試。對我來說,解決方案是使用
HOSTALIASES
環境變數:$ echo "foo www.google.com" >> ~/.hosts $ HOSTALIASES=~/.hosts wget foo
見
hostname(7)
。(旁注:在範例中,
HOSTALIASES
環境變數只影響wget
程序。當然,您可以export HOSTALIASES
讓它對目前shell的所有子程序生效。)
您可以圍繞 libc 函式編寫一個包裝器來解析主機名並在與 /etc/hosts 不同的文件中查找它們。然後執行您想使用主機文件的任何應用程序
LD_PRELOAD=wrapper.so firefox