Linux 网络命令

1. ifconfig查看当前活着的网络接口信息

[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            #网络通讯情况
Linux 网络命令_第1张图片 Linux 网络命令_第2张图片

补充1:nmcli(绿色代表正在用的)

Linux 网络命令_第3张图片

补充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
f5184c9a5d8ffcca692e4833522513f3.png Linux 网络命令_第4张图片

2. hostname查看或设置主机名

查看主机名:

[root@localhost ~]#hostname
localhost.localdomain
690798d60c750161b4d1e980ea8fb07c.png

通过hostnamectl来修改主机名:

[root@localhost ~]#hostnamectl set-hostname feizirui
[root@localhost ~]#bash
[root@feizirui ~]#
2d3ed8bf5998a7fd4ae0034f27253703.png

3. route查看或设置主机中的路由表

[root@localhost ~]#route
a3f40c0d26131cbaefe267082aaa109b.png
[root@localhost ~]#route -n
Linux 网络命令_第5张图片

4. netstat查看网络连接状态

netstat 选项
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n:以数字的形式显示相关的主机地址、端口等信息 
-r:显示路由表信息
-l:显示处于监听(Listening)状态的网络连接及端口信息 
-t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息 
-u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
5f99810c2be5e31e0e23a28c5d102873.png

5. ss查看网络连续情况

  • 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解释为域名,把端口号解释为协议名称
Linux 网络命令_第6张图片 Linux 网络命令_第7张图片

6. ping测试网络连通性(使用ICMP协议)

ping [选项] 目标主机
Linux 网络命令_第8张图片

7. traceroute路由追踪

traceroute IP地址
1b5a007f94d14db522dea958b959cb40.png

8. nslookup域名解析

nslookup 域名
Linux 网络命令_第9张图片

补充:dig可以显示出更多详细信息

Linux 网络命令_第10张图片

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
Linux 网络命令_第11张图片 Linux 网络命令_第12张图片
  • (2)红帽修改网卡命令:

[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
[root@localhost ~]#nmcli con reload    ##重新加载
[root@localhost ~]#nmcli con up ens33   ##开启网卡
5076cf025393426103191faa7c5c7f97.png Linux 网络命令_第13张图片
  • (3)域名解析配置文件:/etc/hosts

67ae38fc4a4ef5d8f9d96ae5ad08e037.png Linux 网络命令_第14张图片

hosts文件和DNS服务器的比较

  • 默认情况下,系统首先从hosts文件查找解析记录

  • hosts文件只对当前的主机有效

  • hosts文件可减少DNS查询过程,从而加快访问速度

10. scp远程同步

[root@localhost ~]#scp /etc/passwd [email protected]:/opt/passwd
Linux 网络命令_第15张图片 Linux 网络命令_第16张图片

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、添加网卡

Linux 网络命令_第17张图片

2、修改配置文件

配置1:创建并修改bond0虚拟网卡

Linux 网络命令_第18张图片

配置2:修改ens33网卡

Linux 网络命令_第19张图片

配置3:创建并修改ens36网卡

Linux 网络命令_第20张图片

3、重启网卡

792e0bb52bd041d22defd23ac96b7649.png

4、测试 先ping,bond0查看的正常情况:ping 192.168.10.100 -c4

Linux 网络命令_第21张图片

然后去虚拟机断掉一块网卡不影响bond0

Linux 网络命令_第22张图片 Linux 网络命令_第23张图片

最后重新开启一个端口验证:ssh 192.168.10.100

Linux 网络命令_第24张图片 Linux 网络命令_第25张图片 Linux 网络命令_第26张图片 Linux 网络命令_第27张图片

12. tcpdump

网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤,并提供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<数据包文件>:把数据包数据写入指定的文件。

案例:

[root@server ~]#tcpdump -D        #tcpdump查看网卡:不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。
 3 [root@server ~]#tcpdump -i ens33    #指定查看ens33 网卡
[root@server ~]#tcpdump host 192.168.10.10 -i ens33    #监听特定主机,监听主机192.168.10.10的通信包,注意:出、入的包都会被监听。
[root@server ~]#tcpdump src host 主机地址    #特定来源
[root@server ~]#tcpdump dst host 主机地址    #特定目标地址
[root@server ~]#tcpdump host hostname    #如果不指定src跟dst,那么来源或者目标是hostname的通信都会被监听
[root@server ~]#tcpdump -i ens33 -nn icmp and src host 192.168.10.20 and dst host 192.168.10.10    #面试题
 [root@server ~]#tcpdump ip host 192.168.10.10 and 192.168.10.20 -i ens33    #只抓取特定主机之间的数据包
[root@server ~]#tcpdump port 80
[root@server ~]#tcpdump tcp port 22 and src host 192.168.10.10 -i ens33
source: https://www.cnblogs.com/feizirui/p/16800006.html

记得点「」和「在看」↓

爱你们

你可能感兴趣的:(网络,linux,java,大数据,centos)