是否可以在環回裝置上放置真實的 IP(不在 127.xxx 範圍內)?
答案1
作為使用 的替代方案lo:0
,您也可以使用dummy
Linux 中的接口,如下所示:
ifconfig dummy0 10.0.0.1/32
ifconfig dummy1 10.1.1.1/24
除了其他答案之外:
- 我不建議更改通常/官方的環回介面位址,因為很多功能都依賴它;
- 但是,您可以擁有/建立多個環回/虛擬介面 - lo:0 到 lo:255 或 dummyX 介面;
- 必須考慮到 lo:0 到 lo:255 是別名,而 dummyX 是完整介面;
- 此外,Linux 中透過 BGP 或 OSPF 建立虛擬 IP 的常用策略之一是將它們指派給環回/虛擬接口,並透過路由建立通往它們的路徑;
- 同樣,某些守護程式在以別名(例如 quagga )宣佈位址時存在問題 - 因此在這些情況下建議使用 dummyX 介面;
- 我要強調的是,如果沒有基礎設施中的路由,此類位址僅在相關伺服器中是已知的/能夠使用的;
- 在沒有正確路由的情況下將私有/公用位址分配給環回介面可能是黑名單通訊的低運算成本措施暫時地具有 IP 位址/網路。
有關更多詳細信息,請參閱使用 Quagga/BIRD 完成的 BIND 選播設定教程。
路由線索在這裡:OSPF:將 Quagga 遷移到 BIRD
PS Linux 預設僅建立 dummy0 和 dummy1,並且必須指示其建立更多數量的虛擬介面。
答案2
在目前帶有該實用程式的 Linux 核心上,ip
它非常簡單:
ip addr add 10.0.1.8 dev lo
當您有一個在介面上綁定連接埠的服務,並且想要在同一連接埠和網路上執行不同的程式時,這會很有用。我用它來啟用兩者bind
並dnsmasq
在同一伺服器上共存。
如果您用於/etc/network/interfaces
配置接口,請更新該lo
節以包括:
up ip addr add 10.0.1.8 dev lo
答案3
沒有什麼禁止這樣做。
#ifconfig lo:1 10.0.0.1/8 #ifconfig 低:1 lo:1 連結 encap:本地環回 inet 位址:10.0.0.1 遮罩:255.0.0.0 上環回運行 MTU:65536 公制:1 #平-c 1 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56(84) 位元組資料。 來自 10.0.0.1 的 64 個位元組:icmp_seq=1 ttl=64 時間=0.025 ms --- 10.0.0.1 ping 統計數據 --- 發送 1 個資料包,接收 1 個資料包,丟包 0%,時間 0ms rtt 最小值/平均值/最大值/mdev = 0.025/0.025/0.025/0.000 毫秒
更新:
為了讓該位址在 Ubuntu 16.04 上重新啟動後保持不變,您可以/etc/network/interfaces
使用下列ethtool
命令修改檔案:
auto lo lo:1
iface lo inet loopback
iface lo:1 inet static
address 10.0.0.1
network 10.0.0.0
netmask 255.0.0.0
答案4
是的,但這並不意味著這是一個好主意。如果您使用系統將要存取的 IP,則它嘗試發送到那裡的任何資料都會被重新導向到本機系統,這可能會導致各種奇怪的網路問題。這尤其意味著您無法安全地使用以下範圍之外的任何內容:
127.0.0.0/8
192.0.2.0/24
198.51.100.0/24
203.0.113.0/24
240.0.0.0/4
以下任何情況可能有例外情況,取決於其他網路介面的配置方式:
10.0.0.0/8
192.168.0.0/16
172.16.0.0/12
169.254.0.0/16
這是一個案例RFC 1925,第 2 節第 3 項適用。