zoukankan      html  css  js  c++  java
  • 网络系列之

    网络配置方式:

    • 静态指定 - 命令临时配置和修改配置文件
    • 动态配置 - DHCP - Dynamic Host Configuration Protocol

    1 ifconfig命令

    ifconfig - 网卡IP相关管理命令

    来自于net-tools包,建议使用ip命令代替,CentOS8不默认安装

    # rpm -i 检查net-tools包是否安装
    [root@CentOS8 ~]# rpm -qi net-tools
    package net-tools is not installed
    # 安装net-tools工具包
    [root@CentOS8 ~]# yum -y install net-tools
    

    ifconfig用法:

    ifconfig [interface]
    ifconfig -a
    ifconfig iface [up|down]
    ifconfig interface [aftype] options | address ...
    ifconfig iface IP/netmask [up]
    ifconfig iface IP netmask NETMASK
    

    范例:

    # 给网口eth0添加IP和掩码
    [root@CentOS8 ~]# ifconfig eth0 192.168.40.14 netmask 255.255.255.0
    
    # 清楚eth0上面的IP地址
    [root@CentOS8 ~]# ifconfig eth0 0.0.0.0/0
    
    # 启用禁用网卡
    [root@CentOS8 ~]# ifconfig eth0 down
    [root@CentOS8 ~]# ifconfig eth0 up
    
    # 对一个网卡设置多个IP地址
    [root@CentOS8 ~]# ifconfig eth0:1 172.16.1.100/24
    

    2 route命令

    route - Kernel IP routing table,管理内核IP路由表

    route用法:

    route add [-net|-host|default] target [netmask] [gw GW] [[dev] IF]
    route del [-net|-host] target [gw GW] [netmask Nm] [[dev] IF]
    

    查看路由表:

    [root@CentOS8 ~]# route
    [root@CentOS8 ~]# route -n   
    

    范例:

    # 目标地址:192.168.1.3  网关:172.16.0.1
    [root@CentOS8 ~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
    
    # 目标:192.168.0.0  网关:172.16.0.1
    [root@CentOS8 ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
    [root@CentOS8 ~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
    [root@CentOS8 ~]# route add -net 192.168.8.0/24 dev eth1 metric 200
    
    #默认路由,网关:172.16.0.1
    [root@CentOS8 ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
    [root@CentOS8 ~]# route add -net 0.0.0.0/0 gw 172.6.0.1
    [root@CentOS8 ~]# route add default gw 172.16.0.1
    
    [root@CentOS8 ~]# route del -host 192.168.1.3
    [root@CentOS8 ~]# route del -net 192.168.0.0 netmask 255.255.255.0
    

    2.1 配置静态路由

    环境准备:

    #准备四台主机,给虚拟机添加对应模式网卡:
    HostA主机: eth0 NAT模式
    RouterA主机: eth0 NAT模式,eth1 仅主机模式
    RouterB主机:eth0 桥接模式,eth1 仅主机模式
    HostB主机:eth0 桥接模式
    

    环境拓扑:

    image

    环境配置:

    #配置HostA
    [root@HostA ~]# ifconfig eth0 10.0.0.61/8
    [root@HostA ~]# route add -net 10.0.0.0/8
    [root@HostA ~]# route add default gw 10.0.0.81 dev eth0
    
    #配置RouterA
    [root@RouterA ~]# ifconfig eth0 10.0.0.81/8
    [root@RouterA ~]# ifconfig eth1 192.168.0.82/24
    [root@RouterA ~]# route add -net 10.0.0.0/8 dev eth0
    [root@RouterA ~]# route add -net 192.168.0.0/24 dev eth1
    [root@RouterA ~]# route add -net 172.16.0.0/16 gw 192.168.0.83 dev eth1
    [root@RouterA ~]# echo 1 > /proc/sys/net/ipv4/ip_forward  		 # 测试环境临时配置
    [root@RouterA ~]# echo 1 > cat /proc/sys/net/ipv4/ip_forward	# 生产环境永久配置
    
    #配置RouterB
    [root@RouterB ~]# ifconfig eth0 192.168.0.83/24
    [root@RouterB ~]# ifconfig eth1 172.16.0.84/16
    [root@RouterB ~]# route add -net 192.168.0.0/24 dev eth0
    [root@RouterB ~]# route add -net 172.16.0.0/16 dev eth1
    [root@RouterB ~]# route add -net 10.0.0.0/8 gw 10.0.0.81 dev eth0
    [root@RouterB ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
    
    #配置HostB
    [root@HostB ~]# ifconfig eth0 172.16.0.71/16
    [root@HostB ~]# route add -net 172.16.0.0/16 dev eth0
    [root@HostB ~]# route add default gw 172.16.0.84 dev eth0
    

    2.2 配置动态路由

    通过守护进程获取动态路由,安装quagga包,通过命令vtysh配置

    支持多种路由协议:

    RIP ==> Routing Infomation Protocol,路由信息协议
    OSPF ==> Open Shortest Path First,开放式最短路径优先
    BGP ==> Border Gateway Protocol,边界网关协议
    

    3 netstat命令

    netstat来自于net-tools包,建议使用ss代替

    格式:

    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
    

    显示路由表:

    netstat {--route|-r} [--numeric|-n]
    -r: 显示内核路由表
    -n: 数字格式
    

    4 ip命令

    ip命令来自于iproute包,可用于代替ifconfig

    # 插ip命令来源于那个安装包
    [root@CentOS8 ~]# rpm -qf `which ip`
    iproute-5.3.0-5.el8.x86_64
    

    4.1 配置Linux网络属性

    ip [OPTIONS] OBJECT { COMMAND | help }
    

    ip命令说明:

    OBJECT := { link | addr | route }
    ip link - network device configuration
    set dev IFACE,可设置属性:up and down:激活或禁用指定接口,相当于 ifup/ifdown
    show [dev IFACE] [up]::指定接口 ,up 仅显示处于激活状态的接口
    

    IP地址管理

    ip addr { add | del } IFADDR dev STRING [label LABEL] [scope {global|link|host}]
    [broadcast ADDRESS]
    [label LABEL]:添加地址时指明网卡别名
    [scope {global|link|host}]:指明作用域,global: 全局可用.link: 仅链接可用,host: 本机可
    用
    [broadcast ADDRESS]:指明广播地址 
    ip address show 
    ip addr flush
    

    范例:

    [root@CentOS8 ~]# ip link set eth1 down  		#禁用网卡
    [root@CentOS8 ~]# ip link set eth1 name hongnet  #网卡改名
    [root@CentOS8 ~]# ip link set hongnet up 		#启用网卡
    # 网卡配置别名
    [root@CentOS8 ~]# ip addr add 172.16.1.100/16 dev eth0 label eth0:0
    [root@CentOS8 ~]# ip addr del 172.16.1.100/16 dev eth0 label eth0:0
    # 清除网络地址
    [root@CentOS8 ~]# ip addr flush dev eth0
    

    4.2 路由管理

    ip route用法

    #添加路由:
    ip route add TARGET via GW dev IFACE src SOURCE_IP
     TARGET:
     主机路由:IP
     网络路由:NETWORK/MASK
    #添加网关:
    ip route add default via GW dev IFACE
    #删除路由:
    ip route del TARGET 
    #显示路由:
    ip route show|list
    #清空路由表:
    ip route flush [dev IFACE] [via PREFIX]
    

    范例:

    [root@CentOS8 ~]# ip route add 192.168.0.0/24 via 172.16.0.1
    [root@CentOS8 ~]# ip route add 192.168.1.100 via 172.16.0.1
    # 添加默认路由
    [root@CentOS8 ~]# ip route add default via 172.16.0.1
    # 清除路由
    [root@CentOS8 ~]# ip route flush dev eth0
    

    5 ss命令

    ss来自于iproute包,代替netstat,netstat通过遍历/proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息。

    格式:

    ss [option] ... [filter]
    

    选项:

    -t:tcp协议相关
    -u:udp协议相关
    -w:裸套接字相关
    -x:Unix sock相关
    -l:listen状态的连接
    -a:所有
    -n:数字格式
    -p:相关的程序及PID
    -e:扩展的信息
    -m:内存用量
    -o:计时器信息
    

    格式说明:

    FILTER: [state TCP-STAT] [EXPRESSION]
    TCP的常见状态:
      tcp finite state machine:
        LISTEN		#监听
        ESTABLISHED  #已建立的连接
        FIN_WAIT_1	#完成等待
        FIN_WAIT_2
        SYN_SENT	#同步发送
        SYN_RECV	#同步接受
        CLOSED		#关闭
    EXPRESSION:
        dport=		#目标端口
        sport=		#源端口
    

    常用组合:

    -tan,	#所有tcp协议以数字格式显示
    -tanl,	#所有监听状态的tcp协议以数字格式显示
    -tanlp, #所有监听tcp的程序及PID以数字格式显示
    -uan,	#所有udp协议以数字格式显示
    

    范例:

    [root@CentOS8 ~]# ss -l		#显示本地打开的所有端口
    [root@CentOS8 ~]# ss -pl	#显示每个进程具体打开的socket
    [root@CentOS8 ~]# ss -ta	#显示tcp socket
    # 显示所以已建立的ssh连接
    [root@CentOS8 ~]# ss -o state established '(dport = :ssh or sport = :ssh)'
  • 相关阅读:
    去除aspx生成的页面最开始的空行
    单个方框内图片垂直水平居中和等比例缩小(支持所有浏览器)
    .net里怎样在Main方法之前执行代码?
    WIN7系统盘空间不够用解决办法
    语音识别工具箱之HTK安装与使用
    一个VC中的DLL导出类的例子
    c++ 随机数 产生不重复的随机数
    android开发 NDK 编译和使用静态库、动态库
    c++指针 初识
    c++ UTF8和Unicode 互转
  • 原文地址:https://www.cnblogs.com/hony625/p/15093445.html
Copyright © 2011-2022 走看看