zoukankan      html  css  js  c++  java
  • Linux 网络设置

    Ø  简介

    本文主要记录 Linux 中的网络命令、网络配置等,包括如下内容:

    1.  互联网寻址过程

    2.  网络配置文件

    3.  网络管理命令

    4.  防火墙管理命令

     

    1.  互联网寻址过程

    1)  TCP/IP OSI 的比较

    clip_image002

    该图为左侧TCP/IP 四层参考模型与 OSI 的七层参考模型的对应关系。

    TCP/IP 物理层:网卡                OSI 物理层:网卡

    数据链路层:MAC

    网络层:IPARPICMP

    传输层:TCPUDP

    TCP/IP 应用层:SSHApache         OSI 会话层:客户端服务端建立连接

                                           表示层:加密、压缩等

                                           应用层:服务应用

     

    简单的说:OSI七层参考模型可以理解为对 TCP/IP 四层参考模型的更细化,便于对整个网络连接更详细的分析。对OSI 参考模型有简单的了解即可,没必要深入的学习,重点掌握 TCP/IP 参考模型即可。

     

    2)  互联网的计算机寻址

    clip_image004

    1.  MAC(数据链路层)

    Windows 查看 MAC 地址,ipconfig -all

    clip_image006Linux 查看 MAC 地址,ifconfig

    clip_image00800:0c:29:ad:77:fe      #48位,分为6

    厂商标识 网卡标识       #理论上,可以确保世界上的网卡是唯一的

     

    说明:MAC地址可以标记唯一的一台主机。

     

    2.  IP(网络层)

    192.168.1.150          #ipv4 的地址

    ipv4 地址:32位,分为4段,以十进制来书写。

    ipv6 地址:128位,以十六进制来书写。ipv6 除了在数量上增加了很多,可以防止攻击(比如:DOS 拒绝服务攻击 SYNFLOOD

     

    拒绝服务攻击SYNFLOOD:不需要知道程序的任何漏洞,像洪水一样不停的向攻击主机发送 SYN请求,由于主机忙于应答,可能照成无法响应正常请求。

     

    TCP / UDP

    TCP 可靠的协议,很重要的原因是 TCP 会进行三次握手(断点重发、定时器)。例如:

    A主机      B主机

    IP          IP

    MAC         MAC

    1024+       80      #端口

    -------------à     SYN请求(问B主机,我们可以建立连接吗?)

    ß------------      ACK/SYN(可以建立连接、我正在等待跟你建立连接)

    -------------à     ACKOK,我们建立网络连接)

    TCP 协议可以简单理解:就像公交车在道路上行驶,需要遵循交通规则,这个规则就类似于网络 TCP 协议。网络在传输的过程中,就需要遵循这种协议。

    TCP 的典型应用:SSH

     

    全双工:TCP 属于全双工。

    单工:好比单行线,只能从一端到另一端。比如电视机就是单工设备。

    半双工:同一时刻只能有一个传输,比如对讲机设备。

     

    UDP 速度快,这正是 TCP 的缺点。因为 UDP 不需要进行三次握手,但缺点是可靠性上不如 TCP

    UDP 的典型应用:QQ发送消息,比如观看视频、以及一些网络服务同时使用了 TCP UDP

     

    3.  FQHN – 完整的计算机名称(应用层)

    www.mdingdang.com.

    www(主机名)mdingdang(二级域)net(顶级域).(根域)

     

    4.  ARP 地址解析协议

    n  ARP 解析过程

    clip_image010

    根据 IP 地址,获取对方的 MAC 地址:

    1)  发送广播包,局域网中的每台主机都会受到,只有IP地址为166.111.1.1的这台主机才会应答;

    2)  应答中包含 MAC 地址;

    3)  两台主机建立连接后,就可以数据传输了。

     

    arp -a                  #查看 APR 缓存表

    arp -d IP地址          #删除 ARP 地址

    arp -s IP地址MAC地址  #添加 ARP 静态记录

     

    5.  RARP 反向地址解析协议

    知道自己的 MAC 地址,去询问自己的 IP 地址。

     

    6.  域名解析

    1)  本机域名解析文件

    /etc/hosts

    IP地址主机名或域名    别名

    1.  这是比较原始的方式,因为互联网存在太多的IP地址和域名,不可能将所有的IP地址和域名都存放在文件中,将会特别庞大,所以没有被使用。

    2.  但是注意:在域名解析时,首先还是寻找本机的 hosts文件,没有匹配的域名解析才会使用 DNS 解析。

    3.  注:Windows 下位于 C:\Windows\System32\drivers\etc 目录下。

     

    2)  DNS

    DNS Domain Name System 的缩写,称为域名系统。目前使用最多的是 BIND 的这个域名解析软件,占市场的80%

    n  域名服务的层次结构

    clip_image012

    DNS 中域的数据是分散管理的。

     

    n  域的委托管理

    clip_image014

    13组根域由 Network Information Center 组织管理。连日本鬼子都有一组,可惜中国还没有。另外顶级域也是有该组织来增加和管理的。

     

    n  递归查询

    clip_image016

    比如:客户端访问:www.mdingdang.com

    1.  首先询问本机 DNS 服务器

    缓存(广义缓存)

    www.mdingdang.com       ipaddr

    会自动记录解析记录,比如下一次访问以下域名时,就不会去访问根域了:

    www.234.com        à .com

    abc.mdingdang.com   à  .mdingdang.com

    2.  如果 DNS 缓存中没有,先去询问根域 .

    è .com

    3.  顶级域 .com

    è mdingdang.com

    返回 DNS 服务 à 客户端

     

    n  IP MAC

    1)  一个 MAC 地址可以对应多个 IP 地址;

    2)  一个 IP 地址也可以对应多个 MAC 地址,比如cluster(集群)的应用;

    3)  一个域名也可以对应多个 IP 地址;

    4)  一个 IP 也可以对应多个域名。

     

    2.  网络配置文件

    1)  /etc/sysconfig/network-scripts/ifcfg-ens33 文件,保存 IP 地址和网关

    IPADDR=IP地址

    NETMASK=子网掩码

    BROADCAST=广播地址

    GATEWRY=网关

     

    2)  /etc/sysconfig/network 文件,保存本机主机名

    HOSTNAME=主机名

     

    3)  /etc/rc.d/init.d/network 网络启动脚本

    /etc/rc.d/init.d/network start/stop/restat

     

    4)  /etc/hosts 主机名数据库

     

    5)  /etc/services 文件,网络服务信息

     

    6)  /etc/resolv.conf,指定 NDS 服务器地址

    nameserver DNS服务器IP地址(小于等于3个)

     

    3.  网络管理命令

    1)  ifconfig

    功能描述

    用于查看或设置网络设备

    语法

    ifconfig [选项]

    示例:

    ifconfig                       #查看网络设备信息

    ifconfig ens33 192.168.1.152    #临时修改 IP 地址

    ifconfig ens33 down/up          #关闭或开启 ens33 网卡

     

    2)  ethtool

    功能描述

    检测网络连接

    语法

    ethtool [选项]

    示例:

    ethtool ens33       #检测ens33 网卡是否插入网线

     

    3)  arp

    功能描述

    查看 APR 表信息

    语法

    arp [选项]

    示例:

    arp -a                 #查看 APR 缓存表

    arp -d IP地址          #删除 ARP 地址

    arp -s IP地址MAC地址  #添加 ARP 静态记录

     

    4)  ping

    功能描述

    探测远程主机

    语法

    ping [选项]

    示例:

    ping -c 3 47.99.169.130         #指定发送ping 包的次数

    ping -s 1000 47.99.169.130     #指定发送ping 包的大小

     

    提示:0% packet loss            #需要注意丢包率

     

    5)  route

    功能描述

    操作路由表

    语法

    route [选项]

    示例:

     

    6)  traceroute

    功能描述

    查看路由路径

    语法

    traceroute [选项]

    示例:

    traceroute test.ms.zxsxdd.com      #查看路由过程

     

    7)  netstat

    功能描述

    监控网络状态

    语法

    netstat [选项]

    示例:

    netstat -tunpl                 #查看全部端口

    netstat -tunpl | grep 6379      #查看某个端口

    netstat -an | more              #查看系统监听的端口

    netstat -an | grep :80          #查看运行端口

     

    说明:也可以使用 !net 命令。

     

    8)  查看监听的端口

    netstat -lnpt

    netstat -tunpl | grep :80

    netstat -lnpt | grep 5672       #检查端口被哪个进程占用

    ps 6832                        #查看进程的详细信息

    kill -9 6832                   #中止进程

     

    9)  重启网络

    service restart network

     

    4.  防火墙管理命令

    1)  使用systemctl 管理

    systemctl status firewalld          #查看防火墙状态

    systemctl start firewalld           #开启防火墙

    systemctl stop firewalld            #关闭防火墙

    systemctl disable firewalld         #停止并禁用开机自启动

    systemctl enable firewalld          #启用开机自启动

    systemctl restart firewalld         #重新启动

     

    或者 service firewalld status

     

    2)  使用 firewall-cmd 命令管理(CentOS7 以上版本)

    firewall-cmd --state                #查看防火墙状态

    firewall-cmd --reload              #使配置立即生效

    或者 service firewalld restart

     

    1.  查看开放的端口

    firewall-cmd --zone=public --list-ports --permanent

     

    2.  开放端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent

    --zone             #作用域

    --add-port=80/tcp   #开放的端口,格式为:端口/通讯协议

    --permanent        #永久生效(没有此参数重启后会失效)

     

    开放区间端口

    firewall-cmd --zone=public --add-port=30000-31000/tcp --permanent

    firewall-cmd --zone=public --add-port=30000-31000/udp --permanent

     

    3.  验证开放端口是否生效

    firewall-cmd --zone=public --query-port=8080/tcp

     

    4.  关闭端口

    firewall-cmd --zone=public --remove-port=82/tcp --permanent

     

    5.  使用开放、关闭服务

    列出支持的服务,在列表中的服务是放行的

    firewall-cmd --get-services

     

    查看 ftp 服务是否支持,返回yes或者no

    firewall-cmd --query-service ftp

     

    临时开放 ftp 服务

    firewall-cmd --add-service=ftp

     

    查看当前开了哪些端口

    一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。

    firewall-cmd --list-services

     

    永久开放 ftp 服务

    firewall-cmd --add-service=ftp --permanent

     

    永久关闭 ftp 服务

    firewall-cmd --remove-service=ftp --permanent

     

    6.  开启常见的端口

    firewall-cmd --zone=public --add-port=20/tcp --permanent

    firewall-cmd --zone=public --add-port=21/tcp --permanent

    firewall-cmd --zone=public --add-port=22/tcp --permanent

    firewall-cmd --zone=public --add-port=80/tcp --permanent

    firewall-cmd --zone=public --add-port=443/tcp --permanent

    firewall-cmd --zone=public --add-port=1521/tcp --permanent

    firewall-cmd --zone=public --add-port=6379/tcp --permanent

    firewall-cmd --zone=public --add-port=53/udp --permanent

     

    7.  关闭常见的端口

    firewall-cmd --zone=public --remove-port=20/tcp --permanent

    firewall-cmd --zone=public --remove-port=21/tcp --permanent

    firewall-cmd --zone=public --remove-port=22/tcp --permanent

    firewall-cmd --zone=public --remove-port=80/tcp --permanent

    firewall-cmd --zone=public --remove-port=443/tcp --permanent

    firewall-cmd --zone=public --remove-port=1521/tcp --permanent

    firewall-cmd --zone=public --remove-port=6379/tcp --permanent

    firewall-cmd --zone=public --remove-port=53/udp --permanent

     

    firewall-cmd --get-zones

    注:如果没有 firewall 需要先安装

    yum install firewalld firewalld-config

  • 相关阅读:
    判断输入的字符串是否含有特殊字符和表情
    表单转换为JSON
    重写Alert和confirm方法去除地址显示
    C语言内存管理
    自定义C语言中常用的字符串操作函数
    C语言中定义字符串的几种方式
    WebStorm常用快捷键
    鼠标点击特效
    打印指定年份的日历
    VS code 生成.exe可执行文件失效问题
  • 原文地址:https://www.cnblogs.com/abeam/p/15730299.html
Copyright © 2011-2022 走看看