如何在 Linux 和 Unix 中配置静态 IP 地址

配置 IP 地址是每个 Linux 和 Unix 管理员都应该学习的必备技能之一。 我们可以在 GUI 模式下轻松配置 IP 地址。 但在命令行模式下完全不同。 本分步教程介绍了如何在 Linux 和 Unix 操作系统中配置静态 IP 地址。 下面提供的步骤在 CentOS 7 服务器、Ubuntu 16.04 服务器、Ubuntu 18.04 LTS 服务器和桌面版以及 FreeBSD 12 上进行了测试。但是,它应该适用于大多数基于 RPM 和基于 DEB 的 Linux 系统和 Unix 版本。

在 Linux 中配置静态 IP 地址

首先,我们将了解如何在基于 RPM 的系统上配置 IP 地址。

在 RHEL / CentOS / 上配置静态 IP 地址 Fedora / 科学 Linux:

在 Fedora、RHEL 及其克隆,如 CentOS、Scientific Linux、网络接口卡(不久 网卡) 配置将存储在 /etc/sysconfig/网络脚本/ 目录。

笔记: 在这里,我将所有命令运行为 用户。 如果您以普通用户身份登录,只需使用 ‘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”开头。

现在让我们为这个 NIC 配置一个静态 IP 地址。

在任意编辑器中打开网卡配置文件:

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

这里, 是文本编辑器。 您可以使用您选择的任何文本/图形编辑器,例如 example 纳米 或者 编辑.

添加 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=”无”– 此行显示应该配置网卡的IP地址 手动. 如果您将值设置为 “dhcp”,则网卡将接受来自网络中任何 DHCP 服务器的 IP 地址。
  • IPADDR0=”192.168.225.150″ – 此行表示网卡的 IP 地址。 在这里,您可能已经注意到该行后面的数字 0(零) IPADDR. 这表明这张卡有 只有一个IP地址. 如果要设置多个 IP 地址(即虚拟 IP 地址),则添加新行 – for example IPADDR1、IPADDR2 并设置您选择的不同 IP 地址。
  • PREFIX0=”24″ – 此行表示子网掩码,即 255.255.255.0。 在这里,您可以使用 PREFIX1、PREFIX 2 等行指定多个子网。
  • GATEWAY0=”192.168.225.1″ – 这是 NIC 的网关地址。
  • DNS1=”8.8.8.8″ – 名称服务器地址。

设置所有详细信息后,保存并 close 文件。 重新启动网络服务以使更改生效。

# 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

或者,您可以使用 网络管理器 TUI (nmtui) 实用程序来配置 IP 地址。

如果尚未安装,您可以使用以下命令安装它:

# yum install NetworkManager-tui

现在,通过输入以下命令启动 nmtui 实用程序:

# nmtui

选择 “编辑连接” 选项:

从左侧窗格中选择要配置的网卡,然后选择 “编辑” 右侧的选项并按 ENTER 键:

在centos 7上使用nmtui配置ip地址

Enter IP 地址、网络掩码、网关和 DNS 详细信息等。最后,单击 OK 保存更改。

在centos 7服务器上使用nmtui配置ip地址

重新启动网络服务或重新启动系统以使更改生效。

建议阅读:

  • 如何在 Linux 中为单个网卡分配多个 IP 地址

在 Debian / Ubuntu 上配置静态 IP 地址:

所有网卡配置文件都存放在 /etc/网络/ 基于 DEB 的系统中的目录。

要在任何基于 DEB 的系统中配置静态 IP 地址,请执行以下操作。

编辑 /etc/网络/接口/ 任何编辑器中的文件:

$ 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

在基于 Debian 的系统中配置 ip

在基于 Debian 的系统中配置 IP 地址

Save 和 close 文件。

使用命令重启网络服务:

$ sudo systemctl restart [email protected]

或者,只需重新启动系统。

现在,使用以下任一命令检查新的静态 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

ip addr 命令输出 2

“ip addr”命令输出

从 Ubuntu 17.10 开始,我们不再使用 /etc/网络/接口 文件来配置IP地址。 在最近的 Ubuntu 版本中,我们使用 网络计划 实用程序来配置 IP 地址。 要在最近的 Ubuntu 发行版上配置 IP 地址,请参阅以下链接。

  • 如何在 Ubuntu 18.04 LTS 中配置 IP 地址

在 Unix 中配置静态 IP 地址

我们刚刚学习了如何从命令行在 Linux 中配置静态 IP 地址。 现在让我们在 Unix 中配置静态 IP 地址。 出于本教程的目的,我将使用 自由BSD 12.

就像 Linux 一样,我们使用 “如果配置” 命令查找网卡名称。 在这里,我登录为 用户执行以下命令。

# 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>

ifconfig 命令输出 freebsd

这里 em0 是网络接口卡名称。

要配置静态 IP 地址,请编辑 /etc/rc.conf 文件:

# vi /etc/rc.conf

添加/修改如下所示的行。

hostname="freebsd.ostechnix.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"

Save 和 close 文件。

使用以下命令重新启动网络服务:

# /etc/rc.d/netif restart && /etc/rc.d/routing restart

现在,使用命令检查 IP 地址是否已更改:

# ifconfig

ifconfig 命令输出 freebsd 12

要配置网卡从 DHCP 服务器获取 IP 地址,只需添加或修改以下行:

hostname="freebsd.ostechnix.local"
ifconfig_em0="DHCP"

或者,

hostname="freebsd.ostechnix.local"
ifconfig_DEFAULT="DHCP inet6 accept_rtadv"

Save 和 close 文件。 重新启动网络服务或重新启动系统以使更改生效。

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!