Skip to content

网络管理命令

1. 启用NetworkManager服务

Centos7针对network服务的替代是NetworkManager服务,两者只能使用其中之一,如果两个service服务都在运行中必然有问题:

shell
[root@hadoop100 ~]# systemctl status network
 network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: active (exited) since 四 2024-01-11 22:24:08 CST; 16h ago
     Docs: man:systemd-sysv-generator(8)
[root@hadoop100 ~]# systemctl status NetworkManager
 NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2024-01-11 21:32:57 CST; 17h ago
     Docs: man:NetworkManager(8)
 Main PID: 595 (NetworkManager)
   CGroup: /system.slice/NetworkManager.service
           └─595 /usr/sbin/NetworkManager --no-daemon

编写批量执行脚本restart_net.sh

sh
[jack@hadoop106 ~]$ cat restart_net.sh 
#!/bin/bash

## 关闭network服务
systemctl stop network
## 关闭开机自启network服务
chkconfig network off
## 命令NetworkManager使用/etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置文件
nmcli connection up ens33
## 重启NetworkManager服务,配置生效
systemctl restart NetworkManager

2. ping 命令

它发送出基于ICMP传输协议的数据包,要求对方主机予以回复。若对方主机的网络功能没有问题且防火墙放行流量,则就会回复该信息,我们也就可得知对方主机系统在线并运行正常了。

提示

ping命令在Linux下与在Windows下有一定差异,Windows系统下的ping命令会发送出去4个请求后自动结束该命令;而Linux系统则不会自动终止,需要用户手动按下Ctrl+C组合键才能结束,或是发起命令时加入-c参数限定发送数据包的个数。

语法格式:ping [参数] 域名或IP地址
常用参数说明:

参数参数含义
-c设置发送数据包的次数
-R记录路由过程信息
-s设置数据包的大小
-l使用指定的网络接口送出数据包
-i设置收发信息的间隔时间
-W指定超时时间,默认4秒,单位:秒
-4基于IPv4网络协议
-6基于IPv6网络协议
-V显示版本信息
sh
[jack@hadoop106 ~]$ ping -a www.baidu.com
PING www.a.shifen.com (183.2.172.185) 56(84) bytes of data.
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=1 ttl=52 time=35.4 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=2 ttl=52 time=33.3 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=3 ttl=52 time=44.0 ms
^[[A64 bytes from www.baidu.com (183.2.172.185): icmp_seq=4 ttl=52 time=33.2 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
rtt min/avg/max/mdev = 33.228/36.531/44.095/4.452 ms
## 测试与指定主机之间的网络连通性,发送2个请求包,每次间隔0.2s,最长等待时间为3s
[jack@hadoop106 ~]$ ping -c 3 -i 0.2 -W 5 www.google.com
PING www.google.com (108.160.172.200) 56(84) bytes of data.

--- www.google.com ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 414ms

3. ssh命令

用于安全地远程连接服务器主机系统,方便进行远程主机访问管理操作。
语法:ssh 参数 域名或IP地址
常用参数:

参数参数含义
-p设置远程服务器上的端口号
-l设置登录用户名
-c设置会话的密码算法
-C压缩所有数据
-T禁止分配伪终端
-t强制分配伪终端
-4基于IPv4网络协议
-6基于IPv6网络协议
-V显示版本信息
sh
:::tip
伪终端在ssh服务端创建, 不分配伪终端,会导致一些需要`tty`的命令无法正常使用。比如`vim`
:::
[jack@hadoop106 ~]$ ssh root@192.168.101.107
root@192.168.101.107's password: 
Last login: Tue Mar 12 09:00:36 2024
# 指定用户在22端口连接,随后执行指令
[jack@hadoop106 ~]$ ssh -l root -p 22 192.168.101.107 "free -h"
root@192.168.101.107's password: 
              total        used        free      shared  buff/cache   available
Mem:           972M        120M        745M        7.6M        106M        724M
Swap:          4.0G          0B        4.0G

4. netstat命令

netstat(全称network statistics), 其功能是显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等。
语法格式:netstat 参数
常用参数:

参数参数含义
-a显示所有连接中的接口信息
-r显示路由表信息
-s显示网络工作信息统计表信息
-C显示路由配置信息
-c持续显示网络状态
-t显示TCP传输协议的连线状态
-u显示UDP传输协议的连线状态
-p显示正在使用接口的程序识别码和名称
-V显示版本信息
sh
# 显示系统网络状态中的所有连接信息
[jack@hadoop106 ~]$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0     36 hadoop106:ssh           192.168.101.11:7126     ESTABLISHED
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
udp        0      0 hadoop106:36624         electrode.felixc.at:ntp ESTABLISHED
udp        0      0 localhost:323           0.0.0.0:*                          
udp6       0      0 localhost:323           [::]:*                             
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     8962     /run/systemd/journal/stdout
unix  5      [ ]         DGRAM                    8965     /run/systemd/journal/socket
......
# 显示网络路由表状态信息
[jack@hadoop106 ~]$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 ens33
192.168.101.0   0.0.0.0         255.255.255.0   U         0 0          0 ens33
# 找到某个服务所对应的连接信息
[jack@hadoop106 ~]$ netstat -ap |grep ssh
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      -                   
tcp        0     36 hadoop106:ssh           192.168.101.11:7126     ESTABLISHED -                   
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      -

5. ifconfig命令

ifconfig(全称network interfaces configuring),其功能是显示或设置网络设备参数信息。
使用ifconfig命令配置网络设备的参数信息保存到内存中,因为一旦服务器重启,配置过的参数会自动失效,因此还是编写到配置文件中更稳妥。
语法:ifconfig 参数 网卡名 动作
常用参数:

参数参数含义
-a显示所有网卡状态
-v显示执行过程详细信息
-s显示简短状态列表
add设置网络设备的IP地址
del删除网络设备的IP地址
down关闭指定的网络设备
up启动指定的网络设备
sh
# 显示系统的网络设备信息
[jack@hadoop106 ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.101.106  netmask 255.255.255.0  broadcast 192.168.101.255
        inet6 fe80::20c:29ff:fe9e:61dc  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:9e:61:dc  txqueuelen 1000  (Ethernet)
        RX packets 4373  bytes 363311 (354.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1618  bytes 194283 (189.7 KiB)
        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 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# 对指定的网卡设备执行IP地址修改操作
[jack@hadoop106 ~]$ ifconfig ens160 192.168.10.20 netmask 255.255.255.0

6. 设置固定IP

6.1 Centos6.x版本

  1. 编辑网卡信息
sh
# 切换为root用户
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 修改若没有就添加以下内容
IPADDR=192.168.0.107
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=114.114.114.114
## 由no改为yes
ONBOOT=yes
## 由dhcp改为none
BOOTPROTO=none

编辑完成后,按一下键盘左上角ESC键,输入:wq在屏幕的左下方可以看到,输入回车保存配置文件。 2. 重启一下网络服务

sh
service network restart

6.2 Centos7.x版本

  1. 默认的网卡信息变为ifcfg-ens33, 编辑网卡信息:
sh
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 修改若没有就添加以下内容
IPADDR=192.168.191.131 # ip地址
PREFIX=24
NETMASK=255.255.255.0 # 子网掩码
NETWORK=192.168.191.0 # ip段
GATEWAY=192.168.191.2 # 网关地址
BROADCAST=192.168.191.255 # 广播地址, 网关地址最后一位换成255
BOOTPROTO=static
  1. 编辑/etc/resolv.conf
sh
nameserver 192.168.191.2
nameserver 114.114.114.114