linux网络配置

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.3 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 查看机器可用端口

1. 虚拟机网络

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

开启VMware之后,选择编辑,可以看到虚拟网络编辑器
linux网络配置_第1张图片
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(桥接模式)
linux网络配置_第2张图片

在首次创建虚拟机系统的时候,可以选择网络模式,而非必须在虚拟网络编辑器中设置,例如:
linux网络配置_第3张图片
二、系统设置

[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,此处默认即可,记住这个网关,后面在系统中配置会使用

linux网络配置_第4张图片
二、windows设置
linux网络配置_第5张图片
三、系统设置(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)

linux网络配置_第6张图片

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.yaml

root@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命令即是其中之一。
linux网络配置_第7张图片

NAME
       ip - show / manipulate routing, devices, policy routing and tunnels

SYNOPSIS
       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 路由表
rule IP策略
tunnel IP隧道
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.3 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 interface

SYNOPSIS
       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]	  		  	 		
参数 说明
-t tcp协议相关链接,均有其状态:FSM (finite state machine,有限状态机)
-u udp协议相关
-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 NetworkManager

SYNOPSIS
       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选项:

选项 说明
-t tcp
-u udp
-w raw 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/network
    
    GATEWAY=192.168.14.254
    

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

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

    vim /etc/sysconfig/network-scripts/route-eth0
    
    0.0.0.0/0 via 192.168.14.254 dev eth0 这条为默认路由,另一种格式 default 192.168.14.254 dev eth0
    
    192.168.15.0/24 via 192.168.14.254 dev eth0
    
    123.57.223.144 via 192.168.14.254 dev eth0
    
    vim /etc/sysconfig/network-scripts/route-eth1
    
    123.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"

你可能感兴趣的:(#,linux,网络配置,网络,linux,服务器)