一、网络配置命令
1.1ifconfig查看当前活着的网络接口信息
[root@localhost ~]#ifconfig -a #表示显示所有网卡包括没有启动的网卡 [root@localhost ~]#ifconfig ens33 down #关闭网卡 [root@localhost ~]#ifconfig ens33 up #开启网卡 [root@localhost ~]#ifconfig ens36:0 192.168.10.200 #设置临时虚拟网卡 [root@localhost ~]#ifconfig -s #网络通讯情况
补充1:nmcli(绿色代表正在用的)
补充2:ip address修改IP地址
[root@feizirui ~]#ip address add 192.168.10.100/24 dev ens33 [root@feizirui ~]#ip address del 192.168.10.10/24 dev ens33
1.2hostname查看或设置主机名
查看主机名:
[root@localhost ~]#hostname
localhost.localdomain
通过hostnamectl来修改主机名:
[root@localhost ~]#hostnamectl set-hostname feizirui
[root@localhost ~]#bash
[root@feizirui ~]#
1.3route查看或设置主机中的路由表
[root@localhost ~]#route
[root@localhost ~]#route -n
1.4netstat查看网络连接状态
netstat 选项 -a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口) -n:以数字的形式显示相关的主机地址、端口等信息 -r:显示路由表信息 -l:显示处于监听(Listening)状态的网络连接及端口信息 -t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息 -u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息 -p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
1.5ss查看网络连续情况
- ss命令主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。但ss命令的优势在于它能够显示更多更详细的有关TCP和UDP连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/,执行速度都会很慢。ss命令快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss命令的快捷高效。
- ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。
ss [选项] -t:tcp协议相关 -u:udp协议相关 -w:裸套接字相关 -x:unix sock相关 -l:listen状态的连接 -a:所有 -n:数字格式 -p:相关的程序及PID -e:扩展的信息 -m:内存用量 -o:计时器信息 -r:把IP解释为域名,把端口号解释为协议名称
1.6ping测试网络连通性(使用ICMP协议)
ping [选项] 目标主机
1.7traceroute路由追踪
traceroute IP地址
1.8nslookup域名解析
nslookup 域名
补充:dig可以显示出更多详细信息
1.9永久配置网络相关配置文件
(1)配置网卡
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO=static ##获取地址静态方式 ONBOOT=yes ##开机自启 IPADDR=192.168.10.10 ##IP地址 NETMASK=255.255.255.0 ##子网掩码 GATEWAY=192.168.10.2 ##网关 DNS1=8.8.8.8 ##DNS1:谷歌的 DNS2=114.114.114.114 ##DNS2:三大运营商 [root@localhost ~]#systemctl restart network ##重启网卡 [root@localhost ~]#ping www.baidu.com -c4
(2)红帽修改网卡命令:
1 [root@localhost ~]#nmcli con mod ens33 ipv4.addresses 192.168.10.100/24 ipv4.gateway 192.168.10.2 ipv4.dns 8.8.8.8 ipv4.method manual connection.autoconnect yes 2 [root@localhost ~]#nmcli con reload ##重新加载 3 [root@localhost ~]#nmcli con up ens33 ##开启网卡
(3)域名解析配置文件:/etc/hosts
hosts文件和DNS服务器的比较
- 默认情况下,系统首先从hosts文件查找解析记录
- hosts文件只对当前的主机有效
- hosts文件可减少DNS查询过程,从而加快访问速度
1.10scp远程同步
[root@localhost ~]#scp /etc/passwd root@192.168.10.20:/opt/passwd
1.11多网卡绑定
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。
实验环境:CentOS7 实验目的:bond将多块网卡根据排列组合的功能的不同当成一块网卡使用 1、添加一块网卡 2、修改配置文件 cd /etc/sysconfig/network-scripts/ 配置1: vim ifcfg-bond0 NAME=bond0 TYPE=bond DEVICE=bond0 BOOTPROTO=none IPADDR=192.168.10.100 NETMASK=255.255.255.0 GATEWAY=192.168.10.2 BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1" 配置2: vim ifcfg-ens33 BOOTPROTO=static NAME=ens33 DEVICE=ens33 MASTER=bond0 SLAVE=yes ONBOOT=yes 配置3: cp ifcfg-ens33 ifcfg-ens36 vim ifcfg-ens36 BOOTPROTO=none NAME=ens36 DEVICE=ens36 MASTER=bond0 SLAVE=yes ONBOOT=yes 3、重启服务:systemctl restart network 4、测试:先ping查看bond0的正常情况:ping 192.168.10.100 -c4
然后去虚拟机断掉一块网卡不影响bond0 最后重新开启一个端口验证:ssh 192.168.10.100
操作:
1、添加网卡
2、修改配置文件
配置1:创建并修改bond0虚拟网卡
配置2:修改ens33网卡
配置3:创建并修改ens36网卡
3、重启网卡
4、测试
先ping,bond0查看的正常情况:ping 192.168.10.100 -c4
然后去虚拟机断掉一块网卡不影响bond0
最后重新开启一个端口验证:ssh 192.168.10.100
1.12tcpdump
网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句帮助去除无用的信息。
参数说明: -a:尝试将网络和广播地址转换成名称。 -c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作。 -d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。 -dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。 -ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。 -e:在每列倾倒资料上显示连接层级的文件头。 -f:用数字显示网际网络地址。 -F<表达文件>:指定内含表达方式的文件。 -i<网络接口>:使用指定的网络截面送出数据包。 -l:使用标准输出列的缓冲区。 -n:不把主机的网络地址转换成名字。 -N:不列出域名。 -O:不将数据包编码最佳化。 -p:不让网络界面进入混杂模式。 -q:快速输出,仅列出少数的传输协议信息。 -r<数据包文件>:从指定的文件读取数据包数据。 -s<数据包大小>:设置每个数据包的大小。 -S:用绝对而非相对数值列出TCP关联数。 -t:在每列倾倒资料上不显示时间戳记。 -tt:在每列倾倒资料上显示未经格式化的时间戳记。 -T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型。 -v:详细显示指令执行过程。 -vv:更详细显示指令执行过程。 -x:用十六进制字码列出数据包资料。
-w<数据包文件>:把数据包数据写入指定的文件。
1 案例: 2 [root@server ~]#tcpdump -D #tcpdump查看网卡:不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。 3 [root@server ~]#tcpdump -i ens33 #指定查看ens33 网卡 4 [root@server ~]#tcpdump host 192.168.10.10 -i ens33 #监听特定主机,监听主机192.168.10.10的通信包,注意:出、入的包都会被监听。 5 [root@server ~]#tcpdump src host 主机地址 #特定来源 6 [root@server ~]#tcpdump dst host 主机地址 #特定目标地址 7 [root@server ~]#tcpdump host hostname #如果不指定src跟dst,那么来源或者目标是hostname的通信都会被监听 8 [root@server ~]#tcpdump -i ens33 -nn icmp and src host 192.168.10.20 and dst host 192.168.10.10 #面试题 9 [root@server ~]#tcpdump ip host 192.168.10.10 and 192.168.10.20 -i ens33 #只抓取特定主机之间的数据包 10 [root@server ~]#tcpdump port 80 11 [root@server ~]#tcpdump tcp port 22 and src host 192.168.10.10 -i ens33