
要修改主機的解析位址,我們可以更改 /etc/hosts
我希望在執行單一腳本時具有該功能,而無需實際修改 /etc/
hosts
$HOST=foo.bar:10.0.1.256 ping foo.bar
與 /etc/hosts 中的條目相同
10.0.1.256 foo.bar
且$ ping foo.bar
這可行嗎?
答案1
重複的我可以建立一個特定於使用者的主機檔案來補充 /etc/hosts 嗎?,其中解釋了 HOSTALIASES 的使用。
本質上,您設定一個 HOSTALIASES 環境變數來指向您自己的主機檔案。
更多資訊請訪問主機名稱(7) 手冊頁
答案2
沒有用戶主機文件,複雜的綁定設定可以將應用程式託管在不同的內部 IP 後面...但是...應用程式應該能夠跳過 DNS...
如果您希望對進行 http/https 呼叫的應用程式執行此操作,則可以完全跳過 DNS。當發出 http 請求時,網域會複製到標頭,您可以透過覆蓋標頭來跳過此步驟...
例如;
wget --header="主機:www.example.com" "http://127.0.0.1/bob/is/cool」
這將向 localhost 發送一個 http 請求,但是該 http 請求將針對 www.example.com,而不是 127.0.0.1...
(繞過 dns 並對正確的域進行有效的 http 呼叫)。
如果由於某種原因它是一個備用tcp 服務,沒有像請求中的主機那樣的標識符,那麼瘋狂的綁定設定將會起作用(拒絕應用程式的src ip,它將在不同的dns 服務上解析) 。
另一個解決方案是使用核心防火牆...
將應用程式拆分到不同的 lan 或環回位址,然後您將能夠根據來源資料包位址 DNAT 到不同的 IP...