linux网络管理

    如果我们需要搭建云环境,做集群,都离不开网络,所以在linux中,对于网络的了解至关重要,这里不缀余网络理论相关基础知识,仅对网络配置的命令进行归纳总结

   

    对于Centos6和7都可用的命令:

    1. ifconfig命令
        ifconfig [interface]

        显示接口信息:

            # ifconfig -a   显示所有活动和非活动状态接口

            # ifconfig IFACE [up|down]  显示某特定接口

                ifconfig interface [aftype] options | address ...

        配置接口地址:  注意:立即生效;

            # ifconfig IFACE IP/mask [up]
            # ifconfig IFACE IP netmask MASK

wKioL1XvkcmQHTyFAABLsYp22xA538.jpg

        启用混杂模式:[-]promisc:即便报文不是传输到此接口的也接收一份,便于抓包,监测

wKiom1Xvj53y4cF2AAAbRMSo1Yo517.jpg

    2.route命令

            查看:route -n

            添加:route add
            route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] If]

                添加路由示例:

                目标:192.168.1.3  网关:172.16.0.1
                ~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

                目标:192.168.0.0 网关:172.16.0.1
                ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
                ~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

                添加默认路由,网关:172.16.0.1
                 ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
                 ~]# route add default gw 172.16.0.1

                删除:route del
                        route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
                示例:
                目标:192.168.1.3  网关:172.16.0.1
                ~]# route del -host 192.168.1.3

                目标:192.168.0.0 网关:172.16.0.1
                ~]# route del -net 192.168.0.0 netmask 255.255.255.0


    3.netstat命令:

            显示网络连接状态:
            -t: tcp协议相关

            -u: udp协议相关
            -w: raw socket相关---裸套接字
            -l: 处于监听状态
            -a: 所有状态,不加-a仅显示已经建立的
            -n: 以数字显示IP和端口;
            -e:扩展格式
            -p: 显示相关进程及PID
            常用组合:
              -tan, -uan, -tnl, -unl

wKiom1XvnybBXFI-AAEmeXSvASg163.jpg


wKioL1XvoVKg0_01AAD9STNovZA850.jpg
        显示路由表:
            netstat  {--route|-r} [--numeric|-n]

                -r: 显示内核路由表
                -n: 数字格式

        显示接口统计数据:
                # netstat -i
                # netstat -I IFACE

wKiom1XvnyagsdLiAABz8SAfiQM988.jpg

    4.ip命令:

        ip - show / manipulate routing, devices, policy routing and tunnels
        ip [ OPTIONS ] OBJECT { COMMAND | help }
                OBJECT := { link | addr | route }
⑴.link OBJECT:
ip link - network device configuration  主要用于管理二层属性
set
    dev IFACE
    可设置属性:
    up and down:激活或禁用指定接口;

wKioL1XvrwHSgU3tAABuXB5PMoo377.jpg
show
    [dev IFACE]:指定接口
    [up]:仅显示处于激活状态的接口

wKioL1XvrwCgQ6AFAACvJJIKxrM734.jpg

更全面-s

wKiom1XvrNXQhkC6AAFS4hLvDcI582.jpg
⑵.addr OBJECT:

ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 仅链接可用;
host: 本机可用;
[broadcast ADDRESS]:指明广播地址         

wKiom1XvrNaALHZ6AAFzVqSYJo4655.jpg

添加地址会发现原地址还在,只是在这个网卡上又加了个地址,现在网卡有两个地址,想要更改地址需要使用replace子命令

wKiom1XvrsGyYYwUAADzwNEqSHE503.jpg

指定别名添加:

wKiom1XvsO3yee11AAGGmJedsyA842.jpg

发现多了eth0:0

wKiom1XvsO3TQL2lAAFc9mqlaKQ840.jpg

删除地址:

wKioL1XvsxmRzQglAAFnLLO17Ho170.jpg

指定别名删除地址:

wKioL1Xvsxmz3zsoAAEnwrc0PEI719.jpg

ip address show - look at protocol addresses
     [dev DEVICE]
     [label PATTERN]
     [primary and secondary]

wKiom1XvrNXiGEssAAEZtKDmNYA860.jpg

ip address flush - flush protocol addresses
     使用格式同show

清空172/8的地址

wKioL1Xvtdzj1NXMAAH1U-eWLZM961.jpg                ⑶.ip route - routing table management
      ip route add
      添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP(source ip可以指                        定伪装的源地址)
          TARGET:
          主机路由:IP
          网络路由:NETWORK/MASK
      添加网关:ip route add defalt via GW dev IFACE
      删除路由:ip route del TARGET
         ip route show
         ip route flush:清空路由表
             [dev IFACE]
             [via PREFIX]
添加路由:

wKioL1XvtzfQtsxAAACYA2bV5hU727.jpg

删除路由:

wKioL1Xvt-iQxArUAAB6q2ItbCo945.jpg

添加默认网关:

ip route add default via 192.168.0.1

清空路由表:

ip route flush 172/8


    5.ss命令:和netstat命令差不多,但是比netstat高效

        格式:ss [OPTION]... [FILTER]
                选项:
                    -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 = 仅显示目标端口是某端口的连接

                    示例:’( dport = :ssh or sport = :ssh )’
            常用组合:
                -tan, -tanl, -tanlp, -uan

