我输入了以下内容 ifconfig eth0:0 192.198.6.1 up ifconfig eth0:1 192.198.6.2 up ifconfig eth0:2 192.198.6.3 up
现在这两个命令都没有错误。当我 ping 192.168.6.1 时,我得到了来自该 IP 的回复。那么这里到底发生了什么?
谁能详细解释一下 eth0:0、eth0:1 等代表什么意思吗?
上述命令是否为同一操作系统分配多个地址?我正在使用 Ubuntu
如果它为同一台机器分配多个 Ip,那么是否意味着托管一个 my-sql 服务器,例如,就像托管在四台不同的机器上,或者同一台机器有多个 IP 地址?
答案1
同一台机器有多个ip,Linux能够通过使用IP别名将多个IP地址映射到一个NIC。
要设置 IP 别名,例如:
ifconfig eth0:0 192.198.5.2 netmask 255.255.255.0 up
这会将 IP 地址 192.198.5.2 分配给 eth0,作为 eth0 上的第一个别名(记为 eth0:0)。如果您查看 ifconfig 的输出,您会看到 eth0 的不同 IP 地址和 eth0:0 的另一个 IP 地址。
别名是 NetworkInterface:Number,例如 eth0:0、eth0:1、eth0:2 等等。
ifcfg-ethX:Y
在某些系统中,您可以在目录中简单地创建别名文件(其中 X 是网络接口,Y 是别名) /etc/sysconfig/network-scripts/
,它将在启动/网络重启时读取。
该文件的内容和其他接口文件类似,例如:
DEVICE=eth0
ONBOOT=yes
IPADDR="192.198.5.2"
NETMASK="255.255.255.0"
在没有使用这些网络脚本的系统上,只需在启动脚本(通常是 /etc/rc.d/rc.local)中直接添加对 ifconfig 的调用。
答案2
关于您的 mysql 问题。两者都有。根据您的配置方式,您可以让 mysql 监听所有 4 个 IP 地址,或者只监听一个。
大多数守护进程都有一个选项来选择您希望它们监听的接口。
答案3
(除了 Prix 的回复:)使用ifcfg-ethX:Y
文件的方法在基于 RedHat 的系统(例如 Fedora、CentOS 等)下很流行。在基于 Debian 的系统(例如 Ubuntu)下,您将使用 /etc/network/interfaces 文件中的条目。另外:您的设备标识符需要指定虚拟接口。示例:
iface eth0 inet 静态 地址 192.168.6.1 网络掩码 255.255.255.0 网关 192.168.6.254 iface eth0:1 inet 静态 地址 192.168.6.2 网络掩码 255.255.255.0 iface eth0:2 inet 静态 地址 192.168.6.3 网络掩码 255.255.255.0
如果你使用它来调出其他地址,请这样做不是添加网关的线路,因为您最终会得到多个默认路由,这可能会使您的路由引擎感到困惑。