Linux配置接口的网络参数
Posted Xavier Jiezou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux配置接口的网络参数相关的知识,希望对你有一定的参考价值。
摘要
本文探讨如何在 Linux 中简单配置网络参数。确切的说,我们主要配置的是主机的 TCP/IP 网络参数。包括 IP 地址,子网掩码,网关,DNS 地址,主机名等等。
引言
我们要完成的任务是这样的,为一台主机配置如下网络参数:
- IP:192.168.71.128
- 子网掩码:255.255.255.0
- 网关:192.168.71.2
- DNS:192.168.71.2
- 主机名:mooc.nbcc.cn
Linux 为配置网络提供了很多工具,其中有图形界面的 Network Manager,也有伪图像界面的 system-config-network,使用这些工具配置网络很方便,但是由于各个发行版本提供的网络配置工具很可能完全不同,并且通过命令行界面远程登录也无法使用这些图像化界面程序,所以我们并不打算使用这些工具来配置网络。而选择直接编辑相关文件来配置网络参数。
用法
网络的 TCP/IP 参数对应的配置文件放在 /etc/sysconfig/network-scripts/
目录下,文件名一般为 ifcfg-ethN
,其中 N 是一个数字,代表主机网卡的序号,默认从 0 开始。当前,我们的配置的主机上只有一张网卡,使用 cat 命令查看该网卡配置信息。
[root@centos ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
HWADDR=52:54:00:57:6e:ee
ONBOOT=yes
PERSISTENT_DHCLIENT=yes
TYPE=Ethernet
USERCTL=no
根据样例任务的要求,我们首先需要将 BOOTPROTO 由 dhcp 改为 static,表示手动指定网络接口的相关参数。使用 vi 打开文件,在其末尾添加下列几行:
- IPADDR=192.168.71.128
- GATEWAY=192.168.71.2
- NETMASK=255.255.255.0
- DNS1=192.168.71.2
[root@centos ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@centos ~]# service network restart # 修改完网络参数后需要重启使参数生效
值得注意的是,一台主机中默认的网关只能有一个。如果你主机上有多个网络接口,不需要在每个网络接口的配置文件中都指定 GATEWAY 这个参数。当然,如果在多个网络接口配置文件都指定了 GATEWAY 参数的话,最后启动的网络接口的该参数生效。
接下来,使用 ifconfig
命令来查看网络接口测试上述修改是否生效。用 ping
命令确认是否能连接上网关。ping 命令用来测试两台主机之间网络的连通性,只需要将主机名或主机 IP 地址跟在后面即可。出现下面的结果就表示能 ping 到网关,主机的 TCP/IP 参数设置的没有问题。否则,就需要检查网络线路是否插好,交换机或路由器是否打开,如果仍然有问题,就需要检查主机或路由器的防火墙设置了。
[root@centos ~]# ifconfig eth0
[root@centos ~]# ping 192.168.71.2
PING 192.168.71.2 (192.168.71.2) 56(84) bytes of data.
64 bytes from 192.168.71.2 (192.168.71.2): icmp_seq=1 ttl=63 time=0.277 ms
64 bytes from 192.168.71.2 (192.168.71.2): icmp_seq=2 ttl=63 time=0.232 ms
64 bytes from 192.168.71.2 (192.168.71.2): icmp_seq=3 ttl=63 time=0.238 ms
...
最后,使用 dig
命令来测试 DNS 配置。dig 是一个查询 DNS 域名的工具命令,它执行 DNS 搜索,显示从受请求的域名服务器返回的答复,用法很简单,将要解析的域名跟在命令后面即可。我们主要用 dig 来检查 DNS 服务器是否能连接上,并给我们的主机提供正确定的域名解析服务。比如检查 www.nbcc.cn
,如果出现类似下面的字样表示 DNS 设置正确。
[root@centos ~]# dig www.nbcc.cn
...
www.nbcc.cn. 60 IN CNAME nbcc-cn.cname.saaswaf.com.
...
;; SERVER: 183.60.83.19#53(183.60.83.19)
...
如果无法正确解析地址的话,首先就要去检查 DNS 的 IP 地址是否正确。然后,再去检查主机的防火墙设置,如果均无问题,就需要向单位的网络管理员确认 DNS 服务器的运行状况了。
下面是设置主机名的操作。这涉及到两个文件。一个是 /etc/sysconfig/network
,另一个是 /etc/hosts
。使用 vi 打开 /etc/sysconfig/network
,修改其 HOSTNAME 为 mooc.nbcc.cn,如果没有 HOSTNAME,直接在末尾添加一行 HOSTNAME=mooc.nbcc.cn
;使用 vi 打开 /etc/hosts,在末尾添加一行 192.168.71.128 mooc.nbcc.cn
。
[root@centos ~]# vi /etc/sysconfig/network # 末尾添加一行 HOSTNAME=mooc.nbcc.cn
[root@centos ~]# vi /etc/hosts # 末尾添加一行 192.168.71.128 mooc.nbcc.cn
[root@centos ~]# service network restart
[root@centos ~]# ping mooc.nbcc.cn # 如果能 ping 通,表示主机名设置无误
最后,我们需要重启一下系统。因为主机中很多网络服务,都需要用到主机名这个参数。要让修改的主机名生效,就必须重启这些服务。最方便的办法就是重启整个系统,我们就不需要去管到底哪些服务是需要重启的。
注意
前面讨论的都是如何手动配置网络,但一般情况下,个人使用的主机,我们一般不会为其配置固定的 IP 地址。往往通过 DHCP 协议为主机自动配置网络。当然,前提是你主机所在的局域网中存在有一台 DHCP 服务器。除 IP 地址,子网掩码和网关外,DHCP 服务器还会为主机指定 NDS 的 IP 地址,某些情况下,甚至还能指定主机名。
拓展
配置连接
网络接口参数修改好之后,就可以为该接口配置连接了。
- 创建连接:
[root@centos ~]# nmcli connection add type ethernet con-name sample ifname eth1
- type:连接类型,ethernet 表示以太网
- con-name:连接名
- ifname:连接绑定接口(如果连接不绑定接口,则可以用在任意一个合适的设备上,如果绑定了,就只有绑定设备才能用,其它设备无法使用)
- 编辑连接
[root@centos ~]# nmcli connection modify sample ipv4.address 192.168.177.139/24
[root@centos ~]# nmcli connection modify sample ipv4.gateway 192.168.177.2
[root@centos ~]# nmcli connection modify sample ipv4.method manual
- 启用连接
[root@centos ~]# nmcli connection up sample
[root@centos ~]# nmcli device status
[root@centos ~]# nmcli device show eth1
[root@centos ~]# ping 192.168.177.2
改主机名
上述教程中,我们讲了通过修改 /etc/sysconfig/network
和 /etc/hosts
文件来修改主机名的方法。现在,我们介绍一种更为简单的,通过命令修改主机名的方法。修改好主机名之后,我们就能通过主机名而非 IP 地址访问主机了。免去了记忆 IP 地址的麻烦,也便于主机更换 IP 地址。
假如,这里一个任务是需要将当前主机名修改为 host.sample.cn。
- 查看当前主机名:
nmcli general hostname
或hostname
或cat /etc/hostname
- 修改主机名:
nmcli general hostname host.sample.cn
(事实上,修改的主机名写入 /etc/hostname 文件中,因此也可以使用 vi 修改该文件来指定主机名) - 更新主机名:
systemctl restart systemd-hostnamed
(确保主机中的其它进程和程序也意识到主机名发生了变化) - 测试主机名:
ping host.sample.cn
(能够 ping 通,就说明主机名修改好了)
接下来就是要让其它主机也能使用主机名来访问本机。如主机仅仅在小范围局域网内使用,最方便的做法是让用户将主机名和 IP 地址写入客户端机器的 hosts 文件中。假设客户端是一台 Windows PC 机器,通过如下配置就能使其用主机名来访问我们刚刚设置好的主机:
- ise 打开 hosts 文件:
ise C:\\Windows\\System32\\drivers\\etc\\hosts
- 打开后在文件末尾添加一行并保存:
192.168.177.139 host.sample.cn
- 测试:
ping host.sample.cn
(能 ping 通,就表示 hosts 已经修改好了)
顺便一提,如果客户端是 Linux 主机,那么 hosts 文件的路径是 /etc/hosts
,添加内容一样。最后,如果服务器要在较大范围内使用,那么还是要将主机名和 IP 地址提交给主机所在域的 DNS 服务器,让 DNS 服务器来提供主机域名的解析服务。
参考
以上是关于Linux配置接口的网络参数的主要内容,如果未能解决你的问题,请参考以下文章