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


推荐阅读
  • 解决 Windows Server 2016 网络连接问题
    本文详细介绍了如何解决 Windows Server 2016 在使用无线网络 (WLAN) 和有线网络 (以太网) 时遇到的连接问题。包括添加必要的功能和安装正确的驱动程序。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 自定义滚动条美化页面内容
    当页面内容超出显示范围时,为了提升用户体验和页面美观,通常会添加滚动条。如果默认的浏览器滚动条无法满足设计需求,我们可以自定义一个符合要求的滚动条。本文将详细介绍自定义滚动条的实现过程。 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 解决Parallels Desktop错误15265的方法
    本文详细介绍了在使用Parallels Desktop时遇到错误15265的多种解决方案,包括检查网络连接、关闭代理服务器和修改主机文件等步骤。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • 在 LeetCode 的“有效回文串 II”问题中,给定一个非空字符串 `s`,允许删除最多一个字符。本篇深入解析了如何判断删除一个字符后,字符串是否能成为回文串,并提出了高效的优化算法。通过详细的分析和代码实现,本文提供了多种解决方案,帮助读者更好地理解和应用这一算法。 ... [详细]
  • 系统数据实体验证异常:多个实体验证失败的错误处理与分析
    在使用MVC和EF框架进行数据保存时,遇到了 `System.Data.Entity.Validation.DbEntityValidationException` 错误,表明存在一个或多个实体验证失败的情况。本文详细分析了该错误的成因,并提出了有效的处理方法,包括检查实体属性的约束条件、调试日志的使用以及优化数据验证逻辑,以确保数据的一致性和完整性。 ... [详细]
  • 装饰者模式(Decorator):一种灵活的对象结构设计模式
    装饰者模式(Decorator)是一种灵活的对象结构设计模式,旨在为单个对象动态地添加功能,而无需修改原有类的结构。通过封装对象并提供额外的行为,装饰者模式比传统的继承方式更加灵活和可扩展。例如,可以在运行时为特定对象添加边框或滚动条等特性,而不会影响其他对象。这种模式特别适用于需要在不同情况下动态组合功能的场景。 ... [详细]
  • 本文详细解析了Autofac在高级应用场景中的具体实现,特别是如何通过注册泛型接口的类来优化依赖注入。示例代码展示了如何使用 `builder.RegisterAssemblyTypes` 方法,结合 `typeof(IEventHandler).Assembly` 和 `Where` 过滤条件,动态注册所有符合条件的类,从而简化配置并提高代码的可维护性。此外,文章还探讨了这一方法在复杂系统中的实际应用及其优势。 ... [详细]
  • 本指南详细介绍了如何利用华为云对象存储服务构建视频点播(VoD)平台。通过结合开源技术如Ceph、WordPress、PHP和Nginx,用户可以高效地实现数据存储、内容管理和网站搭建。主要内容涵盖华为云对象存储系统的配置步骤、性能优化及安全设置,为开发者提供全面的技术支持。 ... [详细]
  • VS2019 在创建 Windows 恢复点时出现卡顿问题及解决方法
    在使用 Visual Studio 2019 时,有时会在创建 Windows 恢复点时遇到卡顿问题。这可能是由于频繁的自动更新导致的,每次更新文件大小可能达到 1-2GB。尽管现代网络速度较快,但这些更新仍可能对系统性能产生影响。本文将探讨该问题的原因,并提供有效的解决方法,帮助用户提升开发效率。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
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社区 版权所有