01-Linux网络设置

1、查看及测试网络

查看及测试网络配置是管理Linux网络服务的第一步,其中的大多数命令以普通用户的权限就可以完成操作,但普通用户在执行/sbin目录中的命令时需要指定命令文件的决对路径。

1.1 查看网络接口地址

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

注:在不带任何选项和参数执行ifconfig命令时,将显示当前主机中已启用的网络接口信息。

例如,直接执行ifconfig命令后可以看到ens33、lo这两个网络接口的信息,如下图:

在上图显示结果中,ens33对应为第一块物理网卡,lo对应为虚拟的回环接口。

补充:

  • ens33:第一块以太网卡的名称,en是EtherNet的缩写,表示网卡类型为以太网;s表示热插拔插槽上的设备,数字33表示插槽编号。(注意,在不同的操作系统上,网络接口名称可能不同)
  • lo:"回环"网络接口,lo是loopback的缩写,它并不代表真正的网络接口,而是一个虚拟的网络接口,其IP地址默认是127.0.0.1(注意,回环地址通常仅用于对本机的网络测试)

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

可以使用网络接口的名称作为ifconfig命令的参数,来查看其中某一个网络接口的信息(不论该网络接口是否处于激活状态)。

例如,执行ifconfig ens33命令后可以只查看网卡ens33的配置信息,如下图:

注: RX------接收的数据包

TX------发送的数据包

在上图中,可以获知ens33网卡的一些基本信息:

inet------表示网络接口的IP地址,如192.168.10.100

netmask------表示网络接口的子网掩码,如255.255.255.0

broadcast------表示网络接口所在网络的广播地址,如192.168.10.255

ether------表示网络接口的物理地址(MAC地址),如00:0c:29:76:99:66

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

1.3 查看主机名称

在Linux系统中,相当一部分网络服务都会通过主机名来识别主机,如果主机名配置不当,可能会导致程序功能出现故障。

可使用hostname命令来查看当前主机的主机名(不添加任何选项或参数),如下图:

1.4 查看路由表的条目

路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息。

可直接执行route命令来查看当前主机中的路由表信息,如下图:

在图中的输出结果里:

  • Destination列------对应目标网段的地址(当目标网段是default时,表示此行是默认网关记录)
  • Gateway列------对应下一跳路由器的地址(当下一跳为gateway时,表示目标网段是与本机直接相连的)

注:直接执行route命令时,无法直接看出默认网关地址。

  • iface列------对应发送数据的网络接口

route若结合-n选项使用,可以将路由记录中的地址显示为数字形式(这在路由表条目较多的情况下,能够加快执行速度)。

例如,下图中执行route -n命令后,输出信息中的gateway地址将显示为:192.168.10.254,

默认网关记录中的default也将显示为0.0.0.0

1.5 查看网络连接情况

(1)netstat命令------查看网络连接状况

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

-a------显示主机中所有活动的网络连接信息

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

-r------显示路由表信息

-I------显示处于监听状态的网络连接及端口信息

-t------查看TCP相关的信息

-u------显示UDP相关的信息

-p------显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)

**注:通常使用-anpt组合选项,以数字形式显示当前系统中所有的TCP连接信息(同时会显示对应的进程信息),**如下图:

还可结合管道符使用,如下图中执行命令后,可查看本机中是否有监听TCP25端口的服务程序:

(2)ss命令------查看网络连接状况

它是Socket Statistics的缩写,主要用于获取socket的统计信息,可以显示和netstat命令类似的输出内容。

但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

注:使用ss命令之前要先确保iproute程序包已被安装(可通过yum方式进行安装)。

ss命令常用的选项有:

-h --help 通过该选项获取更多的使用帮助

-V --version 显示软件的版本号

-t --tcp 显示TCP协议的sockets

-u --udp 显示UDP协议的sockets

-l --listening 只显示处于监听状态的端口

-p --processes 显示监听端口的进程

-r --resolve 把IP解释为域名,把端口号解释为协议名称

注:在ss命令的输出结果中,可以提供TCP和UDP的socket信息,以及各种服务建立的持久连结。

