## 网络基础 - [Linux网络管理](http://www.imooc.com/video/5211) - iso/osi 7 层网络模型 应用层(APDU) -> 用户接口 表示层(PPDU) -> 数据的表现形式, 比如 编码, 图片/视频 等格式的解码; 特定功能, 如 压缩/加密 会话层(SPDU) 传输层(TPDU) -> tcp(可靠) / udp(快速, 但是可能丢失); 端口 网络层(报文) -> ip 来标识; 选路 数据链路层(帧) -> MAC 地址 来标识 物理层(bit) -> 设备 - tcp/ip 4层模型 应用层: 按照使用的协议封装数据 传输层: tcp(传输控制协议) / udp(用户数据报协议) 网络层: ip(网际协议) / IGMP(互联网管理协议) / ICMP(互联网控制报文协议) -> ping 物理层: ARP(地址解析协议), 用于 局域网内 ip <-> mac 地址 的解析 tcp/ip 3次握手(2 军问题): 必须使用非可靠的通信通道, 但是又要保证通信可靠 - ip ip v4 A: 1-126 10 B: 128-191 172.16-172.31 C: 192-223 192.168-192.168 - port 端口 端口数量: 2^16, 65535 (由 tcp/udp 包头 决定的) 自己建立的服务: 最好设置到 10000 以上 常用端口: ftp(文件传输) -> 20/21 ssh(安全shell) -> 22 telnet(远程登录) -> 23, 明文传递 dns(域名系统) -> 53 http -> 80 smtp -> 25 pop3 -> 110 - dns ip <-> 名字 hosts: 静态 ip 与 域名 对应; 数量太大时无法满足需求 dns: 层次性; 分布式 域名结构: 根域(.) -> 顶级域(组织域 / 国家和地区) -> 二级域 -> ... -> 主机(www / news); 防钓鱼 dns查询过程: dns client -> 本地 dns server(是否有缓存 / 递归查询) -> root dns server(迭代查询) -> 一级一级询问 正向查询: ip -> 地址(反向查询) - 网关 gateway 内网不同网段进行通信 内网ip <-> 外网ip - linux 网络配置 ifconfig: 临时配置 ip 地址 setup(rh): 永久配置 ip 地址, 配置完后执行 `service network restart` 虚拟机网络配置: 1. 桥接: 使用主机物理网卡 2. NAT: 使用虚拟机的虚拟网卡, 可以和 主机 / 主机所在局域网 通信 3. host-noly: 使用虚拟机的虚拟网卡, 只能和主机通信 - 其他 连接内网的网卡是不能设置网关的, 直接从接入的网络自动获取网关 对称加密: 单密钥加密, 一个密钥同时用作信息 加密/解密 非对称加密: 通信双方都生成自己的 公钥/私钥, 需要给对方发送文件时, 同时使用 自己/对方 的 公钥 进行加密, 双方都可以通过自己的私钥解密数据 非对称加密 -> ssh(xshell) -> scp -> rsync(增量传输) ``` /etc/sysconfig/network-scripts/ifcfg-eth0 # 网卡配置文件, 需要重启网络服务; 解决复制导致 UUID 冲突的问题 /etc/sysconfig/network # 主机配置文件 /etc/resolv.conf # dns 配置 hostname # 查看 / 临时设置 当前主机名 service network restart # 重启网络服务 # linux 网络相关命令 ifconfig # 内网ip + 掩码 ifdown eth0 # 禁用网卡 eth0, ipup 对应 route -n # 查看网关, 和 netstat -rn 效果一样 nslookup baidu.com # 查看 dns; 查询 name->ip, 这个 ping 也可以 ping baidu.com telnet 127.0.0.1 80 # 可以用来测试 tcp traceroute baidu.com # 路由追踪, 查看网络每一步节点 wget [url] # 下载 netstat -tulnpa # tcp udp listen not(使用 ip/端口 代替 域名/服务名) pid all tcpdump -i ech0 -nnX port 21 # 抓包命令 ```