主机的网络接口卡(网卡)通常称为网络接口。在 Linux 操作系统中,使用 ifconfig 命令可以查看网络接口的地址配置信息(Interface Configuration)。
注:若没有 ifconfig 命令的,需要先通过 yum 方式安装 net-tools 软件包,才有 ifconfig 命令。
第一种方法查看 [root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.8 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::8c58:4d06:fde9:2d7d prefixlen 64 scopeid 0x20<link> ether 00:0c:29:fe:06:f3 txqueuelen 1000 (Ethernet) RX packets 684409 bytes 987345087 (941.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 175406 bytes 15317449 (14.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 135 bytes 12160 (11.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 135 bytes 12160 (11.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 第二种方法查看 [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:fe:06:f3 brd ff:ff:ff:ff:ff:ff inet 192.168.10.8/24 brd 192.168.10.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::8c58:4d06:fde9:2d7d/64 scope link
ens33:第一块以太网卡的名称。“ens33”中的“en”是“EtherNet”的缩写,表示网卡类型为以太网。
lo:“回环”网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口, 其 IP 地址默认是“127.0.0.1”。回环地址通常仅用于对本机的网络测试。
inet:表示网络接口的 IP 地址。
netmask:表示网络接口的子网掩码。
broadcast:表示网络接口所在网络的广播地址。
ether:表示网络接口的物理地址(MAC 地址)。
“TX”通过该网络接口发送的数据包个数、流量等。
“RX”通过该网络接口接收的数据包个数、流量等。
在 Linux 操作系统中,相当一部分网络服务都会通过主机名来识别主机,如果主机名配置不当,可能会导致程序功能出现故障。使用 hostname 命令可以查看当前主机的主机名。
方法一 [root@localhost ~]# hostname//查看原来的主机名 localhost.localdomain [root@localhost ~]# hostname www//设置新的主机名 [root@localhost ~]# hostname//确认新的主机名 www [root@localhost ~]# bash//启用新的Shell 会话,查看变化 [root@www ~]#hostname www 方法二 [root@localhost ~]# vi /etc/hostname www 通过修改/etc/hostname 来更改的主机名,如果要让其生效,需重启 Linux 系统。 方法三 [root@localhost ~]# hostnamectl set-hostname www //设置新的主机名 [root@localhost ~]# bash//启用新的Shell 会话,查看变化 [root@www ~]#hostname www
[root@localhost ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 ens33 192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.10.2 0.0.0.0 UG 100 0 0 ens33 192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
Destination 列对应目标网段的地址
Gateway 列对应下一跳路由器的地址
Iface 列对应发送数据的网络接口
若结合“-n”选项使用,可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度。
netstat 命令
通过 netstat 命令可以查看当前操作系统的网络连接状态、路由表、接口统计等信息, 它是了解网络状态及排除网络服务故障的有效工具。
netstat 命令常用的选项:
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
-n:以数字的形式显示相关的主机地址、端口等信息。
-r:显示路由表信息。
-l:显示处于监听(Listening)状态的网络连接及端口信息。
-t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息。
-u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息。
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)。
通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显
示对应的进程信息。
[root@localhost ~]# netstat -anpt Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1338/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1024/sshd
ss 命令
ss 命令也可以查看网络连接情况,它是 Socket Statistics 的缩写,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。要想使用 ss 命令,首先确保 iproute 程序包已被安装,可以通过 yum 方式进行安装。
ss 命令常用的选项
-h:–help 通过该选项获取更多的使用帮助。
-V:–version 显示软件的版本号。
-t:–tcp 显示 TCP 协议的 sockets。
-u:–udp 显示 UDP 协议的 sockets。
-n:–numeric 不解析服务的名称,如 “22” 端口不会显示成 “ssh”。
-l:–listening 只显示处于监听状态的端口。
-p:–processes 显示监听端口的进程。
-a: --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接。
-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。
[root@localhost ~]# ss -anpt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:111 *:* users:(("systemd",pid=1,fd=43)) LISTEN 0 5 192.168.122.1:53 *:*
“Local Address:Port” 表示本地监听的 IP 和端口
“Peer Address:Port”表示远端连接的 IP 和端口
用户访问网络服务的前提是网络连接处于正常状态。若网络连接不稳定,甚至无法连接, 用户则无法正常访问网络服务。因此,当网络连接出现问题时,需要通过测试网络连接的命令来确定故障点。
使用 ping 命令可以向目标主机持续地发送测试数据包,并显示反馈结果,直到按 Ctrl
+C 组合键后中止测试,并显示最终统计结果。
[root@localhost ~]# ping www.baidu.com PING www.wshifen.com (103.235.46.39) 56(84) bytes of data. 64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=1 ttl=128 time=210 ms 64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=2 ttl=128 time=210 ms [root@localhost ~]# ping 192.168.10.1 PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data. 64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=0.182 ms 64 bytes from 192.168.10.1: icmp_seq=2 ttl=64 time=0.355 ms
Ping检查连通性有五个步骤:
使用ipconfig /all 或 ifconfig 观察本地网络设置是否正确。
Ping 127.0.0.1,127.0.0.1 回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好。
Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误。
Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)。
Ping后返回信息的分析。
Request timed out
这是大家经常碰到的提示信息,很多文章中说这是对方机器置了过滤ICMP数据包,从上面工作过程来看,这是不完全正确的,至少有下几种情况。
对方已关机,或者网络上根本没有这个地址。
对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时的信息。
对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)。
怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。
错误设置IP地址
Destination host Unreachable
对方与自己不在同一网段内,而自己又未设置默认的路由
网线 出了故障
这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”。
Source quench received
这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
Unknown host——不知名主机
这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
No answer——无响应
这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。
Ping 127.0.0.1:127.0.0.1是本地循环地址
如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。
no rout to host
网卡工作不正常。
transmit fai led ,error code
10043网卡驱动不正常
unknown host name
DNS配置不正确。
若服务器上没有 traceroute 命令,可通过 yum 方式安装 traceroute 软件包。traceroute 命令可以用于测试从当前主机到目的主机之间经过了哪些网络结点,并显示各中间结点的连接状态(响应时间)。对于无法响应的结点,连接状态将显示为“*”。
traceroute 命令能够比 ping 命令更加准确地定位网络连接的故障点(中断点),因此执行速度会比 ping 命令稍慢。在网络测试与排错过程中,通常会先使用 ping 命令测试与目的主机的网络连接,如果发现网络连接有故障,再使用 traceroute 命令跟踪查看是在哪个中间结点存在故障。
方法一 [root@localhost ~]# traceroute www.baidu.com traceroute to www.baidu.com (104.193.88.123), 30 hops max, 60 byte packets 1 gateway (192.168.10.2) 0.050 ms 0.026 ms 0.023 ms 2 * * * 3 * * * 方法二 [root@localhost ~]# mtr www.baidu.com My traceroute [v0.85] localhost.localdomain (0.0.0.0) Mon Nov 2 10:00:17 2020 Resolver: Received error response 2. (server failure)er of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 192.168.10.2 0.0% 19 0.2 0.4 0.2 1.2 0.0 2. 192.168.1.1 0.0% 19 1.7 1.4 1.1 1.9 0.0 3. 192.168.0.1 0.0% 18 3.2 2.1 1.4 3.2 0.2 4. 100.94.128.1 0.0% 18 56.8 16.4 2.9 103.3 26.7 5. 58.217.231.37 0.0% 18 5.0 4.9 3.0 6.9 1.0
nslookup命令
当域名解析出现异常时,将无法使用域名的形式访问网络中的 Web 站点、电子邮件系统等服务。nslookup 命令是用来测试域名解析的专用工具,使用时只要指定要解析的目标域名作为参数即可。若在执行过程中提示无法找到nslookup 命令,可通过yum 安装bind-utils 程序包的方式来解决。
[root@localhost ~]# nslookup www.caidu.com Server:8.8.8.8 //所使用的DNS 服务器 Address:8.8.8.8#53 Non-authoritative answer: //DNS 解析的反馈结果 Name:www.caidu.com Address: 45.76.29.156
若出现“…… no servers could be reached”的信息,则表示不能连接到指定的DNS 服务器。
若出现“…… can’t find xxx.yyy.zzz: NXDOMAIN”的信息, 则表示要查询的域名不存在。
dig 命令
[root@localhost ~]# dig baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> baidu.com // dig 的版本及输入参数 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37833 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 //以上显示服务器返回的信息,status 为 NOERROR 状态说明查询成功 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;baidu.com.INA //显示通过 A 记录要查询的域名 ;; ANSWER SECTION: baidu.com.498INA220.181.38.148 baidu.com.498INA39.156.69.79 //经DNS 返回后的查询结果 ;; Query time: 41 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: 一 11月 02 10:14:31 CST 2020 ;; MSG SIZE rcvd: 70 //查询后的一些统计信息,比如用了 41 毫秒,查询 DNS 服务器的IP 地址,查询的时间等等 dig 在查询过程中,还可以指定特点的 DNS 服务器。 如果不指定 DNS 服务器,默认会使用/etc/resolve.conf 里面的地址作为 DNS 服务器。 [root@localhost ~]# dig @8.8.8.8 baidu.com
临时配置:通过命令行直接修改当前正在使用的网络地址,修改后立即可以生效。 这种方式操作简单快速、执行效率高,一般在调试网络的过程中使用。但由于所做的修改并没有固定地存放在静态的文件中,因此当重启 network 服务或重启主机后将会失效。
固定配置:通过配置文件来存放固定的各种网络地址,需要重启 network 服务或重启主机后才会生效。这种方式操作上相对要复杂一些,但相当于“永久配置”,一般在需要为服务器设置固定的网络地址时使用。
ifconfig 网络接口名称 IP 地址 [ netmask 子网掩码 ]
ifconfig 网络接口名称 IP 地址[/子网掩码长度]
在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的 IP 地址,但是又不能覆盖原有 IP 地址而导致服务程序不可用。这时可以为网卡绑定一个虚拟的网络接口,虚拟接口的 IP 地址和网卡原有的 IP 地址都可以正常使用。
[root@localhost ~]# ifconfig ens33:0 192.168.10.55
可以根据需要添加更多的虚拟接口,如“ens33:1”“ens33:2”等。
通过“route add”操作可以添加路由记录,结合“-net”选项指定目标网段的地址,结合“gw” 选项指定下一跳路由器的IP地址
[root@www ~]# route add -net 目标网段 gw 下一跳地址
[root@www ~]# route del -net 目标网段 gw 下一跳地址
添加、删除默认网关记录时,与添加、删除静态路由记录的命令格式类似,但指定目标网段时只需简单地使用“default”表示即可,无须再使用“-net”选项指明网段地址。
[root@www ~]# route del default gw 网关地址 //删除默认网关记录
[root@www ~]# route add default gw 网关地址 //添加新的默认网关记录
网络接口的配置文件默认位于目录/etc/sysconfig/network-scripts/中,文件名格式为“ifcfg-XXX”,其中“XXX”是网络接口的名称。
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg-* /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-ens36 [root@localhost network-scripts]# vim ifcfg-ens36 TYPE="Ethernet" BOOTPROTO="static" DEFROUTE="yes" DEVICE="ens36" ONBOOT="yes" IPADDR="192.168.20.1" NETMASK="255.255.255.0" GATEWAY="192.168.20.254"
TYPE:设置网卡类型,“Ethernet”表示以太网。
BOOTPROTO:设置网络接口的配置方式,值为“static”时表示使用静态指定的 IP
地址,为“dhcp”时表示通过 DHCP 的方式动态获取地址。
DEVICE:设置网络接口的名称。
ONBOOT:设置网络接口是否在 Linux 操作系统启动时激活。
IPADDR:设置网络接口的 IP 地址。
ETMASK:设置网络接口的子网掩码。
GATEWAY:设置网络接口的默认网关地址。
1)启用网络接口
[root@localhost ~]# systemctl restart network //重启network服务
//会先关闭所有的网络接口,再根据配置文件重新启用所有的网络接口。
//现实环境中不是特殊情况不建议使用
[root@localhost ~]# ifup ens33 或ifconfig ens33 up
2)关闭网络接口
[root@localhost ~]# ifup ens33 或ifconfig ens33 down
1)指定为本机提供 DNS 解析的服务器地址
/etc/resolv.conf 文件中记录了本机默认使用的 DNS 服务器的地址信息,对该文件所做的修改将会立刻生效。Linux 操作系统中最多可以指定 3 个(第 3 个以后的将被忽略)不同的 DNS 服务器地址,优先使用第一个 DNS 服务器。
[root@localhost ~]# vim /etc/resolv.conf # Generated by NetworkManager nameserver 8.8.8.8 nameserver 114.114.114.114
但是,在 CentOS 7 环境下,如果按照上面方式配置,过一段时间会被系统重新覆盖或者清除,此时需要修改/etc/NetworkManager/NetworkManager.conf 文件,在 main 部分添加“dns=none”配置项。之后需要重启 NetworkManager 服务。确保/etc/resolv.conf 内有配置信息,此时就可以正常解析域名了。
[root@localhost ~]# vi /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifcfg-rh
dns=none
2)本地主机映射文件
/etc/hosts 文件中记录着一份主机名与 IP 地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向 DNS 服务器查询。
对于经常访问的一些网站,可以通过在/etc/hosts 文件添加正确的映射记录,减少 DNS 查询过程,从而提高上网速度。当然,若添加了错误的映射记录,则可能导致网站访问出现异常。另外,因为 hosts 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络。
[root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
格式为IP地址域名或IP地址主机名
192.168.20.5 www.wodejia.com
192.168.20.55 node1
作者:wulimingde
原文链接:https://blog.csdn.net/wulimingde/article/details/109442363#comments_13999491