ifconfig

    ifconfig是传统的网络管理命令,用于查看和配置网络接口,常规使用方法如下:

        ifconfig [-a] :用于查看当前所有网络接口的状态,-a可省略

[root@localhost ~]# ifconfig eno16777736: flags=4163
  mtu 1500               #网络接口名、状态、最大传输单元         inet 192.168.254.148  netmask 255.255.255.0  broadcast 192.168.254.255  #IP地址、子网掩码、组播地址         inet6 fe80::20c:29ff:fe1f:3407  prefixlen 64  scopeid 0x20
        ether 00:0c:29:1f:34:07  txqueuelen 1000  (Ethernet)                    #MAC地址、网络类型         RX packets 9784  bytes 6661801 (6.3 MiB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 3204  bytes 334670 (326.8 KiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 lo: flags=73
  mtu 65536                                    #本地回还测试网卡         inet 127.0.0.1  netmask 255.0.0.0         inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1  (Local Loopback)         RX packets 8  bytes 704 (704.0 B)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 8  bytes 704 (704.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 virbr0: flags=4099
  mtu 1500         inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255         ether 52:54:00:b9:d3:ee  txqueuelen 1000  (Ethernet)         RX packets 0  bytes 0 (0.0 B)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 0  bytes 0 (0.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

        ipconfig INTERFACE:用于查看具体某个网路接口的信息

[root@localhost ~]# ifconfig eno16777736 eno16777736: flags=4163
  mtu 1500         inet 192.168.254.148  netmask 255.255.255.0  broadcast 192.168.254.255         inet6 fe80::20c:29ff:fe1f:3407  prefixlen 64  scopeid 0x20
        ether 00:0c:29:1f:34:07  txqueuelen 1000  (Ethernet)         RX packets 10412  bytes 6710915 (6.4 MiB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 3386  bytes 363486 (354.9 KiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


        ifconfig INTERFACE [up|down]:启用和关闭某网络接口

    使用ifconfig配置IP地址的两种方法

        ifconfig INTERFACE ip/mask [up],例如:ifconfig eno16777736 192.168.100.100/24

        ifconfig INTERFACE ip mask  例如ifconfig eno16777736 192.168.100.100 255.255.255.0

        以上两种方法配置IP地址可立即生效,但是重启network服务或重启电脑后就会失效。

    可以通过 ifconfig [-]promisc 来开启或关闭混杂模式,混杂模式主要用于网络抓包

        ifconfig promisc :开启混杂模式

        ifconfig -promisc: 关闭混杂模式

 

route

    route命令主要用于路由查看、创建、修改、删除等管理操作,具体用法如下:

        route -n :查看路由状态

[root@localhost ~]# route -n Kernel IP routing table Destination(目标)   Gateway(网关)    Genmask(掩码)    Flags(状态,U代表启用,G代表从网关连接,H代表仅连接到某主机) Metric(路由开销) Ref    Use   Iface(网络接口名称) 0.0.0.0              192.168.254.2       0.0.0.0              UG                                                            100                0      0   eno16777736 192.168.122.0        0.0.0.0             255.255.255.0        U                                                             0                  0      0   virbr0 192.168.254.0        0.0.0.0             255.255.255.0        U                                                             100                0      0   eno16777736

        route add :增加路由条目。

            格式:route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] If] -net为网络路由,-host为主机路由

            示例1:增加一条主机路由,目标:10.10.10.1  子网掩码:255.255.255.0  网关:192.168.254.2

[root@localhost ~]# route add -host 10.10.10.1 gw 192.168.254.2 dev eno16777736 [root@localhost ~]# route -n Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 0.0.0.0         192.168.254.2   0.0.0.0         UG    100    0        0 eno16777736 10.10.10.21     192.168.254.2   255.255.255.255 UGH   0      0        0 eno16777736 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0 192.168.254.0   0.0.0.0         255.255.255.0   U     100    0        0 eno16777736

            示例2:增加一条网络路由,目标:10.10.10.0 子网掩码:255.255.255.0  网关:192.168.254.2

[root@localhost ~]# route add -net 10.10.10.0/24 gw 192.168.254.2 dev eno16777736 [root@localhost ~]# route -n Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 0.0.0.0         192.168.254.2   0.0.0.0         UG    100    0        0 eno16777736 10.10.10.0      192.168.254.2   255.255.255.0   UG    0      0        0 eno16777736 10.10.10.21     192.168.254.2   255.255.255.255 UGH   0      0        0 eno16777736 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0 192.168.254.0   0.0.0.0         255.255.255.0   U     100    0        0 eno16777736

        route del:删除路由条目

            格式:route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

            示例1:删除一条主机路由,目标:10.10.10.1 子网掩码:255.255.255.0  网关:192.168.254.2 

[root@localhost ~]# route -n Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 0.0.0.0         192.168.254.2   0.0.0.0         UG    100    0        0 eno16777736 10.10.10.0      192.168.254.2   255.255.255.0   UG    0      0        0 eno16777736 10.10.10.21     192.168.254.2   255.255.255.255 UGH   0      0        0 eno16777736 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0 192.168.254.0   0.0.0.0         255.255.255.0   U     100    0        0 eno16777736 [root@localhost ~]# route del 10.10.10.21 [root@localhost ~]# route -n Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 0.0.0.0         192.168.254.2   0.0.0.0         UG    100    0        0 eno16777736 10.10.10.0      192.168.254.2   255.255.255.0   UG    0      0        0 eno16777736 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0 192.168.254.0   0.0.0.0         255.255.255.0   U     100    0        0 eno16777736

            示例2:删除一条网络路由,目标:10.10.10.0 子网掩码:255.255.255.0  网关:192.168.254.2

[root@localhost ~]# route del -net 10.10.10.0/24 [root@localhost ~]# route -n Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 0.0.0.0         192.168.254.2   0.0.0.0         UG    100    0        0 eno16777736 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0 192.168.254.0   0.0.0.0         255.255.255.0   U     100    0        0 eno16777736

            Tip:删除主机路由条目时可 [-host] 和[netmask]可省略,进指定删除的目标IP即可,删除网络路由时[-net]和[netmask]均不能省略。

 

DNS设置与解析

    一般本地会从/etc/resolv.conf文件中读取DNS信息,文件内容如下:

 # Generated by NetworkManagersearch localdomainnameserver 192.168.21.2         #格式为nameserver  DNS地址,共计可以设置三个DNS地址。

     DNS正解,FQDN-->IP

        dig -t A FQDN :将FQDN解析为IP地址

[root@localhost ~]# dig -t A n-test.testAD.com; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> -t A n-wangyanglin.zjipst.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43502;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4000;; QUESTION SECTION:;n-test.testAD.com.      IN      A;; ANSWER SECTION:n-test.testAD.com. 5     IN      A       192.168.252.235;; Query time: 26 msec;; SERVER: 192.168.21.2#53(192.168.21.2);; WHEN: Sat May 06 16:04:21 CST 2017;; MSG SIZE  rcvd: 69

        host -t A FQDN(计算机名):将FQDN(计算机名)解析为IP地址

[root@localhost ~]# host -t A n-test.testAD.comn-test.testAD.com has address 192.168.252.235

    DNS反解,IP-FQDN

        dig -x ip-address:将ip地址解析为FQDN名

[root@localhost ~]# dig -x 115.239.210.27; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> -x 115.239.210.27;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 59372;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; MBZ: 0005 , udp: 4000;; QUESTION SECTION:;27.210.239.115.in-addr.arpa.   IN      PTR;; AUTHORITY SECTION:239.115.in-addr.arpa.   5       IN      SOA     ns.zjnbptt.net.cn. root. 2017021401 3600 1800 604800 3600;; Query time: 29 msec;; SERVER: 192.168.21.2#53(192.168.21.2);; WHEN: Sat May 06 16:10:21 CST 2017;; MSG SIZE  rcvd: 113

        host -t PTR IP地址:将IP地址解析为FQDN名

[root@localhost ~]# host -t PTR 192.168.254.22.192.168.254.in-addr.arpa domain name pointer AD03.test.com.

 

netstat

    netstat命令主要用于显示网络连接、路由表、网络接口状态等相关参数

    显示网络连接

        格式:netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]]  [--program|-p]

        参数:

             -t: tcp协议相关

             -u: udp协议相关
             -w: raw socket相关
             -l: 处于监听状态
             -a: 所有状态
             -n: 以数字显示IP和端口;
             -e:扩展格式
             -p: 显示相关进程及PID

        常用组合

            -tan:显示TCP协议相关连接的所有状态信息,IP地址和端口号以数字显示

            -tnl:显示TCP协议相关处于坚挺状态的所有连接信息,IP地址和端口已数字显示

            -uan:显示UDP协议相关连接的所有状态信息,IP地址和端口号以数字显示

            -unl:显示UDP协议相关处于坚挺状态的所有连接信息,IP地址和端口已数字显示

    显示路由表

        格式:netstat  {--route|-r} [--numeric|-n]

        参数:

             -r: 显示内核路由表

             -n: 数字格式

    显示接口统计数据

        格式:netstat  {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]

 

