是否可以将真实 IP 放在环回设备上?

Pet*_*mit 9 ip loopback

是否可以在环回设备上放置真实 IP(不在 127.xxx 范围内)?

jll*_*gre 5

没有什么禁止这样做。

# ifconfig lo:1 10.0.0.1/8 
# ifconfig lo:1
lo:1 链路封装:本地环回  
          inet 地址:10.0.0.1 掩码:255.0.0.0
          上环回运行 MTU:65536 公制:1
# ping -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 min/avg/max/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
Run Code Online (Sandbox Code Playgroud)


Rui*_*iro 5

作为使用的替代方法lo:0,您还可以dummy在 Linux 中使用接口,如下所示:

ifconfig dummy0 10.0.0.1/32
ifconfig dummy1 10.1.1.1/24
Run Code Online (Sandbox Code Playgroud)

除了其他答案:

  • 我不建议更改通常/官方的环回接口地址,因为很多功能都依赖于它;
  • 但是,您可以拥有/创建多个环回/虚拟接口 - 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 并且必须被指示创建更多数量的虚拟接口。


Bil*_*hor 5

在当前带有该ip实用程序的Linux 内核上,它非常简单:

ip addr add 10.0.1.8 dev lo
Run Code Online (Sandbox Code Playgroud)

当您的服务在接口上绑定端口,并且想要在相同的端口和网络上运行不同的程序时,这会很有用。我使用它来启用两者binddnsmasq在同一台服务器上共存。

如果您使用/etc/network/interfaces来配置您的接口,则更新该lo节以包括:

up ip addr add 10.0.1.8 dev lo
Run Code Online (Sandbox Code Playgroud)