Linux网络配置

Linux网络基础配置

将Linux主机接入到网络,需要配置网络相关设置。
一般包括如下内容:
    主机名
    IP/netmask
    路由:默认网关
    DNS服务器
    主DNS服务器
    次DNS服务器
    第三DNS服务器

网络配置方式

静态指定:
    命令:
        ifcfg家族:
            ifconfig:配置IP,NETMASK
        route:路由
            netstat:状态及统计数据查看
        iproute2家族:
            ip OBJECT:
                addr:地址和掩码
                link:接口
                route:路由
            ss:状态及统计数据查看
        CentOS 7:nm家族
            nmcli:命令行工具
            nmtui:test window工具

        注意:
            (1)DNS服务器指定
                配置文件:/etc/resolv.conf
            (2)本地主机名配置
                hostname命令:临时生效
                配置文件:/etc/sysconfig/network
                CentOS 7:hostnamectl

    配置文件:
        /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME

动态配置:依赖于网络当中的DHCP服务器
    DHCP:Dynamic Host Configuration Protocal

Linux网络属性配置

ifcfg命令家族:ifconfig,route,netstat

    ifconfig命令:接口及地址查看和管理
        ifconfig [INTERFACE]
            # ifconfig -a:显示所有接口,包括未激活的接口

        ifconfig interface [aftype] options | address ...
            # ifconfig IFACE IP/MASK [up]
            # ifconfig IFACE IP netmask NETMASK

            options:
                [-]promisc:混杂模式

            注意:立即送往内核中的TCP/IP协议栈,并生效


    route命令:路由查看及管理
        路由条目类型:
            主机路由:目标地址为单个IP
            网络路由:目标地址为IP网络
            默认路由:目标为任意主机,0.0.0.0/0.0.0.0

        查看:
            # route -n:以数字格式显示路由条目
        添加:
            route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] IF]

                示例:route add -net 10.0.0.0/8 gw 192.168.0.1 dev eth1
                      route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1
                      route add default gw 192.168.10.1

        删除:
            route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] IF]

                示例:route del -net 10.0.0.0/8 gw 192.168.0.1
                      route del default


    netstat:状态及统计数据查看
        netstat - Print network connections, routing tables, interface statistics, masquerade connections, multicast memberships

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

        显示网络连接:
            netstat [--tcp|-t] [--udp|u] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
                -t:TCP协议的相关连接,连接均有其状态
                -u:UDP相关的连接
                -W:raw socket相关的连接
                -l:处于监听状态的连接
                -a:所有状态
                -n:以数字格式显示
                -e:扩展格式
                -p:显示相关的进程及PID

            常用组合:
                -tan, -uan, -tnl, -unl, -lntp, -untp, -tan, -uan...

            传输层协议:
                tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后还要拆除连接
                udp:无连接的协议;直接发送数据报文

        显示接口的统计数据:
            显示所有接口:
                netstat -i
            显示指定接口:
                netstat -I<IFace>


    ifup/ifdown命令:
        注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置


配置主机名:
    hostname命令:
        查看:hostname
        配置:hostname HOSTNAME
            临时生效,重启后无效

    hostnamectl命令:
        hostnamectl status:显示当前主机名信息
        hostnamectl set-hostname:设定主机名,永久有效

    配置文件:/etc/sysconfig/network
        HOSTNAME=<HOSTNAME>

        注意:此方法的设置不会立即生效;但以后会一直有效


配置DNS服务器地址:

    配置文件:/etc/resolv.conf
        nameserver DNS_SERVER_IP

        如何测试(host,nslookup,dig)
            # dig -t A FQDN
                FQDN --> IP

            # dig -x IP
                IP --> FQDN