IP

    用户查看和配置网络接口、路由、设备、策略路由及隧道

    格式:ip [ OPTIONS ] OBJECT { COMMAND | help }

             OBJECT := { link | addr | route }

    IP link:用于网络设备链路配置

        子命令

            set DEV {up|down}:将某个网络接口关闭或开启

 [root@localhost ~]# ip link set eno16777736 down;ip link set eno16777736 up

            show DEV :查看指定设备,若不加DEV,默认显示所有网络接口

            show up :查看出于开启状态的网络设备

    IP addr:用户管理网络地址和相关协议

        格式:ip addr { add | del } IFADDR dev STRING

            示例1:为网卡eno16777736增加一个IP地址192.168.100.100/24

[root@localhost ~]# ip addr add 192.168.100.100/24 dev eno16777736[root@localhost ~]# ip addr show dev eno167777362: eno16777736: 
 mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:1f:34:07 brd ff:ff:ff:ff:ff:ff    inet 192.168.21.128/24 brd 192.168.21.255 scope global dynamic eno16777736       valid_lft 1116sec preferred_lft 1116sec    inet 192.168.100.100/24 scope global eno16777736       valid_lft forever preferred_lft forever    inet6 fe80::20c:29ff:fe1f:3407/64 scope link        valid_lft forever preferred_lft forever

             示例2:将网卡eno16777736上的IP地址192.168.100.100/24删除

