Linux网络设置

一、查看及测试网络

1、查看网络配置

查看及测试网络配置是管理Linux网络服务的第一步,下面介绍Linux系统中的一些查看及测试命令。

1)ifconfig命令–查看网络接口地址

主机的网卡通常称为网络接口,在Linux系统中,使用ifconfig命令可以查看网络接口的地址配置信息。

①查看活动的网络接口设备

执行“ifconfig”命令且不带任何选项和参数时,将显示当前主机中已启用(活动)的网络接口信息。

上述输出结果中:

  • 第一部分“ens33”是网卡名称,包括网卡的ip地址、网络地址、掩码地址等。

  • 第二部分“lo”是回环网络接口,是“loopback”的缩写,是一个虚拟的网络接口,IP地址默认为“127.0.0.1”,回环地址通常仅用于对本机的网络测试。

  • 第三部分“virbr0”是虚拟网桥网卡(virtual bridge)的相关信息。

    如果需要查看所有网络接口信息,可以在“ifconfig”命令后添加“-a”选项,即执行命令“ifconfig -a”。

②查看指定的网络接口信息

当只需要查看其中某一个网络接口的信息时,可以使用网络接口的名称作为ifconfig命令的参数。例如执行“ifconfig ens33”命令只查看网卡ens33的配置信息。

从上述命令显示的结果中,可以获知ens33网卡的一些基本信息,如下所述:

  • ether:表示网卡的物理地址(MAC地址)。
  • inet:表示网络接口的IP地址。
  • broadcast:表示网络接口所在网络的广播地址。
  • netmask;表示网络接口的子网掩码。

除此外,还可以通过“TX"”RX"等信息了解通过该网络接口发送和接收的数据包个数、流量等更多属性。

2)ip/ethtool命令–查看网络接口

ip/ethtool与ifconfig命令相同,也是查看网络接口的命令,但是功能更为强大。常用的命令有:

  • ip link:查看网络接口的数据链路层信息。
  • ip address:查看网络接口的网络层信息。
  • ethtool eth0:查看指定网络接口的速率、模式等信息。
3)route命令–查看路由表条目

直接执行route命令可以查看当前主机中的路由表信息。

上述输出结果中,Destination列对应目标网段的地址,Gateway列对应下一跳路由器的地址,Iface列对应发送数据的网络接口。

当目标网段为default时,表示此行是默认网关记录;当下一跳地址为“ * ”时,表示目标网段与本机是直接相连的。

4)netstat命令–查看网络连接情况

通过netstat命令可以查看当前系统的网络连接状态、路由表、接口统计等信息,常用的选项有:

  • -a:显示当前主机中所有活动的网络连接信息。

  • -n:以数字的形式显示相关的主机地址、端口等信息。

  • -r:显示路由表信息。

  • -l:显示处于监听(listening)状态的网络连接及端口信息。

  • -t:查看TCP协议相关的信息。

  • -u:显示UDP协议相关的信息。

  • -p:显示与网络连接相关联的进程号、进程名称信息(需root权限)。

    通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的TCP连接信息,同时显示对应的进程信息。

结合命令管道使用grep命令,还可以在输出结果中过滤指定的记录。例如,执行下列操作可查看本机中TCP协议相关的信息(相当于执行“netstat -anp”命令)服务程序。

2、测试网络连接

1)ping命令–测试网络连通性

使用ping命令可以向目的主机持续的发送测试数据包,并显示反馈结果,直到按Ctrl+C组合键中止测试,并显示最终结果。

运行ping命令测试网络连通性时,如果不能获得从目标主机发回的反馈数据包,则表示在本机到目标主机之间存在网络连通性故障。例如反馈信息”Destinatin Host Unreachable“,表示目的主机不可到达,可能目标地址不存在或者主机已经关闭;如反馈”Network is unreachable“信息,则表示没有可用的路由记录(如默认网关),无法到达目标主机所在的网络

当网络中存在影响通信过程稳定性的因素(如网卡故障、病毒/网络攻击等),使用ping测试命令可能看到”Request timeout“的反馈结果,表示与目标主机间的连接超时(数据包响应缓慢或丢失)。当目标主机有严格的防火墙限制时,也可能收到”Request timeout“反馈结果。

2)traceroute–命令跟踪数据包的路由途径

使用traceroute命令可以测试从当前主机到目的主机之间经过了哪些网络节点,并显示各中间节点的连接状态(响应时间)对于无法相应响应的节点,连接状态将显示为“ * ”。

​ traceroute命令能比ping命令更加准确的定位网络连接的故障点(中断点),因此在网络测试和排错过程中,通常先使用ping命令测试与目的主机的网络连接,如有故障,再使用traceroute命令跟踪查看定位故障的网络节点。

3)nslookup命令–测试DNS域名解析

当域名解析出现异常时,将无法使用域名的形式访问网络中的Web站点、电子邮件系统等服务。nslookup命令是用来测试域名解析的专用工具,指定解析的目标域名作为参数即可。例如执行“nslookup www,baidu,com”命令,根据输出结果查看域名www.baidu.com对应的IP地址是多少。

如果能够成功反馈要查询的域名对应IP地址,则表示域名解析没问题。否则需要根据实际反馈情况来判断故障原因。

二、设置网络地址参数

在Linux主机中,手动修改网络配置包括两种最基本的方法。

  • 临时配置:通过命令行修改当前正在使用的网络地址,修改后立即可以生效。但由于所做修改没有固定地存放在静态的文件中,当重启network服务或者重启主机后会失效,一般在调试网络的过程中使用。
  • 固定配置:通过配置文件来存放固定的各种网络地址,需要重启network服务或重启主机后才会生效,但相当于“永久配置”,一般在需要为服务器设置固定的网络地址时使用。

