Linux

有沒有辦法給特定的介面 ip 起別名?

  • January 16, 2020

我有一個在 debian 上作為 prod 伺服器執行的 VCS,並且由於一些管理程序問題,它必須在過去一周內多次重新啟動/遷移/更新。

因為我正在使用 docker 容器執行我的應用程序,所以我不能只通過localhost它來連接到我的本地 postgres,所以我使用的是ens2ip。

ens2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 10.12.174.3  netmask 255.255.255.254  broadcast 10.12.174.3
       inet6 fe80::dc1c:14ff:fe51:5002  prefixlen 64  scopeid 0x20<link>
       inet6 2001:bc8:4740:205::1  prefixlen 127  scopeid 0x0<global>
       ether de:1c:14:51:50:02  txqueuelen 1000  (Ethernet)
       RX packets 37139  bytes 4801851 (4.5 MiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 39791  bytes 35291408 (33.6 MiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

但是每次重新啟動時,ip 都會發生變化,我必須手動在 env vars 中進行更改,以便我的應用程序可以再次訪問數據庫,我相信你會同意這不是很實用。

localhost所以這是我的問題:有沒有辦法自動為這個特定的介面分配一個別名,很像?

我想我仍然可以嘗試解析ifconfig輸出,但我寧願先要求一個實際的解決方案👼

謝謝你們的時間👌

域名系統。

維護一個記錄供應用程序使用,也許appdb.prod.example.org. 由於這是一個服務名稱,請考慮為目前執行它的主機創建一個 CNAME。

每次主機獲得 IP 時更新 DNS 中的名稱。例如,名為 containscontainer1.example.org的AAAA 記錄2001:bc8:4740:205::1。具體如何執行取決於您的編號方案和 DNS 配置。靜態IP一分配就可以輸入。DHCP 掛鉤可用於更新 DNS。並且有軟體可以監視每個介面的 IP 更改並執行 nsupdate,例如 autoddns


不要在 Linux 上使用 ifconfig,而不是用於新腳本。它已經過時了至少 11 年。

引用自:https://serverfault.com/questions/998683