热门标签 | 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网络属性配置管理及其相关命令


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
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社区 版权所有