Linux网络服务与基础服务(基础命令详解)

文章目录

  • 一、查看网络配置
    • 1.1查看网络接口信息-ifconfig
    • 1.2查看或设置当前主机名-hostname
    • 1.3查看或设置主机中路由表信息-route
    • 1.4查看网络连接情况-netstat
    • 1.5查看系统的网络连接情况,获取socket统计信息-ss
  • 二、测试网络连接
    • 2.1测试网络连接-ping
    • 2.2测试从当前主机到目的主机之间经过的网络节点-traceroute
    • 2.3DNS域名解析-nslookup
    • 2.4查询域名DNS信息-dig
  • 三、使用网络配置命令
    • 3.1设置网络参数的方式
    • 3.2设置网络接口参数-ifconfig
      • 3.2.1设置网络接口的IP地址、子网掩码
      • 3.2.2禁用或者重新激活网卡
      • 3.2.3设置虚拟网络接口
    • 3.3设置路由记录-route
      • 3.3.1添加到指定网段的路由记录
      • 3.3.2删除到指定网段的路由记录
      • 3.3.3向路由表中添加默认网关记录
      • 3.3.4删除路由表中默认的网关记录
    • 3.4启用、禁用网络接口配置
      • 3.4.1重启network网络服务
      • 3.4.1禁用、启用网络接口
  • 四、修改网络配置文件
    • 4.1域名解析配置文件
    • 4.2本地主机映射文件
    • 4.3网卡配置文件

一、查看网络配置

1.1查看网络接口信息-ifconfig

ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了

语法格式:ifconfig [参数]

