【Linux】【Basis】网络
Linux网络属性配置 计算机网络: TCP/IP:协议栈(使用) ISO,OSI:协议栈(学习) MAC:Media Access Control 48bits: ICANN:24bits, 2^24 地址块:2^24 网桥(bridge):MAC地址表 静态指定: 动态学习:根据原地址学习; 交换机(switch):多端口网桥; IP(Internet protocol)地址:网络号+主机号 A<-->B 网络? 主机? IPv4:32bits 8bits.8bits.8bits.8bits 0-255 0.0.0.0-255.255.255.255 IP地址分类: A类: 第一段为网络号,后三段为主机号 网络号: 0 000 0000 - 0 111 1111:1-127 网络数量:126,127 每个网络中的主机数量:2^24-2 默认子网掩码:255.0.0.0,/8 用于与IP地址按位进行“与”运算,从而取出其网络地址; 1.3.2.1/255.0.0.0 = 1.0.0.0 1.3.2.1/255.255.0.0= 1.3.0.0 私网地址:10.0.0.0/255.0.0.0 B类: 前两段为网络号,后两段为主机号 网络号: 10 00 0000 - 10 11 1111:128-191 网络数:2^14 每个网络中的主机数量:2^16-2 默认子网掩码:255.255.0.0,/16 私网地址:172.16.0.0-172.31.0.0 C类: 前三段为网络号,最后一段为主机号 网络号: 110 0 0000 - 110 1 1111:192-223 网络数:2^21 每个网络中的主机数量:2^8-2 默认子网掩码:255.255.255.0, /24 D类:组播 1110 0000 - 1110 1111:224-239 E类:科研 240-255 IPv6:128bits 路由器:router 路由表: 静态指定 动态学习:rip2, ospf 路由条目: 目标地址 下一跳(nexthop) 目标地址的类别: 主机:主机路由 网络:网络路由 0.0.0.0/0.0.0.0:默认路由 OS:多用户,多任务 多任务:多进程 chrome: QQ: QQ Music: 通信时,进程的数字标识: 16bits: 0-65535:1-65535 1-1023:固定分配,而且只有管理员有权限启用; 1024-4W:半固定, 4W+:临时; 进程地址: IP:PORT, socket 总结: MAC:本地通信;范围:本地局域网; IP:界定通信主机,源和目标;范围:互联网; Port:界定进程;范围:主机 ; 将Linux主机接入到网络中: IP/NETMASK:本地通信 路由(网关):跨网络通信 DNS服务器地址:基于主机名的通信 主DNS服务器地址 备用DNS服务器地址 第三备份DNS服务器地址 配置方式: 静态指定: 命令: ifcfg家族: ifconfig:配置IP,NETMASK route:路由 netstat:状态及统计数据查看 iproute2家族: ip OBJECT: addr:地址和掩码; link:接口 route:路由 ss:状态及统计数据查看 CentOS 7:nm(Network Manager)家族 nmcli:命令行工具 nmtui:text window 工具 注意: (1) DNS服务器指定 配置文件:/etc/resolv.conf (2) 本地主机名配置 hostname 配置文件:/etc/sysconfig/network CentOS 7:hostnamectl 配置文件: RedHat及相关发行版 /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME 动态分配:依赖于本地网络中有DHCP服务 DHCP:Dynamic Host Configure Procotol 网络接口命名方式: 传统命名: 以太网:ethX, [0,oo),例如eth0, eth1, ... PPP网络:pppX, [0,...], 例如,ppp0, ppp1, ... 可预测命名方案(CentOS): 支持多种不同的命名机制: Fireware, 拓扑结构 (1) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1, eno2, ... (2) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1, ens2, ... (3) 如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, ... (4) 如果用户显式定义,也可根据MAC地址命名,例如enx122161ab2e10, ... 上述均不可用,则仍使用传统方式命名; 命名格式的组成: en:ethernet wl:wlan ww:wwan 名称类型: o<index>:集成设备的设备索引号; s<slot>:扩展槽的索引号; x<MAC>:基于MAC地址的命名; p<bus>s<slot>:基于总线及槽的拓扑结构进行命名; 回顾:计算机网络基础、Linux网络属性配置 TCP/IP协议栈:物理层、互联网层、传输层、应用层 互联网层:IP 传输层:TCP, UDP 应用层:http, https, ftp, ldap, ... 链接路层:以太网帧 互联网层:IP报文 以太网帧:MTU(1500) Linux网络属性配置:命令,配置文件; Linux网络属性配置(2) ifcfg命令家族: ifconfig, route, netstat ifconfig命令:接口及地址查看和管理 ifconfig [INTERFACE] # ifconfig -a:显示所有接口,包括inactive状态的接口; ifconfig interface [aftype] options | address ... # ifconfig IFACE IP/MASK [up|down] # ifconfig IFACE IP netmask NETMASK options: [-]promisc 注意:立即送往内核中的TCP/IP协议栈,并生效; 管理IPv6地址: add addr/prefixlen del addr/prefixlen route命令:路由查看及管理 路由条目类型: 主机路由:目标地址为单个IP; 网络路由:目标地址为IP网络; 默认路由:目标为任意网络,0.0.0.0/0.0.0.0 查看: # route -n 添加: route add [-net|-host] target [netmask Nm] [gw GW] [[dev] If] 示例:route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1 route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1 route add default gw 192.168.10.1 删除: route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If] 示例: route del -net 10.0.0.0/8 gw 192.168.10.1 route del default netstat命令: Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships 显示路由表:netstat -rn -r:显示内核路由表 -n:数字格式 显示网络连接: netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p] -t:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine); -u:UDP相关的连接 -w:raw socket相关的连接 -l:处于监听状态的连接 -a:所有状态 -n:以数字格式显示IP和Port; -e:扩展格式 -p:显示相关的进程及PID; 常用组合: -tan, -uan, -tnl, -unl, -tunlp 传输层协议: tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后还要拆除连接; udp:无连接的协议;直接发送数据报文; 显示接口的统计数据: netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n] 所有接口: netstat -i 指定接口: netstat -I<IFace> ifup/ifdown命令: 注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置; 配置主机名: hostname命令: 查看:hostname 配置:hostname HOSTNAME 当前系统有效,重启后无效; hostnamectl命令(CentOS 7): hostnamectl status:显示当前主机名信息; hostnamectl set-hostname:设定主机名,永久有效; 配置文件:/etc/sysconfig/network HOSTNAME=<HOSTNAME> 注意:此方法的设置不会立即生效; 但以后会一直有效; 配置DNS服务器指向: 配置文件:/etc/resolv.conf nameserver DNS_SERVER_IP 如何测试(host/nslookup/dig): # dig -t A FQDN FQDN --> IP # dig -x IP IP --> FQDN iproute家族: ip命令: show / manipulate routing, devices, policy routing and tunnels ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | route | netns } 注意: OBJECT可简写,各OBJECT的子命令也可简写; ip OBJECT: ip link: network device configuration ip link set - change device attributes dev NAME (default):指明要管理的设备,dev关键字可省略; up和down: multicast on或multicast off:启用或禁用多播功能; name NAME:重命名接口 mtu NUMBER:设置MTU的大小,默认为1500; netns PID:ns为namespace,用于将接口移动到指定的网络名称空间; ip link show - display device attributes ip link help - 显示简要使用帮助; ip netns: - manage network namespaces. ip netns list:列出所有的netns ip netns add NAME:创建指定的netns ip netns del NAME:删除指定的netns ip netns exec NAME COMMAND:在指定的netns中运行命令 ip address - protocol address management. ip address add - add new protocol address ip addr add IFADDR dev IFACE [label NAME]:为额外添加的地址指明接口别名; [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到; [scope SCOPE_VALUE]: global:全局可用; link:接口可用; host:仅本机可用; ip address delete - delete protocol address ip addr delete IFADDR dev IFACE ip address show - look at protocol addresses ip addr list [IFACE]:显示接口的地址; ip address flush - flush protocol addresses ip addr flush dev IFACE ip route - routing table management ip route add - add new route ip route change - change route ip route replace - change or add new one ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP] 示例: # ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100 # ip route add default via GW ip route delete - delete route ip route del TYPE PRIFIX 示例: # ip route delete 192.168.1.0/24 ip route show - list routes TYPE PRIFIX ip route flush - flush routing tables TYPE PRIFIX ip route get - get a single route ip route get TYPE PRIFIX 示例:ip route get 192.168.0.0/24 ss命令: ss [options] [ FILTER ] 选项: -t:TCP协议的相关连接 -u:UDP相关的连接 -w:raw socket相关的连接 -l:监听状态的连接 -a:所有状态的连接 -n:数字格式 -p:相关的程序及其PID -e:扩展格式信息 -m:内存用量 -o:计时器信息 FILTER := [ state TCP-STATE ] [ EXPRESSION ] TCP的常见状态: TCP FSM: LISTEN:监听 ESTABLISEHD:建立的连接 FIN_WAIT_1: FIN_WAIT_2: SYN_SENT: SYN_RECV: CLOSED: EXPRESSION: dport = sport = 示例:'( dport = :22 or sport = :22)' ~]# ss -tan '( dport = :22 or sport = :22 )' ~]# ss -tan state ESTABLISHED 配置文件: IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE IFACE:接口名称; 路由的相关配置文件:/etc/sysconfig/networkj-scripts/route-IFACE 配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim等文本编辑器直接修改,也可以使用专用的命令的进行修改(CentOS 6:system-config-network (setup),CentOS 7: nmtui) ifcfg-IFACE配置文件参数: DEVICE:此配置文件对应的设备的名称; ONBOOT:在系统引导过程中,是否激活此接口; UUID:此设备的惟一标识; IPV6INIT:是否初始化IPv6; BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none; TYPE:接口类型,常见的有Ethernet, Bridge; DNS1:第一DNS服务器指向; DNS2:备用DNS服务器指向; DOMAIN:DNS搜索域; IPADDR: IP地址; NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码; GATEWAY:默认网关; USERCTL:是否允许普通用户控制此设备; PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许; HWADDR:设备的MAC地址; NM_CONTROLLED:是否使用NetworkManager服务来控制接口; 网络服务: network NetworkManager 管理网络服务: CentOS 6: service SERVICE {start|stop|restart|status} CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service] 配置文件修改之后,如果要生效,需要重启网络服务; CentOS 6:# service network restart CentOS 7:# systemctl restart network.service 用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE 支持两种配置方式,但不可混用; (1) 每行一个路由条目: TARGET via GW (2) 每三行一个路由条目: ADDRESS#=TARGET NETMASK#=MASK GATEWAY#=NEXTHOP 给接口配置多个地址: ip addr之外,ifconfig或配置文件都可以; (1) ifconfig IFACE_LABEL IPADDR/NETMASK IFACE_LABEL: eth0:0, eth0:1, ... (2) 为别名添加配置文件; DEVICE=IFACE_LABEL BOOTPROTO:网上别名不支持动态获取地址; static, none nmcli命令: nmcli [ OPTIONS ] OBJECT { COMMAND | help } device - show and manage network interfaces COMMAND := { status | show | connect | disconnect | delete | wifi | wimax } connection - start, stop, and manage network connections COMMAND := { show | up | down | add | edit | modify | delete | reload | load } modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value> 如何修改IP地址等属性: # nmcli conn modify IFACE [+|-]setting.property value ipv4.address ipv4.gateway ipv4.dns1 ipv4.method manual 博客作业:上述所有内容; ifcfg, ip/ss,配置文件 课外作业:nmap, ncat, tcpdump命令;网络客户端工具: ping/lftp/ftp/lftpget/wget等; ping命令: send ICMP ECHO_REQUEST to network hosts ICMP:Internet Control Message Protocol ping [OPTION] destination -c #:发送的ping包个数; -w #:ping命令超时时长; -W #:一次ping操作中,等待对方响应的超时时长; -s #:指明ping包报文大小; hping命令: (package: hping3) send (almost) arbitrary TCP/IP packets to network hosts --fast --faster --flood -i uX traceroute命令: - print the route packets trace to network host 跟踪从源主机到目标主机之间经过的网关; ftp命令: ftp: File Transfer Protocol ftp服务命令行客户端工具; lftp命令: lftp [-p port] [-u user[,pass]] [site] get, mget put, mput rm, mrm lftpget命令: lftpget [-c] [-d] [-v] URL [URL...] -c:继续此前的下载; wget命令: The non-interactive network downloader. wget [option]... [URL]... -b:在后台执行下载操作; -q:静默模式,不显示下载进度; -O file:下载的文件的保存位置; -c:续传; --limit-rate=amount:以指定的速率传输文件;【Linux】【Basis】网络的更多相关文章
- Linux内核--网络栈实现分析(十一)--驱动程序层(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7555870 更多请查看专栏,地 ...
- Linux内核--网络栈实现分析(七)--数据包的传递过程(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7545855 更多请查看专栏,地 ...
- Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7497260 更多请看专栏,地址 ...
- Linux下网络流量实时监控工具
Linux下网络流量实时监控工具大全 在工作中发现,经常因为业务的原因,需要即时了解某台服务器网卡的流量,虽然公司也部署了cacti软件,但cacti是五分钟统计的,没有即时性,并且有时候打开监控页面 ...
- Linux内核--网络栈实现分析(一)--网络栈初始化
本文分析基于内核Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7488828 更多请看专栏, ...
- 安装Kali Linux操作系统Kali Linux无线网络渗透
安装Kali Linux操作系统Kali Linux无线网络渗透 Kali Linux是一个基于Debian的Linux发行版,它的前身是BackTrack Linux发行版.在该操作系统中,自带了大 ...
- Linux 系统 网络配置
Linux 系统 网络配置 配置Linux系统网络的方法有几种,这里介绍本人常用的两种. 第一种:使用命令ifconfig配置,具体用法:Ipconfig ethx x.x.x.x net ...
- Linux内核--网络栈实现分析(二)--数据包的传递过程--转
转载地址http://blog.csdn.net/yming0221/article/details/7492423 作者:闫明 本文分析基于Linux Kernel 1.2.13 注:标题中的”(上 ...
- Linux内核--网络栈实现分析(一)--网络栈初始化--转
转载地址 http://blog.csdn.net/yming0221/article/details/7488828 作者:闫明 本文分析基于内核Linux Kernel 1.2.13 以后的系列博 ...
- linux虚拟机网络连接模式 bridged, host-only, NAT
最近安装了fedora9.0,却一直不能连接到外网,我用的是3G无线网卡上网的,起初以为是linux不支持3G无线方式的,可后来装了虚拟机ubuntu却可以上网,在后来用有ADSL网络连接的电脑安装f ...
随机推荐
- [bzoj1032]祖码
先将连续的一段相同的点连起来,然后考虑对于一段区间,分两种情况:1.首尾两点再同时消掉,必然要先将去掉首尾的一段消掉后再消2.首尾两点再不同时刻消掉,那么必然存在一个断点k,使得k左右无关(题目中的错 ...
- [bzoj1109]堆积木
用f[i]表示前i个数,i必须被贡献的答案,考虑转移,枚举下一个被贡献的数j,那么j需要满足:1.$j<i$:2.$a[j]<a[i]$:3.$a[i]-(i-j+1)\le a[j]$, ...
- Assassin暗杀者-自用短小精悍的webshell管理工具分享
Assassin Assassin是一款精简的基于命令行的webshell管理工具,它有着多种payload发送方式和编码方式,以及精简的payload代码,使得它成为隐蔽的暗杀者,难以被很好的防御. ...
- HouseRobber
// // Created by Administrator on 2021/7/27. // #ifndef C__TEST01_HOUSEROBBER_HPP #define C__TEST01_ ...
- Lilypond+TexLive(LuaLatex+lyluatex)+VS Code实现谱文混排
没想到发文章反而更难被预览了,那就复制一份到随笔里好了. 多次尝试之下,终于实现了现阶段谱文混排的最理想方式: 1. 综合Latex的排版(还有广泛适用人群)的优势以及Lilypond的美观优势: 2 ...
- springboot访问静态资源404
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- Codeforces 356E - Xenia and String Problem(哈希)
Codeforces 题面传送门 & 洛谷题面传送门 首先显然一个 gray 串的长度只可能是 \(2^k-1\),其中 \(k\in\mathbb{Z}\). 考虑将一个字符改成另外一个字符 ...
- Codeforces 704C - Black Widow(dp)
Codeforces 题目传送门 & 洛谷题目传送门 u1s1 感觉这种题被评到 *2900 是因为细节太繁琐了,而不是题目本身的难度,所以我切掉这种题根本不能说明什么-- 首先题目中有一个非 ...
- Codeforces Round #732 (Div.1) 题解
实在是打击人信心的一场比赛啊--一不注意就掉了 50+ 分,rating 没了啊/ll/dk/wq/kk A Weak pretest!!!!!11 /fn/fn/fn 一个很显然的注意点是在交换前后 ...
- Sums gym100753M
Sums gym100753M 同余最短路模板,然而这个东西貌似也可以做去年D1T2 首先我们选择一个模数作为基准,然后剩下的这样连边: 对于一个面值为 x 的硬币 ,当前在 u 这个点(感性理解一下 ...