[root@localhost ~]# ip addr del 192.168.100.100/24 dev eno16777736[root@localhost ~]# ip addr show eno167777362: eno16777736: 
 mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:1f:34:07 brd ff:ff:ff:ff:ff:ff    inet 192.168.21.128/24 brd 192.168.21.255 scope global dynamic eno16777736       valid_lft 1382sec preferred_lft 1382sec    inet6 fe80::20c:29ff:fe1f:3407/64 scope link        valid_lft forever preferred_lft forever

            示例3:将网卡eno16777736的IP地址改为192.168.100.100/24

        ip addr { add | del } IFADDR dev STRING

            label LABEL:配置IP地址时可以为该接口指定标注

            [scope {global|link|host}]:指明作用域

               global: 全局可用;
               link: 仅链接可用;
               host: 本机可用;
            broadcast ADDRESS]:指明广播地址

        ip addr show: 查看指定网络接口的协议和IP地址的相关信息。子命令如下

            [dev]:查看指定网络设备

            [label]:通过网络设备标注查看指定网络设备

            [primary and secondary] :查看主网络设备和次网络设备。

        ip address flush - 清空协议和IP地址。

            使用格式同show

 

    ip route:管理路由表。子命令如下:

        增加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP  。 主机路由TARGET仅填写IP地址即可,网络路由TARGET必须填写 IP/netmask

            示例1:增加一条主机路由,主机IP地址为10.10.10.21

[root@localhost ~]# ip route add 10.10.10.21 via 192.168.1.103 dev eno16777736 src 192.168.1.100 [root@localhost ~]# ip route show dev eno16777736default via 192.168.21.2  proto static  metric 100 10.10.10.21 via 192.168.1.103  src 192.168.1.100 192.168.1.0/24  proto kernel  scope link  src 192.168.1.100 192.168.1.0/24  proto kernel  scope link  src 192.168.1.100  metric 100 192.168.21.0/24  proto kernel  scope link  src 192.168.21.128  metric 100

            示例2:增加一条网络路由,主机网络地址为10.10.10.0/24