wKioL1Xvu3uhWr33AADl0PqImLo221.jpg

    通过修改配置文件配置网络:

    IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
        路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
        ①./etc/sysconfig/network-scripts/ifcfg-IFACE:
            DEVICE:此配置文件应用到的设备;
            HWADDR:对应的设备的MAC地址;
            BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
            NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;
            ONBOOT:在系统引导时是否激活此设备;
            TYPE:接口类型;常见有的Ethernet, Bridge;
            UUID:设备的惟一标识;
            IPADDR:指明IP地址;
            NETMASK:子网掩码;
            GATEWAY: 默认网关;
            DNS1:第一个DNS服务器指向;
            DNS2:第二个DNS服务器指向;
            USERCTL:普通用户是否可控制此设备;
            PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;

ifcfg文件示例:

wKiom1Xvu5CxALL8AABZfK6Cg08125.jpg

        ②./etc/sysconfig/network-scripts/route-IFACE
            两种风格:多条路由可以在同一文件中定义
                (1) TARGET via GW
                (2) 每三行定义一条路由
                    ADDRESS#=TARGET
                    NETMASK#=mask
                    GATEWAY#=GW

添加永久生效的路由:

vim/etc/sysconfig/network-scripts/route-eth0

wKioL1XvvVqCKd-tAAAovs6ZiC4832.jpg

        ③.给网卡配置多地址:/etc/sysconfig/network-scripts/ifcfg-网卡别名

            配置时建议删除HWADDR和UUID

            ifconfig:
                ifconfig IFACE_ALIAS

wKioL1XvwkLhpwJ4AAEeCNKtMKI816.jpg
    ip addr add
        配置文件:
        ifcfg-IFACE_ALIAS
        DEVICE=IFACE_ALIAS
    注意:网卡别名不能使用dhcp协议引导,因为dhcp根据mac地址分配地址,而我们定义网卡别名时删除了HWADDR字段,所以只能自己手动配置;

        ④.Linux网络属性配置的tui(text user interface):在此修改会同步到配置文件,永久有效
        system-config-network-tui
wKiom1XvwPaSeXPKAACMV61nxRw305.jpg       

        也可以使用setup找到;
        注意:记得重启网络服务方能生效;

        ⑥.配置主机名:

        配置当前主机的主机名:

            hostname [HOSTNAME]
            /etc/sysconfig/network

                HOSTNAME=

        ⑦.网络接口识别并命名相关的udev配置文件:/etc/udev/rules.d/70-persistent-net.rules

            修改完成后需要重新卸载,装载驱动才能生效:

            用lsmod查看网卡驱动是哪个

            卸载网卡驱动:
            modprobe -r e1000
            装载网卡驱动:
            modprobe e1000

centos7网络配置:

(1) 网卡命名机制
    systemd对网络设备的命名方式:
        (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1;
        (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1;
        (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0;
        (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56;
        (e) 上述均不可用时,则使用传统命名机制;
    上述命名机制中,有的需要biosdevname程序的参与;(需要安装)
(2) 名称组成格式
    en: ethernet
    wl: wlan
    ww: wwan
    名称类型:
        o<index>: 集成设备的设备索引号;
        s<slot>: 扩展槽的索引号;
        x<MAC>: 基于MAC地址的命名;
        p<bus>s<slot>: enp2s1

网卡设备的命名过程:
    第一步:
        udev, 辅助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules
    第二步:
        biosdevname 会根据/usr/lib/udev/rules.d/71-biosdevname.rules
    第三步:
        通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description
        ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH
回归传统命名方式:
    (1) 编辑/etc/default/grub配置文件
        GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
    (2) 为grub2生成其配置文件
        grub2-mkconfig -o /etc/grub2.cfg
    (3) 重启系统

地址配置工具:nmcli

    nmcli  [ OPTIONS ] OBJECT { COMMAND | help }
        device - show and manage network interfaces
        connection - start, stop, and manage network connections 

nmcli general status 显示状态信息 

wKiom1Xv1l2RUpZ5AAEil99JoAw429.jpg

如何修改IP地址等属性:
    #nmcli connection modify IFACE [+|-]setting.property value
        setting.property:
        ipv4.addresses
        ipv4.gateway
        ipv4.dns1
        ipv4.method网络接口配置类型
        manual  手动配置方式

添加一个地址,+表示添加,-表示删除,什么也不带表示修改,下面的cconnection的简写

wKiom1Xv2I6ABRw6AAAtXisGEdM376.jpg

重启网卡:

wKioL1Xv2rqg5K3mAAAsHpyaFGU285.jpg

查看:多了个地址

wKiom1Xv2I-zfkhpAAFGfUJuY8A627.jpg

更改DNS指向

wKioL1Xv3O6RQzvqAAA0Qqwn8CY821.jpg       

网络接口配置tui工具:nmtui

wKiom1Xv2sPCRpAzAADWG6VIGfQ241.jpg
        主机名称配置工具:hostnamectl
            status
            set-hostname

修改:

wKioL1Xv2InBHvSwAAA2lUsk8QM828.jpg

查看:

wKioL1Xv3UjSVSEIAADBtJWdC2w697.jpg

你可能感兴趣的:(IP,配置,route,路由,linux网络)