[root@localhost ~]# ifconfig ens33
ens33: flags=4163  mtu 1500
        inet 192.168.179.144  netmask 255.255.255.0  broadcast 192.168.179.255
        inet6 fe80::bef0:ecef:63c4:e623  prefixlen 64  scopeid 0x20
        ether 00:0c:29:62:79:2e  txqueuelen 1000  (Ethernet)
        RX packets 99359  bytes 106089440 (101.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 27477  bytes 2779318 (2.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

上面的各种参数介绍:
192.168.179.144- -IP地址
255.255.255.0- -子网掩码
192.168.179.255- -广播地址
00:0c:29:62:79:2e- -MAC地址

1.2查看或设置当前主机名-hostname

hostname命令用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。

在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要修改/etc/hosts和/etc/sysconfig/network的相关内容

语法格式:hostname [参数]
-a 显示主机别名
-d 显示DNS域名
-f 显示FQDN名称
-i 显示主机的ip地址
-s 显示短主机名称,在第一个点处截断
-y 显示NIS域名

[root@localhost ~]# hostname
localhost
[root@localhost ~]# hostname CSDN        ‘修改主机名为CSDN’
[root@localhost ~]# hostname
CSDN

如果想要永久修改主机名称的话,可以使用此条命令或者修改配置文件

[root@csdn ~]# hostnamectl set-hostname CSDN

centos6系统在/etc/sysconfig/network文件
保存全局网络设置,主要包括主机名信息

centos7系统中在/etc/hostname文件

[root@localhost ~]# vi /etc/hostname 

localhost.localdomain

1.3查看或设置主机中路由表信息-route

route命令用来显示并设置linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。

语法格式:route [参数]
-n 不执行DNS反向查找,直接显示数字形式的ip地址

[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.179.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.179.2   0.0.0.0         UG    100    0        0 ens33
192.168.179.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

1.4查看网络连接情况-netstat

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。在并发量小于1万的时候使用,如果并发量大于1万使用的话效率很低。

语法格式:netstat [参数]
-a 所有活动的网络连接(包括正在监听的,未监听的服务端口)
-n 以数字形式显示
-p 显示pid进程号
-t 查看TCP连接
-u 查看UDP连接
-r 查看路由表

[root@localhost ~]# netstat -ntap
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:22              0.0.0.0:*               LISTEN      9255/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      9551/master         
tcp        0     52 192.168.179.144:22      192.168.179.1:63512     ESTABLISHED 15594/sshd: root@pt 
tcp6       0      0 :::80                   :::*                    LISTEN      15103/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      9255/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      9551/master

从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到;另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)

1.5查看系统的网络连接情况,获取socket统计信息-ss

ss是Socket Statistics的缩写。ss命令用来显示处于活动状态的套接字信息。它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效,在并发量大于1万的时候使用。

语法格式:ss [参数]
-t 查看TCP连接
-u 查看UDP连接
-n 将服务名称改为端口号
-l 监听状态信息
-p 显示pid进程号
-a 所有的网络连接
-r 以服务名称显示

[root@localhost ~]# ss -t
State       Recv-Q Send-Q        Local Address:Port                         Peer Address:Port                
ESTAB       0      52          192.168.179.144:ssh                         192.168.179.1:63512 

二、测试网络连接

2.1测试网络连接-ping

ping命令主要用来测试主机之间网络的连通性,也可以用于。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

不过值得我们注意的是:Linux系统下的ping命令与Windows系统下的ping命令稍有不同。Windows下运行ping命令一般会发出4个请求就结束运行该命令;而Linux下不会自动终止,此时需要我们按CTR+C终止或者使用-c参数为ping命令指定发送的请求数目。

语法格式:ping [参数] [目标主机]
-d 使用Socket的SO_DEBUG功能
-c 指定发送报文的次数
-i 指定收发信息的间隔时间
-I 使用指定的网络接口送出数据包
-l 设置在送出要求信息之前,先行发出的数据包
-n 只输出数值
-p 设置填满数据包的范本样式
-q 不显示指令执行过程
-R 记录路由过程
-s 设置数据包的大小
-t 设置存活数值TTL的大小
-v 详细显示指令的执行过程

[root@localhost ~]# ping -c 4 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=312 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=2 ttl=128 time=317 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=3 ttl=128 time=319 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=4 ttl=128 time=296 ms

--- www.wshifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 296.436/311.433/319.719/9.080 ms

2.2测试从当前主机到目的主机之间经过的网络节点-traceroute

traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。

traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。

语法格式:traceroute [参数] [域名或者IP]
-d 使用Socket层级的排错功能
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小
-F 设置勿离断位
-g<网关> 设置来源路由网关,最多可设置8个
-i<网络界面> 使用指定的网络界面送出数据包
-I 使用ICMP回应取代UDP资料信息
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小
-n 直接使用IP地址而非主机名称
-p<通信端口> 设置UDP传输协议的通信端口
-r 忽略普通的Routing Table,直接将数据包送到远端主机上
-s<来源地址> 设置本地主机送出数据包的IP地址
-t<服务类型> 设置检测数据包的TOS数值
-v 详细显示指令的执行过程
-w 设置等待远端主机回报的时间
-x 开启或关闭数据包的正确性检验

[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (104.193.88.77), 30 hops max, 60 byte packets
 1  gateway (192.168.179.2)  0.116 ms  0.081 ms  0.033 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  *^C

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

2.3DNS域名解析-nslookup

nslookup命令的英文全称为 “query Internet name server interactively ”。nslookup命令主要用来查询域名的DNS信息。在使用nslookup之前,先确保已经安装了它,nslookup属于bind-utils包下一个命令 。

nslookup有两种工作模式:“交互模式”和“非交互模式”。在命令行中直接输入nslookup,无需输入任何参数即进入交互模式,由“>”提示。

语法格式:nslookup [参数] [域名]
-sil 不显示任何警告信息
exit 退出命令
server 指定解析域名的服务器地址
set type=soa 设置查询域名授权起始信息
set type=a 设置查询域名A记录
set type=mx 设置查询域名邮件交换记录

[root@localhost ~]# nslookup www.baidu.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
www.a.shifen.com	canonical name = www.wshifen.com.
Name:	www.wshifen.com
Address: 104.193.88.123
Name:	www.wshifen.com
Address: 104.193.88.77

2.4查询域名DNS信息-dig

dig命令的全称是“domain information groper”,它是一个用来灵活查询DNS的工具,它会打印出DNS域名服务器的回应,dig命令主要用来从DNS域名服务器查询主机地址信息。

dig命令与nslookup命令功能基本相同,但是dig命令灵活性好、易用、输出清晰。

语法格式: dig [参数] [IP]
@ 指定进行域名解析的域名服务器
-b 使用指定的本机ip地址向域名服务器发送域名查询请求
-f 指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息
-p 指定域名服务器所使用端口号
-t 指定要查询的DNS数据类型(默认为A)
-x 执行逆向域名查询
-4 使用ipv4(默认)
-6 使用ipv6
-h 显示命令帮助信息

[root@localhost ~]# dig www.baidu.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39573
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		1199	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	184	IN	CNAME	www.wshifen.com.
www.wshifen.com.	188	IN	A	104.193.88.77
www.wshifen.com.	188	IN	A	104.193.88.123

;; Query time: 37 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 四 7月 02 19:16:31 CST 2020
;; MSG SIZE  rcvd: 127

三、使用网络配置命令

3.1设置网络参数的方式

  1. 临时配置一使用命令调整网络参数
    简单、快速,可直接修改运行中的网络参数
    一般只适合在调试网络的过程中使用
    系统重启以后,所做的修改将会失效
  2. 固定设置一通过配置文件修改网络参数
    修改各项网络参数的配置文件
    适合对服务器设置固定参数时使用
    需要重载网络服务或者重启以后才会生效

3.2设置网络接口参数-ifconfig

3.2.1设置网络接口的IP地址、子网掩码

ifconfig 网络接口 ip地址 [netmask 子网掩码]
ifconfig 网络接口 ip地址 [/子网掩码长度]

例如:

[root@localhost ~]# ifconfig ens33 192.168.179.155/24

3.2.2禁用或者重新激活网卡

ifconfig 网络接口 up
ifconfig 网络接口 down

例如:

[root@localhost ~]# ifconfig ens33 up
[root@localhost ~]# ifconfig ens33 down

3.2.3设置虚拟网络接口

ifconfig 网络接口:序号 IP地址/子网掩码

例如

[root@localhost ~]# ifconfig ens33:0 192.168.100.10/24
[root@localhost ~]# ifconfig 
ens33: flags=4163  mtu 1500
        inet 192.168.179.144  netmask 255.255.255.0  broadcast 192.168.179.255
        inet6 fe80::bef0:ecef:63c4:e623  prefixlen 64  scopeid 0x20
        ether 00:0c:29:62:79:2e  txqueuelen 1000  (Ethernet)
        RX packets 499  bytes 41962 (40.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 272  bytes 29877 (29.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:0: flags=4163  mtu 1500
        inet 192.168.100.10  netmask 255.255.255.0  broadcast 192.168.100.255
        ether 00:0c:29:62:79:2e  txqueuelen 1000  (Ethernet)

3.3设置路由记录-route

3.3.1添加到指定网段的路由记录

route add -net 网段地址 gw IP地址

[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.100.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.179.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

[root@localhost ~]# route add -net 192.168.200.0/24 gw 192.168.179.2
[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.100.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.179.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.200.0   gateway         255.255.255.0   UG    0      0        0 ens33

3.3.2删除到指定网段的路由记录

route del -net 网段地址

[root@localhost ~]# route del -net 192.168.200.0/24
[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.100.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.179.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

3.3.3向路由表中添加默认网关记录

route add default gw IP地址

[root@localhost ~]# route add default gw 192.168.179.2
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 ens33
default         gateway         0.0.0.0         UG    100    0        0 ens33
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.179.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

3.3.4删除路由表中默认的网关记录

route del default gw IP地址

[root@localhost ~]# route del default gw 192.168.179.2
[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.100.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.179.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

3.4启用、禁用网络接口配置

3.4.1重启network网络服务

[root@localhost ~]# systemctl restart network

3.4.1禁用、启用网络接口

[root@localhost ~]# ifup ens33         #启用网络接口
[root@localhost ~]# ifdown ens33       #禁用网络接口

四、修改网络配置文件

4.1域名解析配置文件

/etc/resolv.conf文件
保存本机需要使用的DNS服务器的IP地址

[root@localhost ~]# vi /etc/resolv.conf
nameserver 8.8.8.8

注意: CentOS 7需要在NetworkManager.conf文件main段内设置dns=none,并重启NetworkManager服务,或者使用CentOS 7新添加nmcli命令进行设置

4.2本地主机映射文件

/etc/hosts文件
保存主机名与IP地址的映射记录

[root@localhost ~]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
104.193.88.77 www.baidu.com              #增加百度的映射记录

hosts文件和DNS服务器的比较
默认情况下,系统首先从hosts文件查找解析记录
hosts文件只对当前的主机有效
hosts文件可减少DNS查询过程,从而加快访问速度

4.3网卡配置文件

/etc/sysconfig/network-scripts/ifcfg-ens33
保存的网卡配置信息

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static     #设置网络接口的配置方式, static表示使用静态指定的IP地址, dhcp表示通过dhcp的方式动态获取地址
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33                
UUID=14636e7e-9ae7-4997-93e9-b13bc7754009
DEVICE=ens33              #设置网络接口的名称
ONBOOT=yes                #设置网络接口是否在Linux系统启动时激活
IPADDR=192.168.179.144    #设置网络接口的IP地址
NETMASK=255.255.255.0     #设置网络接口的子网掩码
GATEWAY=192.168.179.2     #设置网络接口的默认网关地址
DNS1=8.8.8.8              #设置DNS服务器的IP地址

你可能感兴趣的:(Linux网络服务)