例如,执行下图中的命令可以显示TCP协议下已经建立的连接:

其中,Local Address:Port------表示本地监听的IP和端口,

Peer Address:Port------表示远程连接的IP和端口

1.6 测试网络连接

要访问网络服务的前提是网络连接处于正常状态,若网络连接不稳定,甚至无法连接时

用户是无法正常访问网络服务的。所以使用网络连接测试的命令来确定故障点就先尤为重要了。

(1)测试网络连通性

使用ping命令可以向目标主机持续地发送测试数据包,并获得反馈结果(直到按Ctrl+C的组合键后终止测试)

例如,下图中的命令可以测试从本机到另一台主机192.168.10.101的连通性情况:

注:使用ping命令测试连通性时,如果本主机和目标主机之间连接正常,将会收到返回的数据包。

若不能获得从目标主机发回的反馈数据包------表示在本主机到目标主机之间存在网络连通型故障:

  • 若看到Destination Host Unreachable的反馈信息------表示目标主机不可达(可能目标地址不存在或者主机已经关闭)
  • 若看到Network is unreachable的反馈信息------表示没有可用的路由记录(如默认网关),无法到达目标主机所在的网络
  • 若看到Request timeout的反馈结果------表示数据包响应缓慢或丢失(与目标主机之间的连接超时)

补充:当目标主机有严格的防火墙限制时,也可能收到Request timeout的反馈结果。

在xshell上关闭防火墙的命令是:systemctl stop firewalld,如下图:

(2)跟踪数据包的路由途径

使用traceroute命令之前,需要先通过yum方式安装traceroute软件包。

traceroute命令------可用于测试从当前主机到目的主机之间经过了哪些网络节点(并显示各中间节点的连接状态------即响应时间)。

注:对于无法响应的节点,连接状态将显示为*。

如下图中,可以看出从本机到目标主机192.168.7.7之间,中间需要跨越一个

路由器192.168.4.1:

虽然使用traceroute命令能够比ping命令更加准确的定位网络连接的故障点,但是traceroute的执行速度会比ping命令稍慢。

通常情况下,会先用ping命令测试与目标主机的网络连接,如果发现网络连接有故障,再使用traceroute命令跟踪查看是在哪个中间节点存在故障。

如下图:

2、测试DNS域名解析

当域名解析出现故障的时候,将无法使用域名的形式访问网络中的Web站点、电子邮件系统等服务。

2.1 使用nslookup命令来测试DNS域名解析

nslookup------是用来测试域名解析的专用工具(使用时指定要解析的目标域名作为参数即可)。

注:在使用nslookup命令之前,要先通过yum安装bind-utils程序包。

例如,在下图中执行命令后,nslookup程序将提交查询请求,询问站点www.baidu.com对应得IP地址是多少:

上图中,Server那一行指出了所使用的DNS服务器是114.114.114.114

Non-authoritative answer:下面是DNS解析反馈的结果。

若能成功反馈出要查询域名的IP地址,则表示域名解析没有问题,否则的话:

  • 若出现no severs could be reached的信息------表示不能连接到指定的DNS服务器
  • 若出现can't find xxx.yyy.zzz:NXDOMAIN的信息------表示要查询的域名不存在

2.2 使用dig命令来测试域名解析

dig命令是一个用于查询DNS域名服务器的灵活的工具,它相比于nslookup命令可以得到更多的域名信息。

dig命令也可以用来测试域名解析,大多数系统管理员都是利用dig作为DNS问题的故障判断工具,因为它具有灵活性好、易用、输出清晰等特点。

注:dig命令可以用来查询单个主机的信息。

在使用dig查询的过程中,可以指定DNS服务器(如果不指定DNS服务器,默认会使用/etc/resolve.conf里面的地址作为DNS服务器):

3、设置网络地址参数

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

  • 临时配置:通过命令行直接修改当前正在使用的网络地址(这种方式简单迅速),修改后立即可以上生效,一般在调试网络的过程中使用。

