本文共 9389 字,大约阅读时间需要 31 分钟。
本节书摘来自异步社区《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》一书中的第4章,第4.6节,作者:高俊峰著,更多章节内容可以访问云栖社区“异步社区”公众号查看
4.6.1 ifconfig命令
1.功能说明ifconfig命令用来配置网络或显示当前网络接口状态。它类似于Windows下的ipconfig命令,同时ifconfig命令必须以root用户来执行。其格式如下。ifconfig [选项] [interface] [inet|up|down|netmask|addr|broadcast]
2.举例
1)显示目前系统所有网络接口信息,使用以下命令。[root@centos7 ~]# ifconfigenp0s3: flags=4163mtu 1500inet 192.168.81.232 netmask 255.255.255.0 broadcast 192.168.81.255 inet6 fe80::a00:27ff:fe90:55 prefixlen 64 scopeid 0x20 ether 08:00:27:90:00:55 txqueuelen 1000 (Ethernet) RX packets 20378 bytes 1845248 (1.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 958 bytes 147065 (143.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX packets 4 bytes 336 (336.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4 bytes 336 (336.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
从上面可以看出以下几点。
第1行:“UP”代表网卡开启状态,“RUNNING”代表网卡上的网线处于连接状态,“MULTICAST”代表支持组播,“MTU:1500”表示最大传输单元为1500字节。
第2行:依次显示网卡的IP地址、子网掩码和广播地址。
第3行:IPv6地址的配置信息。
第4行:ether后面表示硬件网卡的MAC地址。Ethernet表示连接类型为以太网。
第5、6行:显示网卡接收数据包的统计信息和接收错误的统计信息。
第7、8行:显示网卡发送数据包的统计信息和发送错误的统计信息。
2)在网卡enp0s3上配置两个IP地址,分别为192.168.60.136、192.168.66.138,子网掩码为255.255.255.0,使用以下命令。
[root@centos7 ~]#ifconfig enp0s3 192.168.60.136 netmask 255.255.255.0[root@centos7 ~]#ifconfig enp0s3:0 192.168.66.138 netmask 255.255.255.0
此时用ifconfig命令查看,就可以看到两个网卡的信息了,分别是“enp0s3”和“enp0s3:0”。如果此时还想在enp0s3上增加IP地址,那么网卡的命名依次是“enp0s3:1”、“enp0s3:2”等。
3)修改网卡的MAC地址为新的MAC地址,使用以下命令。
[root@centos7 ~]#ifconfig enp0s3hw ether xx:xx:xx:xx:xx:xx
4)将网卡enp0s3禁用后再启用,使用以下命令。
[root@centos7 ~]#ifconfig enp0s3 down[root@centos7 ~]#ifconfig enp0s3 up
注意
用ifconfig命令配置的网卡信息,在网卡重启或者机器重启后,所有的配置都失效了,如果要让网卡配置永久生效,就需要修改网卡的配置文件了,这将在下面讲述。4.6.2 scp命令1.功能说明scp就是secure copy,用于将文件或者目录从一个Linux系统复制到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全。其格式如下。scp 远程用户名@ip地址:文件的绝对路径本地Linux系统路径scp 本地Linux系统文件路径远程用户名@ip地址:远程系统文件绝对路径名
scp使用第1种格式将远程Linux系统上的某个文件或者目录复制到本地Linux系统上,使用第2种格式是将本地的某个文件或者目录复制到远程Linux系统的某个路径下。
2.举例
1)目前我们处在IP为“192.168.60.133”的Linux系统下,计划将此系统下的/home/ixdba/etc.tar.gz文件复制到IP为“192.168.60.168”的远程Linux系统中root用户下的/tmp目录下,使用下面命令。[root@centos7 ~]#scp /home/ixdba/etc.tar.gz root@192.168.60.168:/tmp
[root@centos7 ~]#scp root@192.168.60.133:/home/ixdba/etc.tar.gz /tmp
2)将本地/etc目录中所有文件和子目录复制到IP为“192.168.60.135”的远程Linux系统的root用户下的/opt目录中,使用以下命令。
[root@centos7 ~]#scp –r /etc root@192.168.60.135:/opt
4.6.3 netstat命令
1.功能说明netstat命令用来显示本机网络连接、运行端口和路由表等信息。其格式如下。netstat [选项]
2.举例
1)显示当前系统的路由信息。[root@centos7 ~]# netstat -rnKernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface0.0.0.0 192.168.81.250 0.0.0.0 UG 0 0 0 enp0s3169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3192.168.81.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
从上面可以看出,当前系统的默认网关是“192.168.81.250”,而对应的网络接口为enp0s3。
2)显示当前系统中所有有效的TCP连接,使用以下命令。
[root@centos7 ~]#netstat -anActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 192.168.81.232:22 192.168.81.30:65409 ESTABLISHEDtcp 0 0 192.168.81.232:22 192.168.81.30:64394 ESTABLISHEDtcp6 0 0 :::80 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN udp 0 0 0.0.0.0:123 0.0.0.0:* udp 0 0 127.0.0.1:323 0.0.0.0:* udp 0 0 0.0.0.0:46122 0.0.0.0:* udp 0 0 0.0.0.0:5353 0.0.0.0:* udp6 0 0 :::123 :::* udp6 0 0 ::1:323 :::*……以下省略……
在上面的显示中,可以看出netstat的输出分为两部分,分别是TCP/IP网络部分和UNIX Socket部分,我们先来看看输出的组成部分。
state:显示状态列,主要有以下几个状态。
3)显示目前系统中已经启动的网络连接和对应的端口信息,使用如图4.9所示命令。
从图4.9的输出可以看出,系统中对外开放了80、22和23端口。为什么这么说呢?因为这些端口都是针对“0.0.0.0”开放的,而25、631端口仅仅针对内部127.0.0.1开放。最后一列显示了每个端口对应的服务名(Program name)和进程ID(PVD),可以很方便地知道每个端口的用途。
4)查看当前系统上处于连接状态的资源信息,可以使用如图4.10所示命令。
从上面的输出看出,有四个线路处于连接状态,分别是远程主机192.168.81.30启动的大于1024的两个端口65409、64394向本地主机192.168.81.232的22端口建立的连接,以及远程主机192.168.81.30启动的大于1024的两个端口49837、49848向本地主机192.168.81.232的23端口建立的连接。
4.6.4 traceroute命令
1.功能说明traceroute命令用来显示网络数据包传输到指定主机的路径信息,追踪数据传输路由状况。预设数据包大小是38字节,用户可另行设置。它与Windows下的tracert命令类似,其格式如下。traceroute [选项] [远程主机名或者IP地址] [数据包大小]
2.举例
跟踪从本机到网站www.ixdba.net的数据包发送过程,使用以下命令。[root@localhost ~]# traceroute -i eth0 -s 192.168.60.251 -w 10 www.ixdba.net 100traceroute to www.ixdba.net (221.130.192.57) from 192.168.60.251, 30 hops max, 100 byte packets1 192.168.60.3 (192.168.60.3) 0.378 ms 0.564 ms 0.357 ms2 192.168.1.10 (192.168.1.10) 0.494 ms 0.458 ms 0.377 ms3 222.90.66.1 (222.90.66.1) 2.199 ms 4.531 ms 6.884 ms4 61.185.192.101 (61.185.192.101) 8.946 ms 6.319 ms 7.726 ms5 117.36.120.25 (117.36.120.25) 9.997 ms 23.021 ms 24.337 ms6 61.150.3.165 (61.150.3.165) 27.591 ms 6.703 ms 11.928 ms7 125.76.189.81 (125.76.189.81) 8.927 ms 4.388 ms 2.726 ms8 61.134.0.9 (61.134.0.9) 5.731 ms 3.653 ms 3.667 ms9 202.97.37.173 (202.97.37.173) 5.908 ms 3.874 ms 4.553 ms10 202.97.37.182 (202.97.37.182) 2.568 ms 13.896 ms 14.722 ms11 202.97.37.90 (202.97.37.90) 16.284 ms 26.148 ms 2.946 ms12 202.97.36.161 (202.97.36.161) 49.285 ms 62.249 ms 55.451 ms13 202.97.44.58 (202.97.44.58) 56.949 ms 56.292 ms 62.229 ms14 202.97.15.226 (202.97.15.226) 142.705 ms 139.009 ms 150.365 ms15 211.136.2.249 (211.136.2.249) 136.982 ms 156.440 ms 153.176 ms16 211.136.6.22 (211.136.6.22) 136.463 ms 152.606 ms 150.101 ms17 211.136.188.182 (211.136.188.182) 100.163 ms 128.552 ms 103.801 ms18 221.130.192.57 (221.130.192.57) 149.583 ms
上面指定eth0网络接口发送数据包,同时指定本地发送数据包的IP为192.168.60.251,并设置超时时间为10秒,最后设置发送数据包的大小为100字节。根据输出可以看到,从本机到www.ixdba.net对应的IP地址经历了18个路由的迂回。
traceroute命令会对这18个路由节点做ICMP的回应时间测试,每个路由节点做3次时间测试,如上面显示,基本上每个路由节点的回应时间都在100秒内,只有在第15个路由节点,回应时间稍长。通过这种网络跟踪,可以测试数据传输在哪个部分出现问题,以便及时解决。
如果在指定的时间内(这里设置的是10秒),traceroute检测不到某个路由节点的回应信息,就在屏幕输出“*”,表示此节点无法通过。由于traceroute是利用ICMP连接的,有些网络设备(如防火墙)可能会屏蔽ICMP通过的权限,因此也会出现节点没有回应的状态,这些都是我们分析网络问题需要知道的。
4.6.5 telnet命令
1.功能说明telnet命令通过telnet协议与远程主机通信或者获取远程主机对应端口的信息。它与Windows下的telnet具有相同的功能。其格式如下。telnet 主机名或者IP地址端口
[root@localhost ~]# telnet192.168.60.12323Trying 192.168.60.123...Connected to 192.168.60.123.Escape character is '^]'. Kernel 3.10.0-229.el7.x86_64 on an x86_64centos7 login: ixdbaPassword:
当输入用户名ixdba和密码后就登录到了“192.168.60.123”服务器,这里直接用“telnet 192.168.60.123”也是可以的,因为telnet默认寻找的就是“23”端口。
[root@localhost ~]# telnet192.168.60.12325Trying 192.168.60.123...telnet: connect to address 192.168.60.123: Connection refused
如果出现这个问题,就表示这个端口对应的服务没有开启,或者端口被屏蔽,无权访问。
2)要查看某台Linux系统的22和80端口是否打开以及分别开启了什么服务,使用以下命令。
[root@localhost ~]# telnet 192.168.60.88 22Trying 192.168.60.88...Connected to 192.168.60.88.Escape character is '^]'.SSH-2.0-OpenSSH_6.6.1 Protocol mismatch.Connection closed by foreign host.
从这里可以看出,在“192.168.60.88”的22端口运行着SSH服务,对应的SSH版本为SSH-2.0-OpenSSH_6.6.1。
[root@localhost ~]# telnet www.ixdba.net 80Trying 221.130.192.57...Connected to www.ixdba.net (221.130.192.57).Escape character is '^]'.get501 Method Not Implemented Method Not Implemented
get to /index.html not supported.
Apache/2.2.4 (Unix) PHP/5.2.3 mod_fastcgi/2.4.2 Resin/3.1.3 Server at www.ixdba.net Port 80Connection closed by foreign host.
当输入“telnet www.ixdba.net 80”之后,如果“www.ixdba.net”对应IP的80端口开启,就会给出欢迎信息,类似于“Escape character is '^]'”。此时通过键盘输入“get”命令,将显示80端口对应的应用服务器类型,例如本例的80端口对应的应用服务为Apache与PHP以及resin的组合。
4.6.6 wget命令
1.功能说明wget命令用来从网络上下载某个软件,这个命令对于能够连接到互联网的Linux系统作用非常大,可以直接从网络下载自己需要的软件。其格式如下。wget [要下载软件的网址]
[root@localhost~]#wget \>https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.2.tar.xz-- 17:42:05-- https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.2.tar.xzResolving www.kernel.org (www.kernel.org)... 199.204.44.194, 198.145.20.140,149.20.4.69,...Connecting to www.kernel.org (www.kernel.org)|199.204.44.194|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 82306532 (78M) [application/x-xz]Saving to: 'linux-4.0.2.tar.xz' 10% [========> ] 8,781,616 104KB/s eta 7m 35s 2
转载地址:http://bhmjo.baihongyu.com/