centos网络配置
Linux网络属性管理(1) 局域网:以太网,令牌环网 Ethernet: CSMA/CD 冲突域 广播域 MAC:Media Access Control 48bits: 24bits: 24bits: IP: Internet Protocol Routing protocol Routed protocol OSI: OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU 物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2 tcp/ip分层协议栈:物理层,互联网层,传输层,应用层 application layer transport layer internet layer datalink layer pysical layer ip协议:网络号+主机号 IPv4 地址分类:32bits 8bits.8bits.8bits.8bits 点分十进制: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 //用于与ip地址进行"与"运算,从而取出其网络地址 1.3.2.2/255.0.0.0 = 1.0.0.0 私网地址:10.0.0.0/255.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=254 默认子网掩码: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 ipv6:128bits 跨网络通信:路由router 路由表: 静态指定 动态学习: rip2,ospf 路由条目: 目标地址 吓一跳(nexthop) 目标地址的类别: 主机:主机路由host 网络:网络路由net 0.0.0.0 /0.0.0.0 :默认路由 os: 多任务,多用户,多进程 通信时,进程的数字标识; 16bits: 0-65535 1-1023: 固定分配,而且只有管理员有权限启用; 1024-4w :半固定; 4w+: 临时; 进程地址: ip:port,socket 将Linux主机接入到网络中: IP/netmask: 本地通信 路由(网关):跨网络通信 DNS服务器地址: 基于主机名的通信 主DNS服务器 次(备用)DNS服务器 第三DNS服务器 配置方式: 静态指定: ifcfg: ifconfig:配置IP,netmask route:路由 netstat:状态及统计数据查看 iproute2家族: ip OBJECT: addr:地址和掩码; link:接口 route:路由 ss:状态及统计数据查看 配置文件: redhat及相关发行版: /etc/sysconfig/network-scripts/ifcfg-网卡名 CentOS 7:nm(network manager)家族 nmcli:命令行工具 nmtui:text window 工具 注意: (1)DNS服务器指定 配置文件: /etc/resolv.conf (2)本地主机名配置 hostname 配置文件:/etc/sysconfig/network centos7 : hostnamectl 动态分配:依赖于本地网络中有DHCP服务 DHCP: Dynamic Host Configuration Protocol 网络接口命名方式: 传统命令: 以太网:eth0,eth1,... ppp网络:ppp[0,1,2,...] 可预测命令方案(centos): 支持多种不同的命名机制: fireware,拓扑结构 1) Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1,eno2, … 2) Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2, … 3) 如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, … 4) 如果用户显式定义,也可根据MAC地址命名,例如eno16777736(十六进制MAC), … 5)上述均不可用,则仍使用传统方式命名; 命名格式的组成: en:ethernet,表示因特网网卡接口 wl:wlan,表示无线网网卡接口 ww:wwan,Wireless Wide Area Network,表示无线广域网网卡 名称类型: o<index>:集成设备的设备索引号; s<slot>:扩展槽的索引号; x<MAC>:基于MAC地址的命名; p<bus>s<slot>:基于总线及槽的拓扑结构进行命名; Linux网络属性配置(2) ifcfg家族: ifconfig命令:接口及地址查看 ifconfig [interface] # ifconfig -a显示所有接口,包括inactive状态接口; # ifconfig IFACE(网卡名) [up|down] ifconfig interface [aftype] options | address ... # ifconfig IFACE IP/mask [up] eg: ifconfig eth1 192.168.10.1/24 up # ifconfig IFACE IP netmask MASK eg: ifconfig eth1 192.168.10.101 netmask 255.255.255.0 注意:立即生效;送往内核中的tcp/ip协议栈,并生效; options: 启用混杂模式:[-]promisc route命令:路由查看及管理 路由条目类型: 主机路由:目标地址为单个ip; host 网络路由:目标地址为ip网络; net 默认路由:目标为本地主机; 0.0.0.0/0.0.0.0 路由管理命令 查看:route -n ;-n为反解,以数字显示IP和端口; 添加:route add route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] Iface] 目标des:192.168.0.0 网关gw:192.168.73.3(需要和自己主机在同一个网段) ~]# route add -host 192.168.0.0/16 gw 192.168.73.3 dev eth0 目标:192.168.0.0 网关:196.168.73.0 ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 196.168.73.0 dev eth0 ~]# route add -net 192.168.0.0/24 gw 192.168.73.0 dev eth0 默认路由,网关:196.168.73.0 ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 196.168.73.0 ~]# route add default gw 196.168.73.0 注意:gw 0.0.0.0 表示不用网关即默认网关,就在自己的本机上,无需网关; 删除:route del route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If] 目标:192.18.0.0 网关:172.16.0.1 ~]# route del -net 192.18.0.0 netmask 255.255.255.0 gw 172.16.0.1 DNS服务器指定 /etc/resolv.conf nameserver DNS_SERVER_IP1(数字地址ip) nameserver DNS_SERVER_IP2 nameserver DNS_SERVER_IP3(最多三个) 如何测试: 正解:FQDN-->IP # dig -t A FQDN(主机名) fqdn-->ip # 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,-tunlp 显示路由表: netstat {--route|-r} [--numeric|-n] -r: 显示内核路由表 -n: 数字格式 ~]# netstat -rn 显示接口统计数据: netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n] # netstat -i # netstat -I IFACE 总结:ifcfg家庭命令配置 ifconfig/route/netstat ifup/ifdown Linux网络配置(3) 配置Linux网络属性:ip命令 iproute家族: ip命令: ip - show / manipulate routing, devices, policy routing and tunnels ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | route } ip OBJECT: ip link - network device configuration ip link set dev IFACE(default): 指明要管理的设备,dev关键字可省略; up and down:激活或禁用指定接口; multicast on 或 multicast off: 启用或禁用多播功能 name NAME: 重命名接口 mtu NUMBER : 设置mtu的大小,默认为1500 netns PID : ns为namespace,用于将接口移动到指定的网络名称空间; ip link show ip link help ip netns : ip - manage network namespaces ip netns list : 列出所有的netns ip netns add name : 创建指定netns ip netns del name : 删除指定的netns ip netns exec name cmd : 在指定的netns 中运行命令 ip address - protocol address management管理接口地址 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 - 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 ip route delete 删除路由:ip route del TARGET ip route show ip route flush [dev IFACE] [via PREFIX] ss命令:another utility to investigate sockets 格式:ss [OPTION]... [FILTER] 选项: -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 Linux网络属性配置(4): 修改配置文件 IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE 路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE /etc/sysconfig/network-scripts/ifcfg-IFACE: [root@centos7-1 network-scripts]# cat ifcfg-ens33 TYPE="Ethernet" PROXY_METHOD="none" // BROWSER_ONLY="no" BOOTPROTO="dhcp" DEFROUTE="yes" //是否使用默认路由 IPV4_FAILURE_FATAL="no" //ipv4出错时是否使用ipv6 IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="795f0d4a-6e0b-492b-b145-08f1eebf10cb" DEVICE="ens33" ONBOOT="yes" 解释: DEVICE:此配置文件应用到的设备;与IFACE一致; HWADDR:对应的设备的MAC地址; BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp; NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”; ONBOOT:在系统引导时是否激活此设备; TYPE:接口类型;常见有的Ethernet, Bridge; UUID:设备的惟一标识; IPV6INIT: 是否初始化IPv6; IPADDR:指明IP地址; NETMASK:子网掩码;PREFIX GATEWAY: 默认网关; DNS1:第一个DNS服务器指向; DNS2:第二个DNS服务器指向; USERCTL:普通用户是否可控制此设备; PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;默认允许即yes; NM_CONTROLLED: 是否使用networkmanger服务来控制接口; 网络服务: network networkmanger 管理网络服务: centos6 : service network { status | restart | start | stop } centos7 : systemctl { status | restart | start | stop } network[.service] 配置文件修改之后,需重启网络服务,配置文件才生效; 重启方法见管理网络服务; /etc/sysconfig/network-scripts/route-IFACE 两种风格:不可混用 (1) 每行一个路由条目 TARGET via GW (2) 每三行定义一条路由 ADDRESS#=TARGET NETMASK#=mask GATEWAY#=GW 给网卡配置多地址: ifconfig: ifconfig IFACE_ALIAS ip ip addr add 配置文件: ifcfg-IFACE_ALIAS DEVICE=IFACE_ALIAS 注意:网关别名不能使用dhcp协议引导; Linux网络属性配置的tui(text user interface): system-config-network-tui 也可以使用setup找到; 注意:记得重启网络服务方能生效; 配置当前主机的主机名: hostname [HOSTNAME] /etc/sysconfig/network HOSTNAME= 网络接口识别并命名相关的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<index>: 集成设备的设备索引号; s<slot>: 扩展槽的索引号; x<MAC>: 基于MAC地址的命名; p<bus>s<slot>: enp2s1 网卡设备的命名过程: 第一步: udev, 辅助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules 第二步: 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生成其配置文件 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 网络接口配置tui工具:nmtui 主机名称配置工具:hostnamectl status set-hostname 博客作业:上述所有内容; ifcfg, ip/ss, 配置文件, nmcli 参考资料:http://www.redhat.com/hdocs 课外作业:nmap, ncat, tcpdump工具 网络客户端工具: lftp, ftp, lftpget, wget # lftp [-p port] [-u user[,password]] SERVER 子命令: get mget ls help # lftpget URL # ftp # wget wget [option]... [URL]... -q: 静默模式 -c: 续传 -O: 保存位置 --limit-rates=: 指定传输速率 回顾:ip命令,ss命令;配置文件;CentOS 7 ifcfg、ip、netstat、ss 配置文件: /etc/sysconfig/network-scripts/ ifcfg-IFNAME route-IFNAME CentOS 7: nmcli, nmtui