注:由于这种方式所做的修改并没有固定的存放在静态的文件中,因此当重启network服务或重启主机后将会失效。

  • 固定配置:通过配置文件来存放固定的各种网络地址,需要重启network服务或重启主机后才会生效。

注:这种方式操作上要相对复杂一些,但相当于永久配置,一般在需要为服务器设置固定的网络地址时使用。

3.1 使用网络配置命令

(1)、修改网卡的地址、状态

使用ifconfig命令不仅可以查看网卡的配置,还可以修改网卡的IP地址、子网掩码,还可以绑定虚拟网络接口、激活或禁用网络接口。

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

注:当不指定子网掩码时,将使用IP地址所在分类的默认子网掩码。

指定新的IP地址和子网掩码后,原有的地址将会失效。

补充:使用这种命令修改的IP地址和子网掩码,虽然会立即生效,但是在重启主机之后修改就不存在了。

例如,执行下图中的命令,可以将网卡ens33的IP地址设置为192.168.10.192,子网掩码长度为24:

(2)禁用、激活网络接口

可以使用down和up命令,来临时禁用或重新激活指定的网络接口。

注:网络接口被禁用之后,将无法使用该网络接口与其他主机进行连接。

例如,执行下图中的命令后,将禁用网卡ens33:

禁用之后,可在虚拟机上使用ip a命令查看一下当前的IP信息,如下图:

会发现ens33的部分被禁用了,此时,该网络的IP地址将不能使用,

若要重新使用需执行下图中的命令:

然后再使用ifconfig命令查看一下ens33的状态,如下图:

(3)、为网卡绑定虚拟接口

在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的IP地址,但是又不能覆盖原有的IP地址而导致服务程序不可用。这时候,就可以为网卡绑定一个虚拟的网络接口,然后和为虚网络接口设置新的IP地址(相当于一块网卡配多个IP地址)。

例如,执行下图中的操作,可以为网卡ens33添加一个虚拟接口的ens33:0,

并将这个虚拟接口的IP地址设置为172.17.17.17。虚拟接口的IP地址和网卡原有的IP地址都可以正常使用:

注:可以根据需要来添加更多的虚拟接口,如ens33:1,ens33:2等

3.2 添加、删除静态路由记录

route命令不仅可用于查看路由表信息,还可添加、删除静态的路由表条目(包括设置默认网关地址,默认网关记录是一条特殊的静态路由条目)

(1)添加、删除到指定网段的路由记录

通过route add命令可以添加路由记录。

结合-net选项------可指定目标网段的地址;

结合gw选项可指定下一跳路由器的IP地址。

例如,若要使本机访问另一个网段192.168.3.0/24,那么数据包都应该发送给192.168.4.254,如下图:

使用route del命令可以删除路由记录(结合-net选项来指定对应路由记录中目标网段的地址即可)。例如,下图中的命令可以删除上文中添加到192.168.3.0/24网段的静态路由条目:

(2)添加、删除默认网关记录

与添加、删除静态路由记录的命令格式类似,但指定目标网段时只需简单地使用default表示即可,

如下图中的命令执行后,将删除已有的到192.168.4.1的默认网关记录,再添加新的192.168.4.254的默认网关记录:

注:在同一个主机的路由表中只应有一条默认网关记录,若同时存在多条默认网关记录,则可能会导致该主机的网络连接出现故障。

3.3 修改主机的名称

用hostname命令------可显示、修改当前主机的名称。

如下图,执行命令后可将主机名改为www.bdqn.com

4、修改网络配置文件

当需要为Linux服务器设置固定的网络地址时,若仍使用ifconfig等网络命令来进行设置,将会大大降低服务器运行的可靠性。

若要使Linux主机在重启系统以后仍然能够使用相同的网络配置,那么直接修改配置文件是最好的方法。

4.1 网络接口配置文件

网络接口配置文件默认位于/etc/sysconfig/network-scripts中,文件名的格式是ifcfg-XXX(其中的XXX是网络接口的名称)。

例如说,网卡ens33的配置文件是ifcfg-ens33,回环接口lo的配置文件是ifcfg-lo。如下图所示,可查看当前网卡中的文件主要有哪些:

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

