热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux网络属性配置管理及其相关命令

TCPIP协议:网络访问层(NetworkAccessLayer)在TCPIP参考模型中并没有详细描述,只是指出主机必须使用某种协议与网络相连。互联网层(InternetLayer

TCP/IP协议:

    网络访问层(Network Access Layer)在TCP/IP参考模型中并没有详细描述,只是指出主机必须使用某种协议与网络相连。

    互联网层(Internet Layer)是整个体系结构的关键部分,其功能是使主机可以把分组发往任何网络,并使分组独立地传向目标。这些分组可能经由不同的网络,到达的顺序和发送的顺序也可能不同。高层如果需要顺序收发,那么就必须自行处理对分组的排序。互联网层使用因特网协议(IP,Internet Protocol)。TCP/IP参考模型的互联网层和OSI参考模型的网络层在功能上非常相似。

    传输层(Tramsport Layer)使源端和目的端机器上的对等实体可以进行会话。在这一层定义了两个端到端的协议:传输控制协议(TCP,Transmission Control Protocol)和用户数据报协议(UDP,User Datagram Protocol)。TCP是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。UDP是面向无连接的不可靠传输的协议,主要用于不需要TCP的排序和流量控制等功能的应用程序。

    应用层(Application Layer)包含所有的高层协议,包括:虚拟终端协议(TELNET,TELecommunications NETwork)、文件传输协议(FTP,File Transfer Protocol)、电子邮件传输协议(SMTP,Simple Mail Transfer Protocol)、域名服务(DNS,Domain Name Service)、网上新闻传输协议(NNTP,Net News Transfer Protocol)和超文本传送协议(HTTP,HyperText Transfer Protocol)等。TELNET允许一台机器上的用户登录到远程机器上,并进行工作;FTP提供有效地将文件从一台机器上移到另一台机器上的方法;SMTP用于电子邮件的收发;DNS用于把主机名映射到网络地址;NNTP用于新闻的发布、检索和获取;HTTP用于在WWW上获取主页。

技术分享

传输层协议:

  tcp, udp, sctp


网络层协议:

  ip

IPv4 地址分类:

点分十进制:0-255

0000 0000 - 1111 1111

0.0.0.0-255.255.255.255

A类:

  0 000 0000 - 0 111 1111: 1-127

  网络数:126, 127

  每个网络中的主机数:2^24-2

  默认子网掩码:255.0.0.0

  私网地址:10.0.0.0/8

B类:

  10 00 0000 - 10 11 1111:128-191

  网络数:2^14

  每个网络中的主机数:2^16-2

  默认子网掩码:255.255.0.0

  私网地址:172.16.0.0/16-172.31.0.0/16

C类:

  110 0 0000 - 110 1 1111: 192-223

  网络数:2^21

  每个网络中的主机数:2^8-2

  默认子网掩码:255.255.255.0

  私网地址:192.168.0.0/24-192.168.255.0/24

D类:组播

  1110 0000 - 1110 1111: 224-239

E类:

  240-255


子网掩码:

  172.16.100.100/255.255.0.0, 172.17.1.1


跨网络通信:路由(一般按照最少路径或最小网络匹配)

  主机路由:从一台主机到另一主机经过的路由

  网络路由:从主机发出的数据包通过该路由连接到网络

  默认路由:从主机发出的所有数据包都经该路由发出

技术分享

将Linux主机接入到网络中:技术分享

IP/mask

路由:默认网关

DNS服务器

  主DNS服务器

  次DNS服务器

  第三DNS服务器







技术分享

配置方式:

  静态指定:

    ifcfg: ifconfig, route, netstat

    ip: object {link, addr, route}, ss, tc

  配置文件

    system-config-network-tui (setup)

    CentOS 7:

          nmcli, nmtui(tui:test user interface)

  动态分配:

    DHCP: Dynamic Host Configuration Protocol


配置网络接口:

  接口命名方式:

    CentOS 6: 根据MAC地址识别

      以太网:eth[0,1,2,...] 

      ppp:ppp[0,1,2,...](拨号点对点网络)


ifconfig命令

ifconfig [interface]

# ifconfig IFACE [up|down]    [启用|禁用]指定接口

            如: ifconfig eth0 显示指定网络接口信息

技术分享

技术分享

技术分享

ifconfig interface [aftype] options | address ...

# ifconfig IFACE IP/mask [up]

        [root@localhost ~]# ifconfig eth0 172.16.33.16/16 给指定接口配置IP/掩码

技术分享

# ifconfig IFACE IP netmask MASK

        [root@localhost ~]# ifconfig eth0 172.16.33.13 netmask 255.255.0.0

技术分享

注意:立即生效,重启失效;

[禁用]启用混杂模式:[-]promisc (一般用于网络监控)

     混杂模式表示即便目标MAC不是自己也会接收

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[/32] gw 172.16.0.1 

                                   如果目标是主机则掩码为32位,如下图

技术分享  

目标: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

        技术分享

  目标:192.168.0.0 网关:172.16.0.1

    ~]# route del -net 192.168.0.0 netmask 255.255.255.0

