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.www58058.com/44916

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

相關推薦

  • 日志管理

    rsyslogd的相關介紹,journalctl的相關介紹和日志的轉儲

    2018-02-05
  • useradd命令

    useradd創建用戶 使用格式: useradd[options] LOGIN -c:備注信息保存在passwd的備注欄中。 -d:用戶登入時的主目錄 -e:賬號的失效日期,缺省表示永久有效。 -f:密碼過期后多少天關閉該賬號。 -g:用戶所屬組。 -G:用戶所屬的附加群組。 -m:自動創建用戶的登入目錄。 -M:不要自動創建用戶的登入目錄。 -n:取消創…

    Linux干貨 2017-12-20
  • 7.22_Linux入門和幫助文件的使用

    Linux系統登錄的兩種方式 GUI:圖形界面 Graphic User Interface 默認在Linux下面有三種可用的圖形界面程序可選,分別為 1.gnome(c,圖形庫gtk) 2.kde(c++,圖形庫qt) 3.xface(輕量級桌面) 每一種圖形界面下面開發的軟件并不兼容,因為它們開發時候所用的開發語言也各不相同 啟動方式:cli模…

    Linux干貨 2016-08-04
  • N-22-南京-修 第四周博客作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost xujie]# cp -a /etc/skel /home/tuser1 [root@localhost home]# chmod -R 700 tuser1 之前 [root@localho…

    Linux干貨 2016-09-15
  • 馬哥linux運維第一天感受

    101個人的大家庭

    Linux干貨 2018-03-26
  • 使用vim編輯器進行編程

    1.首先需要配置vim的語法風格,具體操作如下 # vim /etc/vimrc set nu 這是設置顯示行號** set showmode 設置在命令行界面最下面顯示當前模式等。 set ruler 在右下角顯示光標所在的行數等信息 set autoindent 設置每次單擊Enter鍵后,光標移動到下一行時與上一行的起始字符對齊 set ts=4 注:…

    2017-04-09
欧美性久久久久