linux网路配置

    • 1. 虚拟机网络
      • 1.1 桥接模式
      • 1.2 NAT模式
      • 1.3 SCSI控制器(I/O)
    • 2. Centos7网络配置
    • 3. Ubuntu网络配置
      • 3.1 networking(老方法)
      • 3.2 netplan(新方法)
    • 4. ip命令簇
      • 4.1 address
      • 4.2 link
      • 4.3 route
      • 4.4 rule
    • 5. ifcfg命令家族
      • 5.1 ifconfig
        • 1. 语法及参数
        • 2. 常用功能
      • 5.2 route
      • 5.3 netstat
    • 6. nmcli命令
      • 6.1 介绍
      • 6.2 networking 网络控制
      • 6.3 connection 连接管理
      • 6.4 device 设备管理
      • 6.5 nmcli 返回状态码
    • 7. 其他常用命令
      • 7.1 ifup/ifdown
      • 7.2 配置主机名
      • 7.3 设置DNS服务器指向
      • 7.4 配置域名解析
      • 7.5 ss
      • 7.6 路由相关配置文件
      • 7.7 查看机器可用端口
      • 7.8 traceroute
      • 7.9 dhclient

1. 虚拟机网络

接触linux服务器的朋友们,很少能避开虚拟机,笔者将在这里简单介绍虚拟机的网络配置

开启VMware之后,选择编辑,可以看到虚拟网络编辑器
在这里插入图片描述
VMnet*这三个网络适配器(或者说虚拟机网卡),对于设置虚拟机网络至关重要。安装VMware workstation的时候,默认会安装3块虚拟网卡,分别是VMnet0、VMnet1、VMnet8。

虚拟网卡名网络属性定义
VMnet0物理网卡Bridge桥接
Vmnet1虚拟网卡host-only仅主机
VMnet8虚拟网卡NAT

虚拟机网络配置有三种模式:Bridged桥接模式 、host-only仅主机模式、NAT模式。

  • VMnet0=eth2(Bridged)
    Bridged桥接模式 :虚拟机相当于一台实体机,可以自由访问与被访问及上网

  • VMnet1=eth0(host-only)
    host-only仅主机模式:虚拟机之间、主机与虚拟机之间互访,但虚拟机无法访问外网

  • VMnet8=eth8(nat)
    NAT模式:虚拟机之间、主机与虚拟机之间互访,虚拟机可以通过主机访问外网,外网无法访问虚拟机

下面将详细介绍各种模式:

1.1 桥接模式

在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机(主机和虚拟机处于对等地位),它可以访问网内任何一台机器。在桥接模式下,我们往往需要为虚拟主机配置IP地址、子网掩码等(注意虚拟主机的ip地址要和主机ip地址在同一网段)。

使用桥接模式的虚拟系统和主机的关系,就如同连接在一个集线器上的两台电脑;要让他们通讯就需要为虚拟系统配置ip地址和子网掩码。如果我们需要在局域网内建立一个虚拟服务器,并为局域网用户提供服务,那就要选择桥接模式。 但对于想进行种种网络实验的朋友这种模式是不太适合的,因为你无法对虚拟机的网络进行控制,它直接出去了。

1. 虚拟机中的Bridget桥接模式:

  • 默认使用Vmnet0,不提供DHCP服务
  • 虚拟机与物理机在同一个网段上,相当于一个独立的主机
  • 既能与局域网内的主机通讯,也能与外部网络通信
  • 容易与局域网其他主机引起ip地址冲突

2. 使用桥接模式配置虚拟机网络

一、虚拟机设置:

选择VMnet0(桥接模式)
在这里插入图片描述

在首次创建虚拟机系统的时候,可以选择网络模式,而非必须在虚拟网络编辑器中设置,例如:
在这里插入图片描述
二、系统设置