1、使用网络配置命令

1)ifconfig命令–修改网卡的地址、状态

ifconfig命令可以用来查看网卡配置,也可以用作修改网卡的IP地址、子网掩码,还可以用作绑定虚拟网络接口、激活或者停用网络接口。

①修改网卡的IP地址、子网掩码

需要设置网卡的地址时,命令格式如为:

ifconfig 网络接口名称 IP地址 [netmask 子网掩码]

或者

ifconfig 网络接口名称 IP地址 [/子网掩码长度]

指定新的IP地址和子网掩码后,原有的地址失效。例如执行命令“ifconfig ens33 192.168.10.128/24"或者命令”ifconfig ens33 192.168.10.128 netmask 255.255.255.0“表示将网卡ens33的IP地址设置为192.168.10.128,子网掩码长度为24。

②禁用、激活网络接口

结合”down”或者“up”开关选项可以临时禁用或者重新激活指定的网络接口,例如执行命令“ifcofig ens33 down”(也可以直接”ifdown ens33“)来禁用网卡ens33。

③为网卡绑定虚拟接口

在对服务器网络调试时,可能需要临时在同一个网卡上使用一个新的IP地址,但是又不能覆盖原有IP避免服务程序不可用,这时可以网卡绑定一个虚拟网络接口,并为虚拟接口设置新的IP地址。例如,下面操作为ens33网卡配置了虚拟接口ens33:0并将该虚拟接口IP设置为192.168.10.188。

2)route命令–添加、删除静态路由记录

route命令不仅可以用于查看路由表信息,也可以用于删除、添加静态的路由表条目。

①添加、删除到指定网段的路由记录

通过“route add”操作可以添加路由记录,结合“-net”选项指定目标网段的地址,结合“gw”指定下一跳的路由器IP地址。例如下面操作添加到192.168.20.0/24网段的静态路由,指定下一跳地址为192.168.30.188(需要与本机其中一个接口的IP地址在同一网段内)。

通过“route del”操作可以删除路由记录,结合“-net”选项指定对应路由记录中目标网段的地址即可。例如删除上面添加的到182.168.20.0/24网段的静态路由可以执行下面操作。

②添加、删除默认网关记录

添加、删除默认网关记录时与添加、删除静态路由记录命令格式类似,指定网段时只需将”-net“指明的网段改成使用“defaul”即可。

例如执行下面操作,删除默认网关192.168.10.2/24,再添加新的默认网关192.168.10.3/24。

2、修改网络配置文件

1)网络接口配置文件

网络接口配置文件默认位于目录“/etc/sysconfig/network-scripts/"中,文件名格式为”ifcfg-XXX“,其中”XXX“是网络接口名称。

在网卡配置文件ens33中,可以看到设置静态IP地址的部分内容:

其中部分配置项含义及作用为:

  • DEVICE:设置网络接口的名称。
  • ONBOOT:设置网络接口是否在Linux系统启动时激活。
  • BOOTPROTO:设置网络接口的配置方式,值为”static“时表示使用静态指定的IP地址,为”dhcp“时则表示通过DHCP的方式动态获取地址。
  • IDADDP/NETMASK/GATEWAY:网络接口的IP地址、子网掩码及默认网关位置。
2)启用、禁用网络接口配置

在CentOS7中,当修改了网络接口的配置文件后,若需要使新的配置生效,可以重启network服务或者重启主机。命令”systemctl restart network.service”重新启用所有的网络接口。

如果只是禁用、启用某一个网络接口,可以使用命令fdown或ifup,以网络接口名称作为参数。

3)主机名称配置文件

CentOS7中,主机名称配置文件为/etc/hostname,命令hostnamectl可以用于修改此文件信息。

例如执行“hostnamectl set-hostname fp"将主机名更改为”fp“。

4)域名解析配置文件
①指定为本机提供DNS解析的服务器地址

/etc/resolv.conf文件中记录了本地默认使用的DNS服务器的地址信息,对该文件所做的修改会立刻生效。

Linux系统中最多可以指定三个(第三个以后将被忽略)不同的DNS服务器地址,优先使用第一个DNS服务器地址,例如执行下列操作可以指定默认使用的两个DNS服务器地址分别为114.114.114.114和8.8.8.8(也可以vim进入配置文件再输入)。

②本地主机映射文件

/etc/hosts文件中记录着主机名与IP地址的映射关系,一般用来保存经常需要访问的主机的信息。当访问一个位置的域名时,先查找该文件中是否有相应的映射关系,如果没有再去向DNS服务器查询。

例如在/etc/hosts文件中添加”10.10.10.10 www.abc.com“的映射记录,则当访问网站www.abc.com时,将会直接向IP地址10.10.10.10发送Web请求而省略向DNS服务器解析IP地址的过程。

对于经常访问的网站,可以通过在/etc/hosts文件中添加正确的IP地址与域名映射记录,减少DNS查询过程,从而提升上网速度。

三、小结

  • 使用ifconfig命令可以查看、配置网络接口的属性。
  • 使用route命令可以查看、管理主机的路由表记录。
  • 使用ping和traceroute命令可以测试主机的网络连接。
  • 配置文件ifcfg-ens33、hostname、hosts、resolv.conf等可以分别用于设置主机的IP地址、主机名、域名映射、DNS服务器地址等参数。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