一個指令的主機解析設定?

一個指令的主機解析設定?

要修改主機的解析位址,我們可以更改 /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...

相關內容