查看及测试网络
启用接口:ifup ethX
禁用接口:ifdown ethX
网络配置以text文件存储:/etc/sysconfig/network-scripts/ifcfg-ethX
完整的选项在 /usr/share/doc/initscripts-*/sysconfig.txt下
如果在/etc/sysconfig/network-scripts/ifcfg-ethX和/etc/sysconfig/network都设置了网关并且发生冲突,
则/etc/sysconfig/network-scripts/ifcfg-ethX会覆盖/etc/sysconfig/network下的网关。
Loopback: lo:不能删除或down掉,就会导致自己访问自己的服务都访问不到
ifconfig
ifconfig 查看活动接口信息 ifconfig -a 查看所有接口信息(包括非活动) ifconfig eth0 查看指定eth0接口信息
hostname
hostname 查看主机名
route
route -n 查看网关(UG)
arp
arp –n 查看arp缓存表
-a 列出所有条目
netstat
netstat -nr = route -n 查看网关 netstat -ln | grep :端口 查看该端口是否开启 netstat -tulnp | grep 服务名 查看该服务开启那些端口 netstat -anptu | grep ESTABL 查看已与本机建立的TCP连接
ping
ping -c 包个数 测试网络连通性
traceroute
traceroute = tracert 路由跟踪
host
host 域名 DNS解析
nslookup
nslookup 域名
>server 查看当前主机的dns地址
dhclient
dhclient //更新本机获取DHCP服务器解析
mtr
结合ping和traceroute的工具
配置网络地址
使用命令调整网络参数(临时)
设置ip
ifconfig eth0 192.168.1.1 设置ip ifdown eth0 禁用eth0 ifup eth0 启用eth0 ifconfig eth0:0 ip 设置虚拟接口ip
添加删除默认网关路由(网关必须和当前主机在同一网段)
route add default gw 网关(下一跳) //添加 route del default gw 网关(下一跳) //删除
添加删除指定(静态)路由
route add -net 目标网段地址/子网掩码 gw 网关(下一跳) //添加 route del -net 目标网段地址/子网掩码 //删除
设置主机名:
hostname 主机名
定义本地hostname
邮件服务与hostname相关
邮件服务首先读取/etc/hosts
静态绑定和删除arp
arp -s [ip地址] [MAC地址] //静态绑定
arp -d ip 删除指定arp记录
通过配置文件修改网络参数(永久)
设置ip
#vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 设备名 ONBOOT=yes 启动是否加载 BOOTPROTO=static/none dhcp则为自动获取 IPADDR=192.168.4.1 ip地址 NETMASK=255.255.255.0 子网掩码 MACADDR=xx:xx:xx:xx:xx:xx 修改mac地址 PEERDNS=no 禁止dhcp获取时修改resolv.conf文件
网络接口配置文件:
/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME DEVICE=: 关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致; BOOTPROTO={static|none|dhcp|bootp}: 引导协议;要使用静态地址,使用static或none;dhcp表示使用DHCP服务器获取地址; IPADDR=: IP地址 NETMASK=:子网掩码 GATEWAY=:设定默认网关; ONBOOT=:开机时是否自动激活此网络接口; HWADDR=: 硬件地址,要与硬件中的地址保持一致;可省; USERCTL={yes|no}: 是否允许普通用户控制此接口; PEERDNS={yes|no}: 是否在BOOTPROTO为dhcp时接受由DHCP服务器指定的DNS地址; 不会立即生效,但重启网络服务或主机都会生效;
网卡的定义方式:
RHEL5: /etc/modprobe.conf
alias //由alias定义
RHEL6: /etc/udev/rules.d/70-persistent-net.rules
由udev定义
修改主机名与网关
#vim /etc/sysconfig/network HOSTNAME=XXX //修改主机名 修改完需要vim /etc/hosts做个映射文件 GATEWAY=192.168.4.254 网关
设置域名ip对应关系
#vim /etc/hosts ip地址与主机名对应关系
格式:
ip FQDN 主机头
# service network restart //更新加载新配置的网络类配置,和更新主机名
1.主机名和IP地址的映射关系
2.首先查询hosts文件,再查询DNS
/etc/resolv.conf
/etc/nsswitch.conf
Hosts文件的查询速度远远快于DNS
指定DNS地址
#vim /etc/resolv.conf 设置dns,最多3条 search xxx.com //自动搜索所在的域,依照主机名的域而定 nameserver 202.106.0.20
DNS客户端配置文件/etc/resolv.conf
nameserver最多只能由3条,并且只有在第一个nameserver down掉,第二个nameserver才生效。
开启Linux路由功能
sysctl命令及改变net.ipv4.ip_forward = 1方法
命令格式: sysctl [-n] [-e] -w variable=value sysctl [-n] [-e] -p <filename> (default /etc/sysctl.conf) sysctl [-n] [-e] -a
常用参数的意义:
-w 临时改变某个指定参数的值,如 sysctl -w net.ipv4.ip_forward=1 -a 显示所有的系统参数 -p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
如果仅仅是想临时改变某个系统参数的值,可以用两种方法来实现,例如想启用IP路由转发功能:
1) #echo 1 > /proc/sys/net/ipv4/ip_forward 2) #sysctl -w net.ipv4.ip_forward=1
以上两种方法都可能立即开启路由功能,但如果系统重启,或执行了
# service network restart
所设置的值即会丢失,如果想永久保留配置,可以修改/etc/sysctl.conf文件
将 net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1
即:
[root@localhost ~]# vim /etc/sysctl.conf
...
net.ipv4.ip_forward = 1 //开启路由功能
# sysctl –p //激活配置与查看路由功能是否开启
指定路由
# cat /etc/sysconfig/network-scripts/route-eth1 10.0.0.0/8 via 10.20.101.1 dev eth1 192.168.0.0/16 via 10.20.101.1 dev eth1 格式: 需要路由的网段 via 下一跳网关IP dev 与下一跳网关相连的网卡
路由:
/etc/sysconfig/network-scripts/route-ethX 添加格式一: DEST via NEXTHOP 添加格式二: ADDRESS0= //目标地址 NETMASK0= GATEWAY0=
内核与模块管理
内核职责:
1.系统初始化: 检测硬件资源和启动系统 2.进程调度: 决定进程应该运行的时间 3内存管理: 给运行的进程分配内存 4.安全: 强制权限、SELinux上下文和防火墙规则 5.提供buffer和cache加速硬件访问
参考:
kernel-doc
/etc/modprobe.conf:该文件用来加载所有的模块参数
读取顺序:首先计算机尝试加载该模块,同时读取/etc/modprobe.conf文件是否有参数可以被加载,从而识别网卡叫eth0;先加载模块,再读取配置文件
驱动的选择
当加载模块时,才会尝试读取/etc/modprobe.conf,看其是否与它相应模块的名字,如果有才启动,否则不加载
1.修改etc/modprobe.conf
eth0:为网卡模块的别名
via-rhine:模块名字
当计算机加载模块,它就会尝试做:
1.加载网卡的模块 2.读取/etc/modprobe.conf 3.读取模块的配置信息
速率和双工模式
1.默认模块都是自动协商的 2.不匹配导致网络故障
内核部件:
1.多种内核可能同一时间被安装:不同的变种有不同的特性,允许简单的版本升级
2.内核版本是文件名的一部分
1.内核版本
用户空间访问、监控内核的方式:
/proc, /sys
伪文件系统
/proc/sys: 此目录中的文件很多是可读写的
/sys/: 某些文件可写
设定内核参数值的方法:
echo VALUE > /proc/sys/TO/SOMEFILE echo 1 >/proc/sys/vm/drop_caches sysctl -w kernel.hostname= //把路径中的"/"改成"."即可,有几个"/"就改几个"."
能立即生效,但无法永久有效;
永久有效:编辑/etc/sysctl.conf
修改文件完成之后,执行如下命令可立即生效:
sysctl -p
sysctl -a: 显示所有内核参数及其值
lsmod
列出已加载的所有模块
modinfo
查看指定模块的信息
modprobe
智能检测及加载模块
-r 卸载模块
#########补充
如何查看IP地址
ifconfig(ip a)
可以通过这两个命令来查看IP地址
ip地址/24:代表子网掩码255.255.255.0
lo:回环网卡:用于检测设备自测
eth0:你的第一块网卡
eth1:你的第二块网卡
注意
假如你发现你的虚拟机没有IP地址的话,那么也许你的网卡设备处于关闭状态
通过命令:ifup + 网卡名(ethx) 可以开启设备
通过命令:ifconfig +网卡名(ethx)+ up 也可以开启设备
讨论
既然这两个命令都能开启成功,那么它们到底有没有区别呢?请跟随我来做个实验。
第一步:我们删掉eth1网卡的配置文件
/etc/sysconfig/network-scripts/:这个路径是网卡配置文件的路径,作为运维人员我们是必须熟记得
第二步,我们关闭eth1这个网卡设备
第三步,我们尝试开启这个设备
继续讨论
为什么我们的试验结果是这样的呢?当我删除了eth1这个网卡的配置文件,ifup这个命令就失灵了?
这是因为,ifup/ifdown这个命令控制的实际上并不是物理网卡的开启和关闭,而实际上他控制的仅仅是网卡的配置文件而已,它是通过网卡配置文件间接的操作网卡设备。
而ifconfig xxxx up/down:则是控制物理网卡设备的开启和关闭,因此并不受配置文件的干扰。
参考:https://www.cnblogs.com/chensiqiqi/p/6224474.html