上图中各配置项的含义是:

  • TYPE------设置网卡类型,如Ethernet表示以太网
  • BOOTPROTO------设置网络接口的配置方式

static------表示使用静态指定的IP地址;

dhcp------表示通过DHCP的方式动态获取地址

  • DEVICE------设置网络接口的名称
  • ONBOOT------设置网络接口是否在Linux操作系统启动时激活
  • IPADDR------设置网络接口的IP地址
  • NETMASK------设置网络接口的子网掩码
  • GATEWAY------设置网络接口的默认网关地址

4.2 启用、禁用网络

修改了网络接口的配置文件之后,若想要使新的配置生效,可以重启network服务或者重启主机。重启命令可以用下图中的操作:

注:如果只是禁用、启动某一个网络接口,可分别使用两个控制脚本ifdown、 ifup命令。

例如,下图中的操作会先关闭ens33,然后根据配置文件启用ens33网卡:

4.3 修改主机名称配置文件

(1)若要修改Linux操作系统的主机名,可以修改配置文件/etc/hostname,

将要设置的主机名写入到此文件内。

注:如果文件内输入了多行内容,此时系统仅仅识别第一行的内容为系统主机名。

例如,执行下图中的操作之后,可以将主机名由默认的localhost.localdomain改为www.bdqn.com

如果要让其生效,需要重启Linux系统。

(2)还可以通过hostnamectl命令来修改主机名,如下图:

注:这种方法修改后的主机名,不用重启Linux系统即可生效。

5、域名解析配置文件

在Linux系统中,有两个与域名解析相关的配置文件:

5.1 指定为本机提供DNS解析的服务器地址

在/etc/resolv.conf文件中记录了本机默认使用的DNS服务器的地址信息,

(对该文件所做的修改将会立刻生效)。

注:在Linux系统中,最多可以指定3个不同的DNS服务器地址,优先使用第一个DNS服务器。

例如,执行下图中的命令可以指定默认使用的两个DNS服务器地址分别位于

202.106.0.20和202.106.148.1:

5.2 本地主机映射文件

在/etc/hosts文件中记录着一份主机名与IP地址的映射关系表,一般用来保存经常需要访问的主机的信息。

注:当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向DNS服务器查询。

例如,若在/etc/hosts文件中添加119.75.218.70 www.baidu.com的映射记录,则当访问网站www.baidu.com时,将会直接向IP地址119.75.218.70发送Web请求,省略了向DNS服务器解析IP地址的过程,如下图:

  • 注:对于经常访问的一些网站,可以通过在/etc/hosts文件里添加正确的映射记录,来减少DNS查询的过程,从而提高上网速度。
  • 若添加了错误的映射记录,则可能导致网站访问出现异常。
  • 因为hosts文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络。
相关推荐
linkingvision2 分钟前
H5S 视频监控AWS S3 对象存储
linux·运维·aws·视频监控s3对象存储
doupoa14 分钟前
Fabric 服务端插件开发简述与聊天事件监听转发
运维·python·fabric
BillKu14 分钟前
服务器多JAR程序运行与管理指南
运维·服务器·jar
QQ27402875644 分钟前
BlockMesh Ai项目 监控节点部署教程
运维·服务器·web3
belldeep44 分钟前
WSL 安装 Debian 12 后,Linux 如何安装 vim ?
linux·debian·vim
wqqqianqian1 小时前
国产linux系统(银河麒麟,统信uos)使用 PageOffice自定义Word模版中的数据区域
linux·word·自定义·pageoffice·数据区域
小疆智控1 小时前
数字化工厂升级引擎:Modbus TCP转Profinet网关助力打造柔性生产系统
服务器·网络·tcp/ip
南棱笑笑生2 小时前
20250512给NanoPi NEO core开发板在Ubuntu core20.04系统更新boot.img
linux·运维·ubuntu
XMYX-02 小时前
Linux du 命令终极指南:从基础到精通
linux·服务器
小锋学长生活大爆炸2 小时前
【教程】Docker更换存储位置
运维·docker·容器