[root@swarm-worker ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=dhcp
DEFROUTE=yes
#IPV4_FAILURE_FATAL=no
NAME=ens33
UUID=01a121f0-4398-4079-b6d5-d0faf3b80b2e
DEVICE=ens33
#ONBOOT=no
IPADDR=192.168.70.183
GATEWAY=192.168.70.1
NETMASK=255.255.255.0

1.2 NAT模式

NAT是英文Network Address Translation的简写,中文意思为”网络地址转换“。它是一个IETF标准,允许一个整体单位机构以一个公用IP地址出现在互联网上。通俗讲就是把公司所有的电脑都能在一个公用IP地址下使用,能够一定程度上解决局部公用IP地址不足问题。

1. 虚拟机中的NAT模式

  • 默认使用VMnet8,提供DHCP服务。
  • 可以与物理机互相访问,也可访问外部网络
  • 不能访问局域内其他机器或被访问
  • 不会与局域网内其他ip地址发生冲突。

2. 使用NAT模式配置虚拟机网络

一、虚拟机设置:

    1. 选择VMnet8(NAT模式)
    1. 勾选将主机虚拟适配器连接到此网络
    1. 配置NAT 设置中的网关IP,此处默认即可,记住这个网关,后面在系统中配置会使用

在这里插入图片描述
二、windows设置
在这里插入图片描述
三、系统设置(centos7):

    1. 进入系统后,通过ip a查看网卡名称
    [root@zabbix-svr-2 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        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 group default qlen 1000
        link/ether 00:0c:29:36:09:84 brd ff:ff:ff:ff:ff:ff
        inet 192.168.107.183/24 brd 192.168.107.255 scope global noprefixroute ens33
           valid_lft forever preferred_lft forever
    
    第一个是回环地址,忽略掉,第二个ens33才是
    1. 编辑文件/etc/sysconfig/network-scripts/ifcfg-ens33
[root@zabbix-svr-2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
NAME=ens33
UUID=d7519cdd-2e61-469f-86e4-08143d446c92
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.107.183
GATEWAY=192.168.107.2
NETMASK=255.255.255.0
    1. 配置完成,重启网络服务
[root@zabbix-svr-2 ~]# systemctl restart network

1.3 SCSI控制器(I/O)

在这里插入图片描述

SCSI控制器的英文名称是“Small Computer System Interface”,中文翻译为"小型计算机系统专用接口";顾名思义,这是为了小型计算机设计的扩充接口,它可以让计算机加装其他外设设备以提高系统性能或增加新的功能,例如硬盘、光驱、扫描仪等。

  • BusLogic:是第一个被支持的SCSI控制器类型,适用于早期的Windows操作系统和其他一些老旧的操作系统。在性能方面,BusLogic相对较慢,因为它使用CPU软件仿真来处理I/O请求。
  • LSI Logic:是一种较新的SCSI控制器类型,适用于大多数现代操作系统和应用程序。与BusLogic相比,LSI Logic使用更先进的技术来处理I/O请求,具有更好的性能和可靠性。(推荐)
  • LSI Logic SAS:是一种基于SAS架构的SCSI控制器,适用于需要高速存储和高并发I/O的应用场景。与LSI Logic相比,LSI Logic SAS提供了更高的带宽和更低的延迟。(推荐)
  • Paravirtualized SCSI:是一种特殊类型的SCSI控制器,使用虚拟化技术来提高性能和效率。它可以通过直接访问物理设备来避免CPU软件仿真,提供更低的延迟和更高的吞吐量。

2. Centos7网络配置

与网络相关的文件

  • /etc/sysconfig/network 用来配置系统初始化网络信息的,例如是否启动网络,主机名称,网关信息等。
  • /etc/sysconfig/network-scripts/ifcfg-eth0 用于设置网络配置信息(IP地址,子网掩码,网关IP等)
  • /etc/resolv.conf 该文件用于配置DNS服务器地址信息
  • /etc/hosts 配置主机名和IP地址的映射
  • /etc/sysconfig/network  配置所有网卡路由和主机信息
  • /etc/sysconfig/network-scripts/route-IFACE 配置路由信息
  • /etc/sysconfig/networking/ 这个文件夹里的东西都是给网络管理员工具(system-config-network)用的

配置文件修改属性/etc/sysconfig/network-scripts/ifcfg-[IFACE]

参数格式:
[PARAMETER]=[option|OPTION]

注意事项:

  • 参数只能大写
  • 参数值只能是固定写法,但是大小写均可以(笔者试了一些,不过建议还是按照标准写)
    [root@zabbix-svr-2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE=ETHERNET
    NAME=ENS33
    BOOTPROTO=STATIC
    UUID=d7519cdd-2e61-469f-86e4-08143d446c92
    DEVICE=ens33
    ONBOOT=YES
    IPADDR=192.168.70.183
    GATEWAY=192.168.70.1
    NETMASK=255.255.255.0
    
  • 等号(=)两边不可以加空格

参数:

TYPE=Ethernet  			#接口类型;常见有的 Ethernet(以太网卡) Bridge(网桥)
BOOTPROTO=none     		#BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议),dhcp 表示动态获取IP地址,  static 表示静态IP,none表示不指定,就是静态。
DEFROUTE=yes			#default route,是否把这个eth设置为默认路由
IPV4_FAILURE_FATAL=no  	#如果为yes,则ipv4配置失败禁用设备
IPV6INIT=yes			#是否启用IPv6的接口
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no	#如果ipv6配置失败禁用设备
NAME=xxxxx   			#网卡名
UUID=XXXX  				#设备的惟一标识
DEVICE=xxxxx  			#此配置文件应用到的设备
ONBOOT=yes  			#在系统引导时是否激活此设备
DNS1=8.8.8.8  			#第一个DNS服务器指向
DNS2=192.168.1.1  		#第二个DNS服务器指向
NETMASK=255.255.255.0  	#子网掩码
IPADDR=192.168.1.8		#指明IP地址
PREFIX=24				#子网掩码24位,替换NETMASK的新格式,和netmask选择配置一个即可
GATEWAY=192.168.1.1  	#默认网关
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
HWADDR= 				#对应的设备的MAC地址
NM_CONTROLLED=			#NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”,
USERCTL=				#普通用户是否可控制此设备

bridge(桥接)

常见配置:

[root@zabbix-svr-2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
NAME=ens33
BOOTPROTO=static
UUID=d7519cdd-2e61-469f-86e4-08143d446c92
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.70.183
GATEWAY=192.168.70.1
NETMASK=255.255.255.0

启动网络服务相关命令

systemctl restart network
systemctl start network
systemctl stop network
systemctl status network

3. Ubuntu网络配置

在Ubuntu系的Linux系统里,与网络相关的主要设置文件如下:

  • /etc/host.conf 配置域名服务客户端的控制文件
  • /etc/hosts 配置主机名和IP地址的映射
  • /etc/resolv.conf 域名服务客户端的配置文件,指定域名服务器的IP地址
  • /etc/network/interfaces 用于设置网络配置信息(IP地址,子网掩码,网关IP等)
  • /etc/udev/rules.d/70-persistent-net.rules 记录主机中所有网卡的MAC地址
  • /etc/xinetd.conf 定义了由进程守护程序xinetd所守护的网络服务
  • /etc/networks 实现域名与网络地址的映射
  • /etc/protocols 设定主机使用的协议及各个协议的协议号(协议ID)
  • /etc/services 设定主机上各个网络服务进程所使用的端口号

与网络相关的主要设置文件

3.1 networking(老方法)

常见配置:

root@ubuntu:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).source /etc/network/interfaces.d/*# The loopback network interface
auto lo
iface lo inet loopback# The primary network interface
auto ens33
iface ens33 inet static
address 192.168.72.140
netmask 255.255.255.0
gateway 192.168.72.1

修改DNS

root@lenovo-07:/etc# cat resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
...
# operation for /etc/resolv.conf.nameserver 211.137.191.26
nameserver 223.5.5.5

重启服务

#刷新网络接口
root@lenovo-07:/etc/netplan# sudo ip addr flush eno1
#重启网络服务
root@lenovo-07:/etc/netplan# sudo systemctl restart networking.service

3.2 netplan(新方法)

在18.04以后,默认以netplan的方式配置网络,请参考:
Netplan

配置文件

root@lenovo-07:/etc/netplan# ls
01-network-manager-all.yamlroot@lenovo-07:/etc/netplan# cat 01-network-manager-all.yaml
network:
    ethernets:
        eno1:  #网卡名字
            dhcp4: no  #是否自动配置ip
            dhcp6: no  #是否自动配置ipv6
            addresses: [*.*.*.*/24]  #IP地址用,隔开  /  后面的为子网
            gateway4: *.*.*.1  #网关
            nameservers:
                addresses: [114.114.114.114,8.8.8.8]  #设置DNS服务器,能上大部分网站,且有概率提升下载速度        # DHCP
        eno2: 
            dhcp4: true
            addresses: []         # Static
        eno3: 
            addresses: [192.168.225.50/24] 
            dhcp4: no
            dhcp6: no
            gateway4: 192.168.225.1
            nameservers:
                addresses: [114.114.114.114,8.8.8.8]
    version: 2

激活配置

root@lenovo-07:/etc/netplan# sudo netplan apply

root@lenovo-07:/etc/netplan# sudo netplan --debug apply # 此命令可查看配置生效情况,可根据提示进行修改调整

4. ip命令簇

Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。
在这里插入图片描述

NAME
       ip - show / manipulate routing, devices, policy routing and tunnelsSYNOPSIS
       ip [ OPTIONS ] OBJECT { COMMAND | help }

OPTIONS:

命令作用
-V显示指令版本信息
-f [family]指定要使用的协议。协议标识可以是inet、inet6、ipx、dnet、bridge、link 之一。如果此选项不存在,则从其他参数中推测协议族。如果命令行的其余部分没有提供足够的信息来推测该族,则ip会退回到默认值,通常是 inet 或 any 。link 是一个特殊的系列标识符,表示不涉及网络协议。
-s输出更为详细的信息。如果这个选项出现两次或者多次,输出的信息将更为详细。
-4是 -f inet 的简写。
-6是 -f inet6 的简写。
-0是 -f link 的简写。
-o对每条记录都使用单行输出。
-r查询域名解析系统,用获得的主机名代替主机IP地址。

OBJECT:
可以针对哪些网络参数进行动作,包括有:

对象说明
address网络设备的IP(v4或者v6)地址信息
link网络设备信息
maddress多播地址
mourte组播路由缓存条目
monitor监控网络链接消息
netns管理网络命名空间
ntable管理邻居表缓存操作
neighbour邻居表
route路由表
ruleIP策略
tunnelIP隧道
tuntap管理tun/tap设备

COMMAND:

对象说明
add新增
delete删除
show(or list)显示
set设置参数

由于该命令涉及功能实在庞大,所以挑选些常用的进行演示:

4.1 address

address是最常用的option之一,主要针对ip地址设置

  1. 显示当前IP地址信息

    可以写成
    ip address 或 ip addr 或 ip ad 或 ip a

    由于在OBJECT中只有address以a为首字母,所以只要能区分出来是address,那么address|addr|ad|a都可以

    [root@node1 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    ...
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:79:08:6b brd ff:ff:ff:ff:ff:ff
        inet 192.168.71.183/24 brd 192.168.71.255 scope global noprefixroute dynamic ens33
           valid_lft 83848sec preferred_lft 83848sec
        inet6 fe80::3872:4f8b:dbfc:1aa2/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    ...
    
  2. 给设备enp0s8设置ip地址(临时)

    ip addr add 192.168.1.200/24 dev enp0s8
    
  3. 给设备enp0s8移除ip地址

    [root@node1 ~]# ip addr add 192.168.71.184/24 dev ens33
    [root@node1 ~]# ip addr del 192.168.71.184/24 dev ens33
    

4.2 link

link是针对设备设置的option

  1. 列出所有设备
    [root@node1 ~]# ip link
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:79:08:6b brd ff:ff:ff:ff:ff:ff
    
  2. 启动一个网络设备
    [root@node1 ~]# ip l set ens33 up
    
  3. 开启混杂模式
    ip link set dev enp0s8 promisc on 
    
  4. 设置MTU值,即设置最大传输单元
    ip link set enp0s8 mtu 1000
    
  5. 设置mac地址
    ip link set enp0s8 address a0:0a:b0:0b:c0:0c 
    
  6. 添加一对虚拟网卡
     ip link add  r1-inside type veth peer name r1-outside
    

4.3 route

route是设置路由相关信息的option

[root@node1 ~]# ip route
default via 192.168.71.1 dev ens33 proto dhcp metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev docker_gwbridge proto kernel scope link src 172.18.0.1
192.168.71.0/24 dev ens33 proto kernel scope link src 192.168.71.183 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

显示路由表做简要说明如下:

  • 路由第一部分是一个IP或者IPv6地址,也可以跟着一个斜杠和掩码长度(如:192.168.0.0/24)。如果没有掩码长度,ip命令就假定是一个单一ip 地址。
  • dev 是关键字,其后面是网卡的名字
  • via 关键字,其后面是下一跳路由器的地址。其实就是网关IP。
  • metric 关键字,其后面跟一个数字,定义路由的优先值。Metric的值越小,优先级越高,没有则为0。
  • src 关键字,其后面跟一个IP地址,在向目的发送数据包时,选择的源地址。
  • proto关键字,其后面是IP地址设置的方式,如:static、dhcp,比较特殊的是kernel。
  1. 列出所有路由,show可缺省
[root@node1 ~]# ip route
default via 192.168.71.1 dev ens33 proto dhcp metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev docker_gwbridge proto kernel scope link src 172.18.0.1
192.168.71.0/24 dev ens33 proto kernel scope link src 192.168.71.183 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
  1. 添加一个缺省网关
ip route add default via  10.0.3.254  dev enp0s8
  1. 删除一个缺省网关
ip route deletedefault via  10.0.3.254  dev enp0s8

4.4 rule

rule是策略路由相关的option

基于策略的路由比传统路由在功能上更强,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址等属性来选择转发路径。

在linux系统中,一条路由策略rule主要包含三个信息,即rule的优先级,条件,路由表。其中rule的优先级数字越小表示优先级越高,然后是满足什么条件下由指定的路由表来进行路由。

在linux系统启动时,内核会为路由策略数据库配置三条缺省的规则,即rule 0,rule 32766, rule 32767(数字是rule的优先级,0优先级最高)

[root@node1 ~]# ip rule show
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

在linux系统中是按照rule的优先级顺序依次匹配。假设系统中只有优先级为0,32766及32767这三条规则。那么系统首先会根据规则0在本地路由表里寻找路由,如果目的地址是本网络,或是广播地址的话,在这里就可以找到匹配的路由;如果没有找到路由,就会匹配下一个不空的规则,在这里只有32766规则,那么将会在主路由表里寻找路由;如果没有找到匹配的路由,就会依据32767规则,即寻找默认路由表;如果失败,路由将失败。

有3个默认的规则,在/etc/iproute2/rt_tables中存储。

[root@node1 ~]# cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
...
  • 255 :local 本地路由表存有本地接口地址,广播地址,已及NAT地址. local表由系统自动维护…管理员不能操作此表
  • 254:main 主路由表 传统路由表,ip route若没指定表亦操作表254.一般存所有的路由
  • 253:default 默认路由表一般存放默认路由

进行路由时,正是根据路由规则来进行匹配,按优先级从高到低匹配,直到找到合适的规则.所以在应用中配置默认路由是必要的

语法:

[root@node1 ~]# ip rule help
Usage: ip rule { add | del } SELECTOR ACTION
       ip rule { flush | save | restore }
       ip rule [ list [ SELECTOR ]]
SELECTOR := [ not ] [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK[/MASK] ]
            [ iif STRING ] [ oif STRING ] [ pref NUMBER ] [ l3mdev ]
            [ uidrange NUMBER-NUMBER ]
ACTION := [ table TABLE_ID ]
          [ nat ADDRESS ]
          [ realms [SRCREALM/]DSTREALM ]
          [ goto NUMBER ]
          SUPPRESSOR
SUPPRESSOR := [ suppress_prefixlength NUMBER ]
              [ suppress_ifgroup DEVGROUP ]
TABLE_ID := [ local | main | default | NUMBER ]

SELECTOR具体参数如下:

From — 源地址
To — 目的地址(这里是选择规则时使用,查找路由表时也使用)
Tos — IP包头的TOS(type of sevice)域
Dev — 物理接口
Fwmark — 防火墙参数

ACTION动作:

Table 指明所使用的表
Nat 透明网关
Action prohibit 丢弃该包,并发送 COMM.ADM.PROHIITED的ICMP信息
Reject 单纯丢弃该包
Unreachable丢弃该包, 并发送 NET UNREACHABLE的ICMP信息

策略路由一般手工添加路由表,路由表的添加只需编辑rt_tables文件,规定表序号,表名即可

ip rule add from 192.168.1.112/32 [tos 0x10] table 202 pref 999 prohibit 
ip rule add to 192.168.1.2 pref 1000 table 201
ip rule add from 192.168.1.0/24 pref 1001 table 201
ip rule add [from 0/0] table test1 pref 1003 

以上内容参考乐大师

5. ifcfg命令家族

ifcfg命令家族:ifconfig、route和netstat
前文提到ifcfg命令家族功能和ip相似,并且长时间未维护,很有可能被ip取代,所以本文将简要介绍

5.1 ifconfig

1. 语法及参数
  • ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。

  • 用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

  • 此工具在net-tools工具包中,可以通过yum install net-tools安装

NAME
       ifconfig - configure a network interfaceSYNOPSIS
       ifconfig [-v] [-a] [-s] [interface]
       ifconfig [-v] interface [aftype] options | address ...

interface:接口的名称。这通常是一个驱动程序名,后面跟着一个单元号,例如用于第一个以太网接口的eth0。

选项options

选项说明
up此标志将导致激活接口。如果将地址分配给接口,则会隐式指定该地址。
down此标志导致关闭此接口的驱动程序。
[-]arp启用或禁用在此接口上使用ARP协议。
[-]promisc启用或禁用接口的混杂模式。如果选中,网络上的所有数据包都将由接口接收。混杂模式是指一台机器的网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。
[-]allmulti启用或禁用所有多播模式。如果选中,则接口将接收网络上的所有多播数据包。
metric N此参数设置接口度量。它在GNU/Linux下不可用
mtu N此参数设置接口的最大传输单元(MTU)。
dstaddr addr为点对点链路(如PPP)设置远程IP地址.这个关键字现在已经过时了;使用pointopoint关键字代替。
netmask addr设置此接口的IP网络掩码。此值默认为通常的A、B或C类网络掩码(从接口IP地址派生),但可以设置为任何值。
add addr/prefixlen向接口添加IPv 6地址
del addr/prefixlen从接口中删除IPv 6地址
tunnel ::aa.bb.cc.dd创建一个新的SIT(IPv6-in-IPv4)设备,通过隧道到达给定的目的地。
irq addr设置此设备使用的中断行。并非所有设备都可以动态更改其IRQ设置。
io_addr addr为该设备设置I/O空间中的起始地址
mem_start addr设置此设备使用的共享内存的起始地址。只有少数几个设备需要这个
media type设置设备要使用的物理端口或介质类型。并非所有设备都可以更改此设置,以及那些可以更改其支持的值的设备。典型的类型值是10 base 2(细以太网)、10 base T(双绞线10 Mbps以太网)、AUI(外收发信机)等。驱动的特殊介质类型可以用来告诉驱动对媒体进行自动感知。同样,并不是所有的驱动都能做到这一点。
[-]broadcast [addr]如果地址参数给定,则为该接口设置协议广播地址。否则,设置(或清除)接口的IFF_BROADCAST标志。
[-]pointopoint [addr]这个关键字启用了接口的点对点模式,这意味着它是两台机器之间的直接链接,没有其他人监听它。如果地址参数也给出了,就像过时的dstaddr关键字一样,设置链接另一端的协议地址。否则,设置或清除接口的IFF_POINTOPOINT标志。
hw class address如果设备驱动程序支持此操作,则设置此接口的硬件地址(mac地址)。关键字后面必须跟着硬件类的名称和相当于硬件地址的可打印的ASCII。目前支持的硬件类包括ether (以太网)、ax25(AMPRAX.25)、ARCnet和netrom(AMPR NET/ROM)。
multicast在接口上设置多播标志。这通常不应该需要,因为驱动程序本身设置正确的标志。
address要分配给此接口的IP地址。
txqueuelen length设置设备的传输队列的长度。对于具有高延迟(调制解调器链路,ISDN)的较慢设备,将其设置为小值是有用的,以防止快速批量传输过多地干扰诸如telnet之类的交互通信。
2. 常用功能
  1. 接口及地址查看
    ifconfig [interface]
    ifconfig -a 显示所有接口,-a可缺省
[root@node1 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.71.183  netmask 255.255.255.0  broadcast 192.168.71.255
        inet6 fe80::3872:4f8b:dbfc:1aa2  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:79:08:6b  txqueuelen 1000  (Ethernet)
        RX packets 14790  bytes 1205753 (1.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1636  bytes 148104 (144.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0x2000
  1. 启用或者禁用接口
    ifconfig IFACE IP/MASK [up/down]
[root@node1 ~]# ifconfig ens33 192.168.71.184/24 down	#好的,连不上了
[root@node1 ~]# ifconfig ens33 192.168.71.184/24 up

注意:地址及掩码可缺省

也可以以这种形式:
ifconfig ens33 192.168.71.184 netmask 255.255.255.0 down

  1. 临时修改网络地址
    ifconfig IFACE IP netmask NETMASK
[root@node1 ~]# ifconfig ens33 192.168.71.184/24

重启后失效,如果要长久使用,则需要修改配置文件

  1. 显示摘要信息
[root@node1 ~]# ifconfig -s
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0          1500        0      0      0 0             0      0      0      0 BMU
docker_gwbridge  1500     3472      0      0 0           534      0      0      0 BMU
ens33            1500     3472      0      0 0           534      0      0      0 BMRU
lo              65536        0      0      0 0             0      0      0      0 LRU
virbr0           1500        0      0      0 0             0      0      0      0 BMU
  1. 修改网卡MAC地址
[root@node1 ~]# ifconfig docker0 hw ether 00:0c:29:49:e3:f4

5.2 route

route命令:路由查看及管理,路由条目类型:

	1.	主机路由:目标地址为单个ip
	2.	网络路由:目标地址为ip网络
	3.	默认路由:目标为任意主机,0.0.0./0.0.0.0

1. 查看
route -n 显示数字ip,不加n反解地址及端口号

[root@node1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.71.1    0.0.0.0         UG    100    0        0 ens33
192.168.71.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
[root@node1 ~]# 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.71.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33

U表示活跃,G表示网关

2. 添加

route add [-net|-host] target [netmask Nm] [gw GW] [[dev] if]

1 - net 网络路由,host主机路由
2 - target 网络地址
3 - netmask 子网掩码
4 - gw 网关,下一跳地址

示例1:

route add -net 192.168.72.0/24(或写为netmask 255.255.255.0) gw 192.168.20.1 dev enp1s0 

解释:

192.168.72.0为指定到达的网络
192.168.20.1为下一跳的网关,必须与自己的某块网卡在同一网络中
dev enp1s0 由哪个网卡访问,可省略

route -n 
192.168.72.0    192.168.20.1    255.255.255.0   UG    0      0        0 enp1s0	

示例2:

route add default gw 192.168.0.1 #添加默认网关

3. 删除

route del  [-net|-host] target [netmask Nm] [gw GW] [[dev] if]

示例1:

route del -net 192.168.72.0/24 [gw 192.168.20.1]	#网关可缺省

示例2:

route del default

5.3 netstat

Print network connections, routing tables, interface statistics, masquerade connec‐tions, and multicast memberships

  1. 显示路由表信息
netstat -rn

和route -n大体相似

-r 显示内核路由表
-n 不反解ip为主机名

[root@node1 ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.71.1    0.0.0.0         UG        0 0          0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
  1. 显示网络连接
netstat [-t/--tcp][-u/--udp]	  		  	 		
参数说明
-ttcp协议相关链接,均有其状态:FSM (finite state machine,有限状态机)
-uudp协议相关
-w裸套接字相关连接
-l处于监听状态的连接,不加表示已建立
-a所有状态,不加表示当前只处于连接中的,不包括-l
-n以数字格式显示ip
-e扩展格式
-p显示相关进程和pid

常用组合:-nltp,-nlup, -tan, -uan

[root@node1 ~]# netstat -nltp
Active Internet connections (only servers)
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      857/rpcbind
...
tcp6       0      0 ::1:25                  :::*                    LISTEN      1347/master
[root@node1 ~]# netstat -nlup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 192.168.122.1:53        0.0.0.0:*                           1636/dnsmasq
...
udp        0      0 0.0.0.0:602             0.0.0.0:*                           857/rpcbind
  1. 显示接口相关的统计数据
netstat -i/-I<无空格>[IFACE] # IFACE为接口名字

① 所有接口:

[root@node1 ~]# netstat -i
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500    40099      1      9 0          6142      0      0      0 BMRU
lo              65536        0      0      0 0             0      0      0      0 LRU
virbr0           1500        0      0      0 0             0      0      0      0 BMU

② 指定接口:

netstat -I<eth1> #不能加空格
[root@node1 ~]# netstat -Iens33
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33            1500    42409      1      9 0          6364      0      0      0 BMRU

6. nmcli命令

6.1 介绍

RHEL 和 CentOS 系统默认使用 NetworkManager 来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用 nmcli 命令来管理 NetworkManager 服务。nmcli 是一款基于命令行的网络配置工具,功能丰富,参数众多。

mcli命令 是一个非常丰富和灵活的命令行工具,可以完成网卡上的所有配置,并可以写入配置文件中
centos默认安装,而ubuntu需要手动安装apt install network-manager

SYNOPSIS

NAME
       nmcli - command-line tool for controlling NetworkManagerSYNOPSIS
       nmcli [OPTIONS...] {help | general | networking | radio | connection | device | agent | monitor} [COMMAND] [ARGUMENTS...]

OPTIONS

选项作用
-t简洁输出,会将多余的空格删除,
-p人性化输出,输出很漂亮
-n优化输出,有两个选项tabular(不推荐)和multiline(默认)
-c颜色开关,控制颜色输出(默认启用)
-f过滤字段,all为过滤所有字段,common打印出可过滤的字段
-g过滤字段,适用于脚本,以:分隔
-w超时时间

COMMANDS

  1. general 常规选项
    命令格式:nmcli general {status|hostname|permissions|logging}
    命令描述:使用此命令可以显示网络管理器状态和权限,你可以获取和更改系统主机名,以及网络管理器日志记录级别和域。
  • status
    显示网络管理器的整体状态。
    [root@node1 ~]# nmcli gen status
    STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN
    connected  full          enabled  enabled  enabled  enabled
    
  • hostname
    获取主机名或该更主机名,在没有给定参数的情况下,打印配置的主机名,当指定了参数,它将被移交给NetworkManager,以设置为新的系统主机名。立即生效,并且重启后仍有效。
    [root@node1 ~]# nmcli gen hostname node1-centos
    [root@node1 ~]# cat /etc/hostname
    node1-centos
    
  • permissions
    显示当前用户对网络管理器可允许的操作权限。 如启用和禁用网络、更改WI-FI和WWAN状态、修改连接等。
    [root@node1 ~]# nmcli gen permission
    PERMISSION                                                        VALUE
    org.freedesktop.NetworkManager.enable-disable-network             yes
    org.freedesktop.NetworkManager.enable-disable-wifi                yes
    org.freedesktop.NetworkManager.enable-disable-wwan                yes
    ...
    
  • logging
    获取和更改网络管理器日志记录级别和域,没有任何参数当前日志记录级别和域显示。为了更改日志记录状态, 请提供级别和域参数,有关可用级别和域值, 参阅NetworkManager.conf(5)
    [root@node1 ~]# nmcli gen logging
    LEVEL  DOMAINS                                                                                                                            
    INFO
    PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD,PROXY
    

6.2 networking 网络控制

命令格式:nmcli networking {on|off|connectivity}
命令描述:查询网络管理器网络状态,开启和关闭网络

选项:

    on: 开启所有接口
    off: 禁用所有接口
    connectivity: 获取网络状态,可选参数check告诉网络管理器重新检查连接性,否则显示最近已知的状态。而无需重新检查。(可能的状态如下所示)
        - none: 主机为连接到任何网络
        - portal: 无法到达完整的互联网
        - limited: 主机已连接到网络,但无法访问互联网
        - full: 主机连接到网络,并具有完全访问
        - unknown: 无法找到连接状态
	[root@node1 ~]# nmcli networking connectivity
	full
	[root@node1 ~]# nmcli networking connectivity check
	full
	[root@node1 ~]# nmcli networking off
	[root@node1 ~]#
	Network error: Software caused connection abort	#好的,连不上了

6.3 connection 连接管理

命令格式:nmcli connection {show|up|down|modify|add|edit|clone|delete|monitor|reload|load|import|export}
这是主要使用的一个功能

  • show

    show有两种用法,分别是:

    ① 列出活动的连接,或进行排序(±为升降序)

    # 查看所有连接状态
    [root@www ~]# nmcli connection show
    # 等同于nmcli connection show --order +active
    [root@www ~]# nmcli connection show --active
    # 以活动的连接进行排序
    [root@www ~]# nmcli connection show --order +active
    # 将所有连接以名称排序
    [root@www ~]# nmcli connection show --order +name
    # 将所有连接以类型排序(倒序)
    [root@www ~]# nmcli connection show --order -type
    

    ② 查看指定连接的详细信息

    [root@node1 ~]# nmcli connection show --order +name
    NAME                UUID                                  TYPE      DEVICE
    System ens33        c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  --
    Wired connection 1  e741eeb8-242e-3dad-8f70-df385496b90f  ethernet  --
    Wired connection 2  d05a7dea-7039-39c7-9089-d462f1402c4b  ethernet  ens33
    [root@node1 ~]# nmcli connection show ens33
    Error: ens33 - no such connection profile.		#奇怪并不好用
    
  • up/down
    激活连接/停用连接,提供连接名称或uuid进行激活,若未提供,则可以使用ifname指定设备名进行激活。

[root@node1 ~]# nmcli conn up ifname ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
  • modify
    这些属性可以用nmcli connection show eth0进行获取,然后可以修改、添加或删除属性,若要设置属性,只需指定属性名称后跟值,空值将删除属性值,同一属性添加多个值使用+。同一属性删除指定值用-加索引。
    • 添加多个ip
    	# 添加三个
    	[root@www ~]# nmcli connection modify eth0 +ipv4.addresses 192.168.100.102/24
    	[root@www ~]# nmcli connection modify eth0 +ipv4.addresses 192.168.100.103/24
    	[root@www ~]# nmcli connection modify eth0 +ipv4.addresses 192.168.100.104/24
    	# 查看
    	[root@www ~]# nmcli -f IP4 connection show eth0
    	IP4.ADDRESS[1]:                         192.168.100.101/24
    	IP4.GATEWAY:                            192.168.100.100
    	IP4.DNS[1]:                             8.8.8.8
    	# 启用配置
    	[root@www ~]# nmcli connection up eth0
    	Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/18)
    	# 再次查看
    	[root@www ~]# nmcli -f IP4 connection show eth0
    	IP4.ADDRESS[1]:                         192.168.100.101/24
    	IP4.ADDRESS[2]:                         192.168.100.102/24
    	IP4.ADDRESS[3]:                         192.168.100.103/24
    	IP4.ADDRESS[4]:                         192.168.100.104/24
    	IP4.GATEWAY:                            192.168.100.100
    	IP4.DNS[1]:                             8.8.8.8
    • 删除指定ip
    	[root@www ~]# nmcli -f IP4 connection show eth0
    	IP4.ADDRESS[1]:                         192.168.100.101/24
    	IP4.ADDRESS[2]:                         192.168.100.102/24
    	IP4.ADDRESS[3]:                         192.168.100.103/24
    	IP4.ADDRESS[4]:                         192.168.100.104/24
    	IP4.GATEWAY:                            192.168.100.100
    	IP4.DNS[1]:                             8.8.8.8
    	# 删除索当前索引为2的地址
    	[root@www ~]# nmcli connection modify eth0 -ipv4.addresses 2
    	# 查看
    	[root@www ~]# nmcli -f IP4 connection show eth0
    	IP4.ADDRESS[1]:                         192.168.100.101/24
    	IP4.ADDRESS[2]:                         192.168.100.102/24
    	IP4.ADDRESS[3]:                         192.168.100.103/24
    	IP4.ADDRESS[4]:                         192.168.100.104/24
    	IP4.GATEWAY:                            192.168.100.100
    	IP4.DNS[1]:                             8.8.8.8
    	# 再次激活
    	[root@www ~]# nmcli connection up eth0
    	Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/19)
    	# 查看
    	[root@www ~]# nmcli -f IP4 connection show eth0
    	IP4.ADDRESS[1]:                         192.168.100.101/24
    	IP4.ADDRESS[2]:                         192.168.100.102/24
    	IP4.GATEWAY:                            192.168.100.100
    	IP4.DNS[1]:                             8.8.8.8
    
  • add
    这是创建一个新的连接,需要指定新创建连接的属性,语法与modify相同。
[root@www ~]# nmcli con add con-name eth1 type ethernet  autoconnect yes ifname eth0
# con-name     		连接名称
# type              连接类型
# autoconnect 		是否自动连接
# ifname          	连接到的设备名称

更多的类型或方法可以使用nmcli connection add help查看。

  • clone

克隆连接,克隆一个存在的连接,除了连接名称和uuid是新生成的,其他都是一样的。

[root@www ~]# nmcli connection clone eth0 eth0_1
  • delete

删除连接,这将删除一个连接。

[root@www ~]# nmcli connection delete eth0_1
  • load

从磁盘加载/重新加载一个或多个连接文件,例如你手动创建了一个/etc/sysconfig/network-scripts/ifcfg-ethx连接文件,你可以将其加载到网络管理器,以便管理。

[root@www ~]# echo -e "TYPE=Ethernet\nNAME=ethx" > /etc/sysconfig/network-scripts/ifcfg-ethx
[root@www ~]# nmcli connection show
NAME  UUID                                  TYPE            DEVICE 
eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  eth0 
[root@www ~]# nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ethx 
[root@www ~]# nmcli connection show
NAME  UUID                                  TYPE            DEVICE 
eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  eth0   
ethx  d45d97fb-8530-60e2-2d15-d92c0df8b0fc  802-3-ethernet  --
  • monitor

监视连接配置文件活动。每当指定的连接更改时, 此命令都会打印一行。要监视的连接由其名称、UUID 或 D 总线路径标识。如果 ID 不明确, 则可以使用关键字 id、uuid 或路径。有关 ID 指定关键字的说明, 请参阅上面的连接显示。

监视所有连接配置文件, 以防指定无。当所有监视的连接消失时, 该命令将终止。如果要监视连接创建, 请考虑使用带有 nmcli 监视器命令的全局监视器

[root@www ~]# nmcli connection monitor eth0

6.4 device 设备管理

命令格式:nmcli device {status|show|set|connect|reapply|modify|disconnect|delete|monitor|wifi|lldp}
显示和管理设备接口。该选项有很多功能,例如连接wifi,创建热点,扫描无线,邻近发现等,下面仅列出常用选项。详细功能可使用nmcli device help查看。

  • status

    打印设备状态,如果没有将命令指定给nmcli device,则这是默认操作。

    	[root@www ~]# nmcli device status
    	DEVICE  TYPE      STATE      CONNECTION 
    	eth0    ethernet  connected  eth0       
    	lo      loopback  unmanaged  --         
    	[root@www ~]# nmcli device
    	DEVICE  TYPE      STATE      CONNECTION 
    	eth0    ethernet  connected  eth0       
    	lo      loopback  unmanaged  --
    
  • show

    显示所有设备接口的详细信息。

    # 不指定设备接口名称,则显示所有接口的信息
    [root@www ~]# nmcli device show eth0
    GENERAL.DEVICE:                         eth0
    GENERAL.TYPE:                           ethernet
    GENERAL.HWADDR:                         00:0C:29:99:9A:A1
    GENERAL.MTU:                            1500
    GENERAL.STATE:                          100 (connected)
    GENERAL.CONNECTION:                     eth0
    GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/9
    WIRED-PROPERTIES.CARRIER:               on
    IP4.ADDRESS[1]:                         192.168.100.101/24
    IP4.ADDRESS[2]:                         192.168.100.102/24
    IP4.GATEWAY:                            192.168.100.100
    IP4.DNS[1]:                             8.8.8.8
    
  • set

    设置设备属性

    [root@www ~]# nmcli device set ifname eth0 autoconnect yes
    
  • connect

    连接设备。提供一个设备接口,网络管理器将尝试找到一个合适的连接, 将被激活。它还将考虑未设置为自动连接的连接。(默认超时为90s)

    [root@www ~]# nmcli dev connect eth0
    Device 'eth0' successfully activated with '5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03'.
    
  • reapply(重新申请)

    使用上次应用后对当前活动连接所做的更改来更新设备。

    [root@www ~]# nmcli device reapply eth0
    Connection successfully reapplied to device 'eth0'.
    
  • modify

    修改设备上处于活动的设备,但该修改只是临时的,并不会写入文件。(语法与 nmcli connection modify 相同)

    [root@www ~]# nmcli device modify eth0 +ipv4.addresses 192.168.100.103/24
    Connection successfully reapplied to device 'eth0'.
    [root@www ~]# nmcli dev show eth0
    [root@www ~]# nmcli device modify eth0 -ipv4.addresses 1
    Connection successfully reapplied to device 'eth0'.
    
  • disconnect

    断开当前连接的设备,防止自动连接。但注意,断开意味着设备停止!但可用 connect 进行连接

    [root@www ~]# nmcli device disconnect eth0
    
  • delete

    删除设备,该命令从系统中删除接口。请注意, 这仅适用于诸如bonds, bridges, teams等软件设备。命令无法删除硬件设备 (如以太网)。超时时间为10秒

    [root@www ~]# nmcli device delete bonds
    
  • monitor

    监视设备活动。每当指定的设备更改状态时, 此命令都会打印一行。

    监视所有设备以防未指定接口。当所有指定的设备消失时, 监视器将终止。如果要监视设备添加, 请考虑使用带有 nmcli 监视器命令的全局监视器。

    [root@www ~]# nmcli device monitor eth0
    

6.5 nmcli 返回状态码

mcli 如果成功退出状态值为0,如果发生错误则返回大于0的值。

状态码说明
0成功-指示操作已成功
1位置或指定的错误
2无效的用户输入,错误的nmcli调用
3超时了(请参阅 --wait 选项)
4连接激活失败
5连接停用失败
6断开设备失败
7连接删除失败
8网络管理器没有运行
10连接、设备或接入点不存在
65当使用 --complete-args 选项,文件名应遵循。

7. 其他常用命令

7.1 ifup/ifdown

ifup - bring a network interface up
ifdown - take a network interface down

ifup iface/ifdown iface

启用关闭网卡

注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-iface来识别接口并完成配置,所以没有配置文件无法使用此命令

7.2 配置主机名

  1. hostname命令:
    查看:hostname
    配置:hostname HOSTNAME

    重启后失效

  2. hostnamectl命令:
    hostnamectl status显示当前主机名设定
    hostnamectl set-hostname abc 设置主机名

    设置立即生效,而且会写入/etc/hostname文件

  3. 修改配置文件:/etc/hostname

    root@ubuntu:~# cat /etc/hostname
    ubuntu1
    
     重启后生效
    
  4. nmcli gen hostname

    [root@node1 ~]# nmcli gen hostname node1-centos
    [root@node1 ~]# cat /etc/hostname
    node1-centos
    

    设置立即生效,而且会写入/etc/hostname文件

7.3 设置DNS服务器指向

配置文件/etc/resolv.conf

	nameserver 8.8.8.8

注意:最多可以设置3个域名

7.4 配置域名解析

配置文件:/etc/hosts

			192.168.70.128  cluster-endpoint	

7.5 ss

用于显示socket状态

ss [option] [filter]

option选项:

选项说明
-ttcp
-uudp
-wraw socket
-l监听连接
-a所有状态
-n数字格式
-p相关程序及其pid
-e扩展格式信息
-m内存用量
-o计时器信息
[root@node1 ~]# ss -nltp
State      Recv-Q Send-Q                        Local Address:Port                                       Peer Address:Port
...
LISTEN     0      128                                    [::]:80                                                 [::]:*                   users:(("nginx",pid=1354,fd=7),("nginx",pid=1353,fd=7),("nginx",pid=1352,fd=7))
LISTEN     0      128                                    [::]:22                                                 [::]:*                   users:(("sshd",pid=1155,fd=4))
LISTEN     0      100                                   [::1]:25                                                 [::]:*                   users:(("master",pid=1347,fd=13))
[root@node1 ~]# ss -nltp|grep 22
LISTEN     0      5      192.168.122.1:53                       *:*                   users:(("dnsmasq",pid=1636,fd=6))
LISTEN     0      128          *:22                       *:*                   users:(("sshd",pid=1155,fd=3))
LISTEN     0      128       [::]:22                    [::]:*                   users:(("sshd",pid=1155,fd=4))

详细参考:Linux之ss命令

7.6 路由相关配置文件

CentOS的网络配置文件路径位于/etc/sysconfig/network-scripts/目录下,其中ifcfg-*文件为网络接口的配置文件,route-*文件为路由配置文件

永久添加路由 重启network服务生效 支持用#注释

  • 方法一

    a、添加默认网关,即默认路由

    两块网卡在配置文件ifcfg-ethX中不配置网关,在/etc/sysconfig/network中设置默认网关

    vim /etc/sysconfig/networkGATEWAY=192.168.14.254
    

    b、添加路由 创建/etc/sysconfig/static-routes配置文件

    vim /etc/sysconfig/static-routesany net 192.168.15.0/24 gw 192.168.14.254any host 123.57.223.144 gw 192.168.14.254any host 123.57.190.33/32 gw 192.168.8.1
    
  • 方法二
    在/etc/sysconfig/network-scripts/下创建配置文件route-ethX

    vim /etc/sysconfig/network-scripts/route-eth00.0.0.0/0 via 192.168.14.254 dev eth0 这条为默认路由,另一种格式 default 192.168.14.254 dev eth0192.168.15.0/24 via 192.168.14.254 dev eth0123.57.223.144 via 192.168.14.254 dev eth0vim /etc/sysconfig/network-scripts/route-eth1123.57.190.33 via 192.168.8.1 dev eth1
    

配置完重启服务 service network restart

7.7 查看机器可用端口

[root@node-252 ~]#  sysctl -a |grep port_range
net.ipv4.ip_local_port_range = 32768    60999
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.ens33.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"

7.8 traceroute

显示数据包到主机间的路径,traceroute命令用于追踪数据包在网络上的传输时的全部路径,Centos7默认发送的数据包大小是60字节。

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。

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

命令格式

traceroute [-dFlnrvx][-f<存活数值>][-g<网关>][-i<网络界⾯>]\
					[-m<存活数值>][-p<通信端⼝>][-s<来源地址>][-t<服务类型>][-w<超时秒数>]\
					[主机名称或IP地址][数据包大小]

主机:指定目的主机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@node-136 ~]# traceroute -n 110.242.68.3 -m 50 -I
traceroute to 110.242.68.3 (110.242.68.3), 50 hops max, 60 byte packets
 1  192.168.81.1  0.497 ms  0.465 ms  0.437 ms
 2  42.180.224.129  23.652 ms  23.630 ms  23.636 ms
 3  42.87.241.213  14.185 ms  14.148 ms  13.821 ms
 4  113.230.175.153  51.780 ms  51.995 ms  52.711 ms
 5  219.158.104.206  46.380 ms  46.832 ms *
 6  110.242.66.166  34.280 ms  34.513 ms  34.470 ms
 7  221.194.45.130  36.360 ms  35.232 ms  35.641 ms
 8  * * *
 9  * * *
10  * * *
11  110.242.68.3  34.648 ms  34.787 ms  34.467 ms

记录按序列号从1开始,每个记录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实3就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用traceroute -q 4 http://rumenz.com,表示向每个网关发送4个数据包。

同一行有多个ip,因为到达目标主机的路径有多个,所以路径中的ip可能也会显示多个

有时我们traceroute一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n参数来避免DNS解析,以IP格式输出数据。

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

7.9 dhclient

用dhclient动态配置IP地址。dhclient 命令与网卡的设备名(如eth0)一起使用时,向DHCP服务器请求一个IP地址和其他功能:

dhclient eth0

一般而言,由DHCP服务器配置的网络选项包括:IP地址、子网掩码、访问外部网络的网关地址以及此网络上任何DNS服务器的IP地址。
换言之,dhclient eth0命令不仅能像ip命令那样分配IP地址,而且还会在路由表中建立默认的路由(由ip route命令可以得到路由表)。此外,它还会把DNS服务器的IP地址添加到/etc/resolv.conf配置文件中。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部