系统管理指南:IP 服务

Procedure如何更改 IPv4 地址和其他网络配置参数

此过程说明如何在以前安装的系统上修改 IPv4 地址、主机名和其他网络参数。使用此过程可以修改服务器或联网独立系统的 IP 地址。此过程不适用于网络客户机或设备。这些步骤创建一个在重新引导后继续存在的配置。


注 –

此操作说明仅适用于更改主网络接口的 IPv4 地址。要为系统添加其他接口,请参阅如何在安装系统后配置物理接口


在几乎所有情况下,以下步骤都使用传统的 IPv4 点分十进制表示法指定 IPv4 地址和子网掩码。另外,在此过程中也可以使用 CIDR 表示法在所有适用文件中指定 IPv4 地址。有关 CIDR 表示法的简介,请参见CIDR 格式的 IPv4 地址

  1. 承担主管理员角色,或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. (仅适用于 Solaris 10 11/06 及早期发行版)在 /etc/inet/ipnodes 文件或等效 ipnodes 数据库中修改 IP 地址。

    对于要添加到系统的每个 IP 地址,使用以下语法:


    IP-address host-name, nicknames
    IP-address interface-name, nicknames
    

    第一项应该包含主网络接口的 IP 地址和系统的主机名。可以选择添加主机名的别名。将其他物理接口添加到系统时,在 /etc/inet/ipnodes 中为这些接口的 IP 地址和关联名称创建项。

  3. 如果必须更改系统的主机名,请在 /etc/nodename 文件中修改主机名项。

  4. /etc/inet/hosts 文件或等效 hosts 数据库中修改 IP 地址和主机名(如果适用)。

  5. /etc/hostname.interface 文件中修改主网络接口的 IP 地址。

    可以在 /etc/hostname.interface 文件中将以下任何项用作主网络接口的项:

    • 用传统的点分十进制格式表示的 IPv4 地址

      使用以下语法:


      IPv4 address subnet mask
      

      网络掩码项是可选的。如果不指定它,则假定为缺省网络掩码。

      以下是一个示例:


      # vi hostname.eri0
      10.0.2.5 netmask 255.0.0.0
      
    • 用 CIDR 表示法表示的 IPv4 地址(如果适合网络配置)。


      IPv4 address/network prefix
      

      以下是一个示例:


      # vi hostname.eri0
      10.0.2.5/8
      

      CIDR 前缀指定适合 IPv4 地址的网络掩码。例如,上面的 /8 指示网络掩码 255.0.0.0

    • 主机名。

      要在 /etc/hostname.interface 文件中使用系统的主机名,请确保主机名和关联的 IPv4 地址也在 hosts 数据库中。

  6. 如果已更改子网掩码,请在以下文件中修改子网项:

    • /etc/netmasks

    • (可选)/etc/hostname.interface

  7. 如果已更改子网地址,请在 /etc/defaultrouter 中将缺省路由器的 IP 地址更改为新子网缺省路由器的 IP 地址。

  8. 重新引导系统。


    # reboot -- -r
    

示例 5–1 修改要在重新引导后继续存在的 IPv4 地址和其他网络参数

此示例说明如何更改已移动到其他子网的系统的以下网络参数:

查看系统的当前状态:


# hostname
myhost
# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 

接下来,在适当的文件中更改系统的主机名和 eri0 的 IP 地址:


# vi /etc/nodename
mynewhostname

In Solaris 10 11/06 and earlier Solaris 10 releases only, do the following:
# vi /etc/inet/ipnodes
192.168.55.14   mynewhostname      #moved system to 192.168.55 net

# vi /etc/inet/hosts
#
# Internet host table
#
127.0.0.1       localhost
192.168.55.14   mynewhostname        loghost
# vi /etc/hostname.eri0
192.168.55.14   netmask  255.255.255.0

最后,更改缺省路由器的网络掩码和 IP 地址。


# vi /etc/netmasks.
.
.
192.168.55.0    255.255.255.0
# vi /etc/defaultrouter
192.168.55.200        #moved system to 192.168.55 net
#

进行这些更改后,重新引导系统。


# reboot -- -r

验证在重新引导后是否保持刚设置的配置:


# hostname
mynewhostname
# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.55.14 netmask ffffff00 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 


示例 5–2 为当前会话更改 IP 地址和主机名

此示例说明如何仅为当前会话更改主机名、主网络接口的 IP 地址和子网掩码。如果重新引导系统,则系统会恢复到其以前的 IP 地址和子网掩码。主网络接口 eri0 的 IP 地址从 10.0.0.14 更改为 192.168.34.100


# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# ifconfig eri0 192.168.34.100 netmask 255.255.255.0 broadcast + up
# vi /etc/nodename
mynewhostname

# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.34.100 netmask ffffff00 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# hostname
mynewhostname


示例 5–3 使用 CIDR 表示法为当前会话更改 IPv4 地址

此示例说明如何使用 CIDR 表示法,仅为当前会话更改主机名和 IP 地址。如果重新引导系统,则系统会恢复到其以前的 IP 地址和子网掩码。主网络接口 eri0 的 IP 地址从 10.0.0.14 更改为 192.168.6.25/27


# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# ifconfig eri0 192.168.6.25/27 broadcast + up
# vi /etc/nodename
mynewhostname
# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.06.25 netmask ffffffe0 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# hostname
mynewhostname

对 IPv4 地址使用 CIDR 表示法时,不必指定网络掩码。ifconfig 使用网络前缀标识来确定网络掩码。例如,对于 192.168.6.0/27 网络,ifconfig 设置网络掩码 ffffffe0。如果使用了更常见的 /24 前缀标识,则生成的网络掩码是 ffffff00。使用 /24 前缀标识相当于在配置新 IP 地址时为 ifconfig 指定网络掩码 255.255.255.0


另请参见

要更改除主网络接口之外的接口的 IP 地址,请参阅《系统管理指南:基本管理》如何在安装系统后配置物理接口