技术分享

DNS服务器指定

/etc/resolv.conf

nameserver DNS_SERVER_IP1

nameserver DNS_SERVER_IP2

nameserver DNS_SERVER_IP3

技术分享


正向解析:FQDN-->IP

# dig -t A FQDN(完全合格域名)

# host -t A FQDN

       技术分享

反解:IP-->FQDN

# dig -x IP

# host -t PTR IP

FQDN: www.magedu.com.

netstat命令:

    netstat - Print network connections, routing tables, interface statistics, 

              masquerade connections, and multicast memberships


显示网络连接:

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, -uan, -tnl, -unl

技术分享

技术分享    

技术分享技术分享

显示路由表:

netstat  {--route|-r} [--numeric|-n]

-r: 显示内核路由表

-n: 数字格式

       技术分享

显示接口统计数据:

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


# netstat -i

# netstat -I IFACE  

技术分享   

配置Linux网络属性:ip命令


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:激活或禁用指定接口;

                          [root@localhost ~]# ip link set eth0 down

                          [root@localhost ~]# ip link set eth0 up

show:

   [dev IFACE]:指定接口

   [up]:仅显示处于激活状态的接口

技术分享

技术分享

ip address - protocol address management

    ip addr { add | del } IFADDR dev STRING

[label LABEL]:添加地址时指明网卡别名

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

global: 全局可用;

link: 仅链接可用;

host: 本机可用;

[broadcast ADDRESS]:指明广播地址

技术分享

[root@localhost ~]# ip addr del 172.16.33.100/16 dev eth0          

技术分享

[root@localhost ~]# ip addr flush dev eth0 label ‘eth0:0‘          

    ip address show - look at protocol addresses

[dev DEVICE]

[label PATTERN]

[primary and secondary]

技术分享

    ip address flush - flush protocol addresses

使用格式同show

            ip route - routing table management

    ip route add

添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP

    TARGET:

主机路由:IP(不可指掩码)

网络路由:NETWORK/MASK

    添加网关:ip route add defalt via GW dev IFACE

技术分享

                [root@localhost ~]# ip route del 192.168.0.0/24 via 172.16.0.1[ dev eth0]

[root@localhost ~]# ip route add default via 172.16.0.1  #添加默认网关

    ip route delete

删除路由:ip route del TARGET 

                [root@localhost ~]# ip route del default  #删除默认网关

    ip route show

    ip route flush

[dev IFACE]   与某接口相关

[via PREFIX]  与指定网关相关


ss命令:网络状态查看工具

    格式:ss [OPTION]... [FILTER]

选项:

    -t: tcp协议相关

    -u: udp协议相关

    -w: 裸套接字相关

    -x:unix sock相关  unix套接字相关,一种基于本机内存的快速数据交换

    -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


修改配置文件:

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

       技术分享

        [root@localhost ~]# service network restart  #立即生效

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

    两种风格:(不能混合使用)

        (1) TARGET via GW

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

            ADDRESS#=TARGET

            NETMASK#=mask

            GATEWAY#=GW

技术分享

技术分享

给网卡配置多地址:

    ifconfig:

        ifconfig IFACE_ALIAS(网卡别名)

            [root@localhost ~]# ifconfig eth0:0 192.168.0.20/24 up

    ip

        ip addr add 

    配置文件:

        ifcfg-IFACE_ALIAS

            DEVICE=IFACE_ALIAS

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

            技术分享

Linux网络属性配置的tui(text user interface):

    [root@localhost network-scripts]# system-config-network-tui

    也可以使用setup找到;

    注意:记得重启网络服务方能生效;


配置当前主机的主机名:

    hostname [HOSTNAME]

    /etc/sysconfig/network

    HOSTNAME=

      [root@localhost network-scripts]# hostname www.mageedu.com

     技术分享

网络接口识别并命名相关的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: 集成设备的设备索引号;

        s: 扩展槽的索引号;

        x: 基于MAC地址的命名;

        ps: enp2s1


网卡设备的命名过程:

    第一步:

        udev, 辅助工具程序/lib/udev/rename_device会根据/usr/lib/udev/rules.d/60-net.rules查

              询/etc/sysconfig/network-scripts/ifcfg-*文件,根据MAC读取device指向的名称

    第二步:

        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生成其配置文件

        [root@localhost ~]# 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

[root@localhost ~]# nmcli connection modify eth0 +ipv4.addresses 172.16.100.12/16

技术分享技术分享

网络接口配置tui工具:nmtui


主机名称配置工具:hostnamectl

    status

    set-hostname






Linux网络属性配置管理及其相关命令


推荐阅读
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 一文详解Linux
    Linuxnetfilter与VRF实验环境如下图所示:配置如下:#!binbashsudoipnetnsaddns1sudoiplinkaddns1veth1typevethpe ... [详细]
  • 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
author-avatar
1hhhhhhhhhhh0_196_217
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有