[root@localhost ~]# ip route add 10.10.10.0/24 via 192.168.1.103 src 192.168.1.100 [root@localhost ~]# ip route show dev eno16777736default via 192.168.21.2  proto static  metric 100 10.10.10.0/24 via 192.168.1.103  src 192.168.1.100 10.10.10.21 via 192.168.1.103  src 192.168.1.100 192.168.1.0/24  proto kernel  scope link  src 192.168.1.100 192.168.1.0/24  proto kernel  scope link  src 192.168.1.100  metric 100 192.168.21.0/24  proto kernel  scope link  src 192.168.21.128  metric 100

        删除路由:ip route add TARGET

    ip route show:查看当前路由表

    ip route flush:清空路由表

        dev IFACE:指定接口

        via PREFIX:指定网关

 

ss

    功能:ss的功能和netstat类似,但是更强大,可以用来查看网路接口、路由表、网络连接等相关参数

    格式: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 ] :FILTER为模式过滤器,state为scoket状态,expression为相关表达式

            state主要有一下几种:

                LISTEN: 监听

                ESTABLISHED:已建立的连接
                FIN_WAIT_1:套接字已关闭,正在关闭连接[发送FIN,没有收到ACK也没有收到FIN]               

                FIN_WAIT_2:套接字已关闭,正在等待远程套接字关闭[在FIN_WAIT_1状态下收到发过去FIN对应的ACK]               

                SYN_SENT:  套接字正在试图主动建立连接[发送SYN后还没有收到ACK]             

                SYN_RECV:正在处于连接的初始同步状态[收到对方的SYN,但还没收到自己发过去的SYN的ACK               

                CLOSED:远程套接字已经关闭:正在等待关闭这个套接字[被动关闭的一方收到FIN]

            expression:

                 dport = 目标端口

                 sport = 原端口

                 示例:( dport = :ssh or sport = :ssh )’

       网路配置文件

 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文件中;

   /etc/sysconfig/network-scripts/route-IFACE

        两种风格:
            (1) TARGET via GW

            (2) 每三行定义一条路由

                ADDRESS#=TARGET
                NETMASK#=mask
                GATEWAY#=GW

给网卡配置多地址:

            ifconfig:
                ifconfig IFACE_ALIAS
            ip
                ip addr add
            配置文件:
                ifcfg-IFACE_ALIAS
                    DEVICE=IFACE_ALIAS

            注意:网关别名不能使用dhcp协议引导;

给网卡配置多地址:

            ifconfig:
                ifconfig IFACE_ALIAS
            ip
                ip addr add
            配置文件:
                ifcfg-IFACE_ALIAS
                    DEVICE=IFACE_ALIAS

            注意:网关别名不能使用dhcp协议引导;

配置当前主机的主机名:

        hostname [HOSTNAME]

        /etc/sysconfig/network

        HOSTNAME=

    网络接口识别并命名相关的udev配置文件:

        /etc/udev/rules.d/70-persistent-net.rules

        卸载网卡驱动:

            modprobe -r e1000

        装载网卡驱动:

            modprobe e1000

CentOS 7网络属性配置

    传统命名:以太网eth[0,1,2,...], wlan[0,1,2,...]

    可预测功能

        udev支持多种不同的命名方案:

            Firmware, 拓扑结构

    (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

        如何修改IP地址等属性:

            #nmcli connection modify IFACE [+|-]setting.property value
                 setting.property:
                     ipv4.addresses
                     ipv4.gateway
                     ipv4.dns1
                     ipv4.method
                         manual

    网络接口配置tui工具:nmtui

    主机名称配置工具:hostnamectl

        status
        set-hostname

网络客户端工具:

        lftp, ftp, lftpget, wget

            # lftp [-p port] [-u user[,password]] SERVER

                子命令:
                    get
                    mget
                    ls
                    help

            # lftpget URL

            # ftp

            # wget

                wget [option]... [URL]...
                    -q: 静默模式
                    -c: 续传
                    -O: 保存位置
                    --limit-rates=: 指定传输速率