iproute家族:
    ip命令:
        show / manipulate routing, devices, policy routing and tunnels

        ip [ OPTIONS ] OBJECT { COMMAND | help }
            OBJECT := { link | addr | route | netns }

        ip OBJECT:

            ip link:network device configurations

                ip link set - change device attributes
                    dev NAME:指明要管理的设备,dev关键字可省略
                    up和down:启用或关闭指定设备
                    multicase on或multicase off:启用或关闭多播功能
                    name NAME:修改设备名称
                        注意:重命名时需要先down
                    mtu NUMBER:设置MTU值大小,默认为1500
                    netns PID:ns为namespace,用于将接口移动到指定的网络名称空间


                ip link show - display device attributes

                ip link help - 显示简要帮助信息:

            ip netns:ip - manage network namespaces

                ip netns list:列出所有的netns    
                ip netns add NAME:创建指定的ns
                ip netns del NAME :删除指定的ns
                ip netns exec COMMAND:在指定的netns中运行命令

            ip address - protocol address management

                ip address add - add new protocol address
                    ip addr add IFADDR dev IFACE
                        [label] NAME:为额外添加的地址指明接口别名
                        [broadcase ADDRESS]:广播地址,会根据IP和NETMASK自动计算得到
                        [scope SCOPE_VALUE]:
                            global:全局可用
                            link:接口可用
                            host:本机可用

                ip address delete - delete protocol address
                    ip addr delete IFADDR dev IFACE


                ip address show - look at protocol address
                    [IFACE]:仅显示指定接口的地址

                ip address flush - flush protocol address
                    ip addr flush dev IFACE


            ip route - routing table management.

                ip route add - add new route
                ip route change - change route
                ip route replace - change or add new one 
                    ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]

                    示例:
                        # ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100
                        # ip route add default via 10.0.0.1

                ip route delete - delete route
                    ip route del TYPE PREFIX

                    示例:
                        # ip route delete 192.168.1.0/24

                ip route show - show route 
                    TYPE PREFIX

                ip route flush - flush routing table
                    TYPE PREFIX

                ip route get - get a single route
                    ip route get TYPE PREFIX

                    示例:ip route get 192.168.0.0/24



    ss命令:
        ss [options] [FILTER]
            options:
                -t:TCP协议的相关连接
                -u:UDP协议相关连接
                -W:raw socket相关的连接
                -l:监听状态的连接
                -a:所有状态的连接
                -n:数字格式
                -p:相关的程序及其PID
                -e:扩展格式信息
                -m:内存用量
                -o:计时器信息

            FILTER:=[state TCP-STATE] [EXPRESSION]

            TCP的常见状态:
                TCP FSM:
                    LISTEN:监听
                    ESTABLISHED:建立的连接
                    FIN_WAIT_1:
                    FIN_WAIT_2:
                    SYN_SENT:
                    SYN_RECV:
                    CLOSED:

            EXPRESSION:
                dport=
                sport=
                    示例:'( dport = :22 or sport = :22 )'
                        ~]# ss -tan '( dport = :22 or sport = :22 )'
                        ~]# ss -tan state ESTABLISHED

配置文件

IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
    IFACE:接口名称
路由的相关配置文件:/etc/sysconfig/network-scripts/route-IFACE        

配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim等文本编辑工具
直接修改,也可使用专用的命令进行修改
    CentOS 6:system-config-network     setup              
    CentOS 7:nmtui

    ifcfg-IFACE配置文件参数:
        DEVICE:此配置文件对应的设备的名称
        ONBOOT:在系统引导过程中,是否激活此接口
        UUID:此设备的唯一标记
        IPV6INIT:是否初始化IPv6
        BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none
        TYPE:接口类型,常见的有Ethernet,Bridge
        DNS1:第一DNS服务器指向
        DNS2:第二DNS服务器指向
        DOMAIN:DNS搜索域
        GATEWAY:默认网关
        IPADDR:IP地址
        NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码
        USERCTL:是否允许普通用户控制此设备
        PEERDNS:如果BOOTPROTO的值为"dhcp",是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向,默认为允许
        HWADDR:设备的MAC地址
        NM_CONTROLLED:是否使用NetworkManager服务来控制接口

    网络服务:
        network
        NetworkManager

        管理网络服务:
            CentOS 6:service SERVICE {start|stop|restart|status}
            CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service]

        配置文件修改之后,如果需生效,需要重启网络服务
            CentOS 6:# service network restart
            CentOS 7:# systemctl restart network.service


