如何在Linux和Unix中配置静态IP地址
配置IP地址是每个Linux和UNIX管理员应该学习的强制性技能之一。
我们可以在GUI模式下轻松配置IP地址。
但它在命令行模式中完全不同。
此步骤本教程描述了如何在Linux和UNIX操作系统中配置静态IP地址。
下面提供的步骤在CentOS 7 Server,Ubuntu 16.04 Server,Ubuntu 18.04 LTS服务器和桌面版本和FreeBSD 12上测试。
但是,它应该在基于大多数基于RPM和基于Deb的Linux系统和UNIX Flavors上工作。
在Linux中配置静态IP地址
首先,我们将看到如何在基于RPM的系统上配置IP地址。
在Rhel/CentOS/Fedora/Scientific Linux上配置静态IP地址:
在Fedora,Rhel及其克隆等CentOS,科学Linux,网络接口卡(短NIC)配置将存储在/etc/sysconfig/network-scripts /目录下。
注意:此处,我将所有命令运行为root用户。
如果我们以普通用户身份登录,只需在每个命令的前面使用"sudo"。
首先,让我们找到网卡的名称。
为此,运行:
# ip link show
示例输出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff
或者,使用此命令显示详细输出:
# ip addr
示例输出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff inet 192.168.225.150/24 brd 192.168.1.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe80:6319/64 scope link valid_lft forever preferred_lft forever
通常,有线网卡名称将从字母"e"开始,无线卡名称将从"w"开始字母。
如上所述,我有线网卡名称是ENP0S3.
分发可能是不同的,但它通常以字母"e"开头。
让我们现在将静态IP地址配置为此NIC。
在任何编辑器中打开网卡配置文件:
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
其中VI是文本编辑器。
我们可以使用我们选择的任何文本/图形编辑器,例如Nano或者Gedit。
添加IP地址,子网掩码,网关和DNS服务器,如下所示。
TYPE="Ethernet" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" NAME="enp0s3" UUID="e9f9caef-cb9e-4a19-aace-767c6ee6f849" ONBOOT="yes" HWADDR="08:00:27:80:63:19" IPADDR0="192.168.225.150" PREFIX0="24" GATEWAY0="192.168.225.1" DNS1="8.8.8.8" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes"
这就是典型的网卡配置文件在任何基于RPM的系统中的样子。
我们是否注意到我以粗体标记的线条(以及镜像中的箭头)?
那些是重要的线条。
让我解释一下这些行:
- bootproto ="none" - 此行表示应手动配置网卡的IP地址。如果将值设置为"DHCP",则网卡将接受来自网络中任何DHCP服务器的IP地址。
- ipaddr0 ="192.168.225.150" - 此行表示网卡的IP地址。其中我们可能已经注意到线路ipaddr之后的0(零)。这表明此卡只有一个IP地址。如果要设置多个IP地址(i.e虚拟IP地址),则添加新行 - 例如ipaddr1,ipaddr2并设置我们选择的不同IP地址。
- Prefix0 ="24" - 此行表示子网掩码,例如:255.255.255.0。其中我们可以使用行前缀1,前缀2等指定多个子网。
- Gateway0 ="192.168.225.1" - 这是NIC的网关地址。
- dns1 ="8.8.8.8" - 名称服务器地址。
设置所有详细信息,保存并关闭文件。
重新启动网络服务以使更改生效。
# systemctl restart network
或者,只需重新启动系统。
现在,使用命令验证新的静态IP地址:
# ip addr
或者,我们可以检查具体的网卡的地址,如下所示。
# ip a s enp0s3
示例输出:
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff inet 192.168.225.150/24 brd 192.168.225.255 scope global noprefixroute enp0s3 valid_lft forever preferred_lft forever inet6 2405:204:714e:faa:a00:27ff:fe80:6319/64 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe80:6319/64 scope link noprefixroute valid_lft forever preferred_lft forever
或者,我们可以使用NetworkManager Tui(nmtui)实用程序来配置IP地址。
如果未安装它,则可以使用命令安装它:
# yum install NetworkManager-tui
现在,通过输入以下命令启动NMTUI实用程序:
# nmtui
选择"编辑连接"选项:
选择网卡以从左窗格配置,然后在右侧选择"编辑"选项,然后点击Enter键:
输入IP地址,网络掩码,网关和DNS细节等。
最后,单击"确定"以保存更改。
重新启动网络服务或者重新启动系统以生效更改。
建议阅读:
- 如何在Linux中为单个网卡分配多个IP地址
在Debian/Ubuntu上配置静态IP地址:
所有NIC配置文件都存储在基于DEB系统中的/etc/network /目录下。
要在基于DEB的系统中配置静态IP地址,请执行以下操作。
在任何编辑器中编辑/etc/network/interfaces /文件:
$sudo nano /etc/network/interfaces
添加或者修改以下行以配置静态IP地址。
auto enp0s3 iface enp0s3 inet static address 192.168.1.105 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1
保存并关闭文件。
使用命令重新启动网络服务:
$sudo systemctl restart Hyman@theitroad
或者,只需重新启动系统。
现在,使用以下任何一个命令检查新的静态IP地址:
$ifconfig
$ip addr
$ip a s enp0s3
示例输出:
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:12:f8:c1 brd ff:ff:ff:ff:ff:ff inet 192.168.1.105/24 brd 192.168.1.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe12:f8c1/64 scope link valid_lft forever preferred_lft forever
从Ubuntu 17.10开始,我们不再使用/etc/network/interfaces文件来配置IP地址。
在最近的Ubuntu版本中,我们使用Netplan实用程序配置IP地址。
在UNIX中配置静态IP地址
我们刚刚学习了如何在Linux中从命令行配置静态IP地址。
现在让我们在UNIX中配置静态IP地址。
出于本教程的目的,我将使用FreeBSD 12.
就像Linux一样,我们使用"ifconfig"命令查找网卡名称。
其中我以root用户身份登录以执行以下命令。
# ifconfig
示例输出:
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=81009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER> ether 08:00:27:7e:6d:d4 inet6 fe80::a00:27ff:fe7e:6dd4%em0 prefixlen 64 scopeid 0x1 inet6 2405:204:714e:faa:a00:27ff:fe7e:6dd4 prefixlen 64 autoconf inet 192.168.225.27 netmask 0xffffff00 broadcast 192.168.225.255 media: Ethernet autoselect (1000baseT <full-duplex>) status: active nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 inet 127.0.0.1 netmask 0xff000000 groups: lo nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
这里EM0是网络接口卡名称。
要配置静态IP地址,请编辑/etc/rc.conf文件:
# vi /etc/rc.conf
添加/修改如下所示的行。
hostname="freebsd.theitroad.local" ifconfig_em0="inet 192.168.255.110 netmask 255.255.255.0" defaultrouter="192.168.255.1" local_unbound_enable="YES" sshd_enable="YES" moused_enable="YES" ntpd_enable="YES" powerd_enable="YES" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="AUTO"
保存并关闭文件。
使用以下命令重新启动网络服务:
# /etc/rc.d/netif restart && /etc/rc.d/routing restart
现在,检查IP地址是否已更改或者不使用命令:
# ifconfig
要配置网卡以从DHCP服务器获取IP地址,仅添加或者修改以下行:
hostname="freebsd.theitroad.local" ifconfig_em0="DHCP"
或者,
hostname="freebsd.theitroad.local" ifconfig_DEFAULT="DHCP inet6 accept_rtadv"
保存并关闭文件。
重新启动网络服务或者重新启动系统以生效更改。