zoukankan      html  css  js  c++  java
  • 网络配置

    基本网络配置
    • 将Linux主机接入到网络,需要配置网络相关设置。
    • 一般包括如下内容:
      主机名 IP/netmask
      路由:默认网关
      DNS服务器
      • 主DNS服务器
      • 次DNS服务器
      • 第三DNS服务器
    CentOS 6网卡配置
    • 接口命名方式:CentOS 6
      以太网:eth[0,1,2,...]
      ppp:ppp[0,1,2,...]
    • 网络接口识别并命名相关的udev配置文件:
      /etc/udev/rules.d/70-persistent-net.rules
    • 查看网卡:
      dmesg |grep –i eth
      ethtool -i eth0
    • 卸载网卡驱动:
      modprobe -r e1000
      rmmod e1000
    • 装载网卡驱动:
      modprobe e1000
    • 静态指定:
      ifconfig, route, netstat
      ip: object {link, addr, route}, ss, tc
      system-config-network-tui,setup
      配置文件
    • 动态分配:
      DHCP: Dynamic Host Configuration Protocol
    • ifconfig命令
      ifconfig [interface]
      ifconfig -a
      ifconfig IFACE [up|down]
      ifconfig interface [aftype] options | address ...
      ifconfig IFACE IP/netmask [up]
      ifconfig IFACE IP netmask NETMASK
      注意:立即生效
      启用混杂模式:[-]promisc
    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 gw 172.16.0.1 dev eth0
    • 目标: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
      • route del -host 192.168.1.3
    • 目标:192.168.0.0 网关:172.16.0.1
      • route del -net 192.168.0.0 netmask 255.255.255.0
    配置动态路由
    • 通过守护进程获取动态路由
      • 安装quagga包
      • 支持多种路由协议:RIP、OSPF和BGP
      • 命令vtysh配置
    netstat命令
    • 显示网络连接:
      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
      • ifconfig -s eth0
    ip命令
    • 配置Linux网络属性:ip命令
    • ip - show / manipulate routing, devices, policy routing and tunnels
      • ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | route }
      • ip link - network device configuration • set dev IFACE
      可设置属性:
      • up and down:激活或禁用指定接口
      • ifup/ifdown
      • show [dev IFACE]:指定接口
      • [up]:仅显示处于激活状态的接口
    • ip addr { add | del } IFADDR dev STRING
      • [label LABEL]:添加地址时指明网卡别名
      • [scope {global|link|host}]:指明作用域
      • global: 全局可用
      • link: 仅链接可用
      • host: 本机可用
      • [broadcast ADDRESS]:指明广播地址
    • ip address show - look at protocol addresses
      • [dev DEVICE]
      • [label PATTERN]
      • [primary and secondary]
    • ip address flush - 使用格式同show
      • ip addr add 172.16.100.100/16 dev eth0 label eth0:0
      • ip addr del 172.16.100.100/16 dev eth0 label eth0:0
      • ip addr flush dev eth0 label eth0:0
    • 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 192.168.0.0/24 via 172.16.0.1
      • ip route add 192.168.1.13 via 172.16.0.1
      • 添加网关:ip route add default via GW dev IFACE
      ip route add default via 172.16.0.1
      • 删除路由:ip route del TARGET
      • 显示路由:ip route show|list
      • 清空路由表:ip route flush [dev IFACE] [via PREFIX]
      • ip route flush dev eth0
    ss命令
    • 格式:ss [OPTION]... [FILTER]
    • netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取 socket信息。
    • 选项:
      • -t: tcp协议相关
      • -u: udp协议相关
      • -w: 裸套接字相关
      • -x:unix sock相关
      • -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
    常见用法
    • ss -l 显示本地打开的所有端口
    • ss -pl 显示每个进程具体打开的socket
    • ss -t -a 显示所有tcp socket
    • ss -u -a 显示所有的UDP Socekt
    • ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的 ssh连接
    • ss -o state established '( dport = :http or sport = :http )' 显示所有已建立 的HTTP连接
    • ss -s 列出当前socket详细信息
    网络配置文件
    • IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/networkscripts/ifcfg-IFACE
    • 路由相关的配置文件:
      /etc/sysconfig/network-scripts/route-IFACE
    • /etc/sysconfig/network-scripts/ifcfg-IFACE:
      • 说明参考/usr/share/doc/initscripts-9.49.30/sysconfig.txt
      • 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文件中
    • /etc/sysconfig/network-scripts/route-IFACE
      • 注意:需service network restart生效
      • 两种风格:
      (1) TARGET via GW
      • 如:10.0.0.0/8 via 172.16.0.1
      (2) 每三行定义一条路由
      • ADDRESS#=TARGET
      • NETMASK#=mask
      • GATEWAY#=GW
    网卡别名
    • 对虚拟主机有用
    • 将多个IP地址绑定到一个NIC上
      eth0:1 、eth0:2、eth0:3
    • ifconfig命令:
      ifconfig eth0:0 192.168.1.100/24 up
      ifconfig eth0:0 down
    • ip命令:
      • ip addr add 172.16.1.2/16 dev eth0
      • ip addr add 172.16.1.1/16 dev eth0 label eth0:0
      • ip addr add 172.16.1.2/16 dev eth0 label eth0:0
      • ip addr del 172.16.1.1/16 dev eth0 label eth0:0
      • ip addr flush dev eth0 label eth0:0
    设备别名
    • 为每个设备别名生成独立的接口配置文件
      • 关闭NetworkManager服务
      • ifcfg-ethX:xxx
      • 必须使用静态联网
      DEVICE=eth0:0
      IPADDR=10.10.10.10
      NETMASK=255.0.0.0
      ONPARENT=yes
    • 注意:service network restart 生效
    • 参考:/usr/share/doc/initscripts-*/sysconfig.txt
    bonding
    • Bonding: 将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给 两块网卡设置同一IP地址是不可以的。通过bonding,虚拟一块网卡对外提供连接, 物理网卡的被修改为相同的MAC地址
    Bonding工作模式
    • Mode 0 (balance-rr)
      轮转(Round-robin)策略:从头到尾顺序的在每一个slave 接口上面发送数据包。本模式提供负载均衡和容错的能力
    • Mode 1 (active-backup)
      活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失 败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一 个外部端口上可见
    • Mode 3 (broadcast)
      广播策略:在所有的slave接口上传送所有的报文,提供容错能力
    • active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特 殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需 要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel
    Bonding配置
    • 创建bonding设备的配置文件
    • /etc/sysconfig/network-scripts/ifcfg-bond0
      • DEVICE=bond0
      • BOOTPROTO=none
      • BONDING_OPTS= “miimon=100 mode=0”
    • /etc/sysconfig/network-scripts/ifcfg-eth0
      • DEVICE=eth0
      • BOOTPROTO=none
      • MASTER=bond0
      • SLAVE=yes
      • USERCTL=no
    • 查看bond0状态:/proc/net/bonding/bond0
    • miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测 一次链路连接状态,如果有一条线路不通就转入另一条线路
    • 删除bond0
      ifconfig bond0 down
      rmmod bonding
    • 详细帮助:
      /usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txt
      https://www.kernel.org/doc/Documentation/networking/bonding.txt
    CentOS 7网络属性配置
    • CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡 时,名称可能会发生变化
    • CentOS 7使用基于硬件,设备拓扑和设置类型命名:
    • (1) 网卡命名机制
      systemd对网络设备的命名方式
      • (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预 测则根据此索引进行命名,例如eno1
      • (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测, 则根据此索引进行命名,例如ens1
      • (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如 enp2s0
      • (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
      • (e) 上述均不可用时,则使用传统命名机制
    • 基于BIOS支持启用biosdevname软件
      内置网卡:em1,em2
      pci卡:pYpX Y:slot ,X:port
    • (2) 名称组成格式
      • en: Ethernet 有线局域网
      • wl: wlan 无线局域网
      • ww: wwan无线广域网
      名称类型:
      • o<index>: 集成设备的设备索引号
      • s<slot>: 扩展槽的索引号
      • x<MAC>: 基于MAC地址的命名
      • p<bus>s<slot>: enp2s1
    采用传统命名方式
    • 使用传统命名方式:
    • (1) 编辑/etc/default/grub配置文件
      GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"
      或:修改/boot/grub2/grub.cfg
    • (2) 为grub2生成其配置文件
      grub2-mkconfig -o /etc/grub2.cfg
    • (3) 重启系统
    CentOS 7网络配置工具
    • CentOS7主机名 • 配置文件:/etc/hostname ,默认没有此文件,通过DNS反向解析获取主机 名,主机名默认为:localhost.localdomain •显示主机名信息
      hostname
      hostnamectl status
      •设置主机名
      hostnamectl set-hostname centos7.magedu.com • 删除文件/etc/hostname,恢复主机名localhost.localdomain
    • CentOS 7网络配置工具
      • 图形工具:nm-connection-editor
      • 字符配置tui工具:nmtui
      • 命令行工具:nmcli
    nmcli命令
    • 地址配置工具:nmcli
    • nmcli [ OPTIONS ] OBJECT { COMMAND | help }
      •device - show and manage network interfaces
      •nmcli device help
      •connection - start, stop, and manage network connections
      •nmcli connection help
    • 修改配置文件执行生效:systemctl restart network
      nmcli con reload
    • nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0
    • NeworkManager是管理和监控网络设置的守护进程
    • 设备即网络接口,连接是对网络接口的配置,一个网络接口可有多个连接配置, 但同时只有一个连接配置生效
    • 显示所有包括不活动连接
      nmcli con show
    • 显示所有活动连接
      nmcli con show --active
    • 显示网络连接配置
      nmcli con show "System eth0“
    • 显示设备状态
      nmcli dev status
    • 显示网络接口属性
      nmcli dev show eth0
    • 创建新连接default,IP自动通过dhcp获取
      nmcli con add con-name default type Ethernet ifname eth0
    • 删除连接
      nmcli con del default
    • 创建新连接static ,指定静态IP,不自动连接
      nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
    • 启用static连接配置
      nmcli con up static
    • 启用default连接配置
      nmcli con up default
    • 查看帮助
      nmcli con add help
    测试网络工具
      • 在命令行下测试网络的连通性
        显示主机名
        hostname
        测试网络连通性
        ping
        显示正确的路由表
        ip route
      • 跟踪路由
        traceroute
        tracepath
        mtr
      • 确定名称服务器使用 nslookup
        host
        dig
  • 相关阅读:
    【404】int main(int argc,char * argv[]) windows 下的使用
    【403】COMP9024 Exercise
    【402】Twitter Data Collection
    【401】Python 求合数的所有质数因子
    【400】numpy.pad 为数组加垫(迷宫类题目)
    iOS开发之指纹解锁
    iOS-响应链(Responder Chain)
    iOS上手指点击波纹效果的实现
    使用methodSignatureForSelector与forwardInvocation实现消息转发 (转)
    Objective-C中的@dynamic(转)
  • 原文地址:https://www.cnblogs.com/AloneSea/p/9885831.html
Copyright © 2011-2022 走看看