这篇主要讲解在 Linux 下网络的管理.
那么接下来就开始吧, 如果文章有错误的地方请大家多多包涵, 不吝在评论区指正哦~
声明: 基于 Centos6.9
一, Linux 下的网络
Linux 支持各种协议类型的网络
TCP/IP,NetBIOS/NetBEUI,IPX/SPX,AppleTake 等
在网络底层也支持 Ethernet,Token Ring,ATM,PPP(PPPoE),FDDI,Frame Relay 等网络协议.
这些网络协议是 Linux 内核提供的功能, 具体的支持情况由内核编译参数决定.
配置网络参数有两种方式:
临时性网络配置
通过命令修改当前内核中的网络相关参数实现, 配置后立即生效, 重新开机后失效
永久性网络配置
通过直接修改网络相关的配置文件实现, 需要重启服务, 重新开机后保留所有配置
在 Linux 下配置网络, 总会遇到桥接和 NAT 模式的概念的, 这里我简要摘抄一下:
桥接模式的虚拟机, 就像一个在路由器 "民政局" 那里 "上过户口" 的成年人, 有自己单独的居住地址, 虽然和主机住在同一个大院里, 但好歹是有户口的人, 可以大摇大摆地直接和外面通信.
NAT 模式的虚拟机, 纯粹就是一个没上过户口的黑户, 路由器 "民政局" 根本不知道有这么个人, 自然也不会主动和它通信. 即使虚拟机偶尔要向外面发送点的信件, 都得交给主机以主机的名义转发出去, 主机还专门请了一位叫做 NAT 的老大爷来专门负责这些虚拟机的发信, 收信事宜.
仅主机模式的虚拟机, 纯粹是一个彻彻底底的黑奴, 不仅没有户口, 路由器 "民政局" 不知道这么号人, 还被主机关在小黑屋里, 连信件也不准往外发.
参考资料:
zhuanlan.zhihu.com/p/32948325--VMware 网络连接模式 - 桥接, NAT 以及仅主机模式的详细介绍和区别(软件指南针)
1.1 常用的管理网络命令
网络接口相关:
查看网络接口配置: ifconfig [ethX]
网络接口的启用与停用: 使用 ifup ethX 命令来启用指定的接口, 使用 ifdown ethX 命令来禁用指定的接口
临时配置相关:
ifconfig 命令可以临时地设置网络接口的 IP 参数
route 命令可以临时地设置内核路由表
使用 hostname 命令可以临时地修改主机名
使用 sysctl 命令可以临时地开启内核的包转发
使用命令来做网络的临时配置, 要做到永久配置就需要直接修改文件的方式了!
网络检测的常用工具:
ifconfig 检测网络接口配置
route 检测路由配置
ping 检测网络连通性
netstat 查看网络状态
lsof 查看指定 IP 和 / 或 端口的进程的当前运行情况
host/dig/nslookup 检测 DNS 解析
traceroute 检测到目的主机所经过的路由器
tcpdump 显示本机网络流量的状态
1.1 配置 Linux 网络练习题
检查 Windows 的 VirtualBox 虚拟网卡是否禁用, 如果禁用, 请启动; 以 root 账户登录, 用 ifconfig 检查当前网络配置; 然后分别用 ifup 命令启动 eth0 网卡和 eth1 网卡, 观察结果, 并记录网卡绑定的 ip 地址, 在第五部分记录. 关闭检查防火墙的状态, 如果防火墙已启动, 请关闭 Linux 系统的防火墙,
启动 putty, 在 Host Name 输入框中输入 eth1 网卡当前的 ip 地址, connection type 选择 SSH,Port 为 22; 按 "open" 按钮, 提示 Putty Security Alert 对话框, 选择确定; 分别以 root 账户, jkXX 账户登录
在 root 账户登录的 putty 终端上查看 (ps au) 当前用户运行的进程, 找到 jk08 账户运行的 shell 程序的 pid, 并且在第五部分记录. 在 root 账户登录的 putty 终端上, 用 kill 命令杀死刚才记录的 shell 程序;
杀死一个进程需要什么条件? 如果是 peter 账户, 是否可以杀死 jason 账户运行的进程?
答: 杀死一个进程, 应获得这个进程控制的权利, 比如获得进程所属账户的权限; 或者获得超级账户的权限. 如果是 peter 账户, 没有获得 jason 账户的权限, 因此, 杀死 jason 账户下运行的进程是被禁止的.
用路由命令查看当前网络路由状况, 并用 ping 命令测试外部网站地址是否可以连通; 并截图
用 ifconfig 查看 eth0 的当前 ip 地址; 修改 ip 地址, 地址的最后一段数字比原来的大 1, 查看是否成功; 用 ifconfig 修改 eth0 的地址, 要求指定掩码和广播地址, 其中掩码为 B 类地址掩码; 用路由命令观察路由表的变化;
在 eth1 网卡上添加一个主机路由, 要求其主机 ip 地址为 192.168.3.3; 在 eth0 网卡上添加一个网络路由, 网络地址为 10.20.0.0, 掩码是 255.255.0.0; 观察路由表中的默认路由, 根据步骤 (2) 观察到的默认路由, 恢复默认网关路由, 并测试网络与外部网站的连通性;
给网卡 eth1 设置别名 eth1:0,ip 地址比 eth1 的 ip 地址最后一段数字大 1; 从 Windows 端, 用 ping 命令测试 eth1 和 eth1:0 的连通性; 停止 eth1:0 工作, 观察结果, 并截图
修该主机名称为 serverXX(XX 为学生学号末两位), 退出 shell 重新登录; 观察内核参数 net.ipv4.ip_forward 的值, 将其修改为 1;
为什么默认路由记录不见了, 可能的原因是?
答: 修改了默认路由经过的网卡 eth0 的 ip 地址, 对原有路由影响较大, 因此系统自动将默认路由删除.
一个网卡有多个 IP 地址有什么好处?
答: 好处是有利于在一个网卡上绑定多个相同的网络服务, 比如可以绑定多个网站.
编辑 eth0 和 eth1 的网络接口文件, 要求修改为启动时自动启动设备; 并且要求 eth1 的地址为 192.168.56.121, 网络前缀为 26; 系统重启, 检验网卡是否自动启动, 及其 IP 地址;
编辑本地域名解析配置文件, 要求添加 10.0.2.2 地址, 对应的域名为 gateXX(其中 XX 为学生学号的末两位), 存盘退出; 执行 ping 命令, 参数为 gateXX, 检查通过域名是否可以连通对应的 ip 地址;
编辑文件, 使得系统支持 ip 包转发; 用 sysctl -p 命令让修改结果生效;
用 ping 命令测试网站 www.qq.com, 要求只发送 10 次 ICMP 测试包; 用 netstat 命令观察网络接口信息; 用 netstat 命令观察路由表信息; 用 netstat 命令观察正在监听的 tcp 端口; 用 netstat 命令观察正在监听的 udp 端口;
sysctl -p 看到的是配置文件中的数据, 还是内存中的数据?
答: 看到的既是配置文件中的数据, 也是内存中的数据. 因为 - p 参数的意思是把配置文件中的数据更新到内存中.
二, 安装软件
一般我们的 CentOS 下安装软件可以直接使用 yum 命令来安装, 非常方便. 在 yum 之前还有一个 RPM, 来看看它的区别:
rpm 是由红帽公司开发的软件包管理方式, 使用 rpm 我们可以方便的进行软件的安装, 查询, 卸载, 升级等工作. 但是 rpm 软件包之间的依赖性问题往往会很繁琐, 尤其是软件由多个 rpm 包组成时.
Yum(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器. 基於 RPM 包管理, 能够从指定的服务器自动下载 RPM 包并且安装, 可以自动处理依赖性关系, 并且一次安装所有依赖的软体包, 无须繁琐地一次次下载, 安装.
2.1yum 使用
yum [全局参数] 命令 [命令参数]
常用的全局参数:
-y: 对 yum 命令的提问回答 "是(yes)"
-C: 只利用本地缓存, 不从远程仓库下载文件
--enablerepo=REPO: 临时启用指定的名为 REPO 的仓库
--disablerepo=REPO: 临时禁用指定的名为 REPO 的仓库
--installlroot=PATH: 指定安装软件时的根目录, 主要用于为 chroot 环境安装软件
2.2 几种常用的网络工具
2.3 练习 yum 安装软件与使用
用 yum 查找软件包 tree,lsof,traceroute, 观察结果; 查找 tree 软件包的基本信息; 安装 tree,lsof,traceroute 三个软件包
运行命令 tree, 查看 / etc 目录下的子目录情况; 运行 lsof 查看使用网络 tcp 端口 22 的是哪个应用; 用 traceroute 命令观察某个网站经过了多少个路由
用浏览器打开网站 http://www.rpmfind.net, 分别查找软件包 system-config-network-tui, tree, ntsysv, 找到软件包, 并复制下载链接; 在 Linux 中用 wget 下载链接, 成功下载后, 用长格式列出该文件
用 rpm 工具查看所有已经安装的软件包, 并将结果输出到文件 installXX.txt, 其中(XX 为学生学号末两位); 用 rpm 查看 bash 的软件包信息; 用 rpm 查看安装包文件的数字签名信息;
使用 rpm 分别安装第 2 步下载的三个软件包; 它们都能顺利安装吗? 为什么会出错; 观察结果,
哪个软件包不能顺利安装, 为什么? 应该怎样安装该软件?
答: system-config-network-tui-1.6.0.el6.3-4.el6.noarch.rpm 软件包不能顺利安装, 因为这个软件包依赖其他软件包, 应把依赖的软件包先安装, 才能安装这个软件包. 可以 yum 工具安装, 它可以自动安装依赖的软件包.
四, 总结
本文主要是总结了 Linux 下网络和安装软件的知识~~~ 这两个知识点在 Linux 下也是很重要的, 是学习 Linux 的基础~
NDK 基础开发流程 - Linux 流程
小编顺便准备了关于 NDK-Linux 的深入讲解的视频, 如需要的话可以加群免费领取.
来源: http://www.jianshu.com/p/a4544ef31a05