用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE
    支持两种配置方式,但不可混用
        (1)每行一个路由条目
            TARGET via GW

        (2)没三行一个路由条目
            ADDRESS#=TARGET
            NETMASK#=MASK
            GATEWAY#=NEXTHOP
配置当前主机名:
    hostname <HOSTNAME>
    /etc/sysconfig/network
    HOSTNAME=hostname
CentOS 7配置主机名
    hostnamectl set-hostname <HOSTNAME> 可永久生效
    
网络接口识别并命名相关的udev配置文件:
    /etc/udev/rules.d/70-persistent-net.rules
    查看网卡:
        dmesg | grep -i eth
        ethtool -i eth0
    卸载网卡驱动:
        modprobe -r e1000
        rmmod e1000
    装载网卡驱动:
        modprobe e1000

给接口配置多个地址

ip addr之外,ifconfig或配置文件都可以:

(1)ifconfig IFACE_LABEL IPADDR/NETMASK

    IFACE_LABEL:eth0:0, eth0:1,...

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

网卡名称

传统命名:
    以太网:ethX,例如eth0,eth1
    ppp网络:pppX,例如ppp0,ppp1

可预测命名方案(CentOS)
    支持多种不同的命名机制:
        Fireware,拓扑结构

    (1)如果Fireware或BIOS为主板上集成的设备提供索引信息可用,根据此索引进行命名,如eno1,eno2...
    (2)如果Fireware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2...
    (3)如果硬件接口的物理位置信息可用,则根基此信息命名,如enp2s0,...
    (4)如果用户显示定义,也可根据MAC地址命名,例如enx13341a3b....
    上述均不可用,则扔使用传统方式命名:

    命名格式的组成:
        en:ethernet,以太网
        wl:wlan,无线局域网
        ww:wwan,无线广域网

        名称类型:
            o<index>:集成设备的设备索引号
            s<slot>:扩展槽的索引号
            x<MAC>:基于MAC地址的命名
            p<bus>s<slot>:基于总线及槽的拓扑结构进行命名

采用传统的命名方式

(1) 编辑/etc/default/grub配置文件

GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"

或:修改/boot/grub2/grub.cfg

JDT_493ZA3$W%N4KK4]W2E0.png

(2) 为grub2生成其配置文件

grub2-mkconfig -o /etc/grub2.cfg

1}AXF]BW@X$5(F_F432EN(V.png

(3) 重启系统,将配置文件DEVICE项改为传统名称即可

]ICKWC3546WH1EVDQO2$_LW.png

原创文章,作者:zhai796898,如若转载,请注明出处:http://www.178linux.com/44916

(0)
zhai796898zhai796898
上一篇 2016-09-09
下一篇 2016-09-09

相关推荐

  • 集中练习5-磁盘分区、文件系统挂载、RAID管理

    集中练习5-磁盘分区、文件系统挂载、RAID管理

    Linux干货 2017-10-27
  • Linux之sed的使用

    sed的工作原理         sed是一种流编辑器以行为单位来处理文本的一款功能十分强大的编辑器,一次只处理一行内容,当处理文本是,将要处理的行放置在模式空间里(缓冲区),接下来sed命令处理模式空间里的内容,处理完成后,把模式空间里处理后的内容送至屏幕打印输出,接下来处理下…

    Linux干货 2016-08-09
  • 计算机组成及Linux初识

    拼一载春秋,搏一生无悔 1. 计算机简介 2. Linux发行版简介 3. Linux哲学思想简介 4. Linux系统上获取命令帮助 5. Linux「12」个基础命令简介 6. Linux发行版基础目录及功能简介 1.计算机简介 电子计算机(英语:computer),亦称电脑,是一种利用「电子学…

    Linux干货 2016-10-27
  • 第二周作业

    作业

    Linux干货 2018-03-20
  • 正则表达式练习

    一: 1、找出ifconfig命令结果中本机的所有IPv4地址         2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示 二: 1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式) 2、显示/etc…

    Linux干货 2016-08-12
  • N26 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -rv /etc/skel /home/tuser1 [root@localhost ~]# chmod&n…

    Linux干货 2017-01-23