当前位置:   article > 正文

Linux 网络命令

linux网络命令

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

  1. [root@localhost ~]#ifconfig -a    #表示显示所有网卡包括没有启动的网卡
  2. [root@localhost ~]#ifconfig ens33 down    #关闭网卡
  3. [root@localhost ~]#ifconfig ens33 up        #开启网卡
  4. [root@localhost ~]#ifconfig ens36:0 192.168.10.200    #设置临时虚拟网卡
  5. [root@localhost ~]#ifconfig -s            #网络通讯情况
e1ba7dab6715ebfd4319552e9b49a847.png 9ac4f8fca72bea4ed06b9bc32e8067a3.png

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

59dff08b60f86e54e18d0b0052f891c8.png

补充2:ip address修改IP地址

  1. [root@feizirui ~]#ip address add 192.168.10.100/24 dev ens33
  2. [root@feizirui ~]#ip address del 192.168.10.10/24 dev ens33
f5184c9a5d8ffcca692e4833522513f3.png a0601c28215b3acbcc548210a9081d80.png

2. hostname查看或设置主机名

查看主机名:

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

通过hostnamectl来修改主机名

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

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

[root@localhost ~]#route
a3f40c0d26131cbaefe267082aaa109b.png
[root@localhost ~]#route -n
dd6ed5826d2fb97989151f6be51c5d5a.png

4. netstat查看网络连接状态

  1. netstat 选项
  2. -a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
  3. -n:以数字的形式显示相关的主机地址、端口等信息 
  4. -r:显示路由表信息
  5. -l:显示处于监听(Listening)状态的网络连接及端口信息 
  6. -t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息 
  7. -u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
  8. -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软件包的一部分,默认已经安装。

  1. ss [选项] 
  2. -t:tcp协议相关
  3. -u:udp协议相关
  4. -w:裸套接字相关
  5. -x:unix sock相关
  6. -l:listen状态的连接
  7. -a:所有
  8. -n:数字格式
  9. -p:相关的程序及PID
  10. -e:扩展的信息
  11. -m:内存用量
  12. -o:计时器信息
  13. -r:把IP解释为域名,把端口号解释为协议名称
5e188a7d3136f1014988e5c0560ff5db.png 41b5f2c33653cab25e20a71d583a4ddc.png

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

ping [选项] 目标主机
bf5ab986c59ec15aa314e0eb449e4387.png

7. traceroute路由追踪

traceroute IP地址
1b5a007f94d14db522dea958b959cb40.png

8. nslookup域名解析

nslookup 域名
892d908dc3f5cc2f804fb2574c9b927e.png

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

5d6f615c2b1f1e6cdee5a1a0d1356dc5.png

9. 永久配置网络相关配置文件

  • (1)配置网卡

  1. [root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 
  2. BOOTPROTO=static    ##获取地址静态方式
  3. ONBOOT=yes        ##开机自启
  4. IPADDR=192.168.10.10    ##IP地址
  5. NETMASK=255.255.255.0    ##子网掩码
  6. GATEWAY=192.168.10.2    ##网关
  7. DNS1=8.8.8.8        ##DNS1:谷歌的
  8. DNS2=114.114.114.114    ##DNS2:三大运营商
  9. [root@localhost ~]#systemctl restart network    ##重启网卡
  10. [root@localhost ~]#ping www.baidu.com -c4
3e670e9ecd5ed8c6030de523e026d96c.png f60aa042c6e4e3d1e95182c824bd3042.png
  • (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   ##开启网卡
5076cf025393426103191faa7c5c7f97.png ddd02af6f98d1cf7fdb30cc8fb9d792c.png
  • (3)域名解析配置文件:/etc/hosts

67ae38fc4a4ef5d8f9d96ae5ad08e037.png 9e97419fc18b7d3c5d495bf8faf50b55.png

hosts文件和DNS服务器的比较

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

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

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

10. scp远程同步

[root@localhost ~]#scp /etc/passwd root@192.168.10.20:/opt/passwd
14158d9c96c09c4428b58c5fbb59926e.png fd41431b4d5da5e5136feecd2d605283.png

11.多网卡绑定

将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。

  1. 实验环境:CentOS7
  2. 实验目的:bond将多块网卡根据排列组合的功能的不同当成一块网卡使用
  3. 1、添加一块网卡
  4. 2、修改配置文件
  5. cd /etc/sysconfig/network-scripts/
  6. 配置1
  7. vim ifcfg-bond0
  8. NAME=bond0
  9. TYPE=bond
  10. DEVICE=bond0
  11. BOOTPROTO=none
  12. IPADDR=192.168.10.100
  13. NETMASK=255.255.255.0
  14. GATEWAY=192.168.10.2
  15. BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
  16. 配置2
  17. vim ifcfg-ens33
  18. BOOTPROTO=static
  19. NAME=ens33
  20. DEVICE=ens33
  21. MASTER=bond0
  22. SLAVE=yes
  23. ONBOOT=yes
  24. 配置3
  25. cp ifcfg-ens33 ifcfg-ens36
  26. vim ifcfg-ens36
  27. BOOTPROTO=none
  28. NAME=ens36
  29. DEVICE=ens36
  30. MASTER=bond0
  31. SLAVE=yes
  32. ONBOOT=yes
  33. 3、重启服务:systemctl restart network
  34. 4、测试:先ping查看bond0的正常情况:ping 192.168.10.100 -c4
  35.      然后去虚拟机断掉一块网卡不影响bond0
  36.       最后重新开启一个端口验证:ssh 192.168.10.100

操作:

1、添加网卡

84894ba5197f914d66ad77e9a6756ad6.png

2、修改配置文件

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

7e9817bf54357d97d8fdac646bd7349d.png

配置2:修改ens33网卡

ab881c2cb7275a55cbbfdfb00170e2b0.png

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

10e31ade47e3e311cfe8b8fcb87314e9.png

3、重启网卡

792e0bb52bd041d22defd23ac96b7649.png

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

635dfab5f0b2d5a742e1f206b5b5efb7.png

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

a08fadaade634f1dee1414d608d037cb.png 1e7426df037e664bab723f5f564d5180.png

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

bcf3dbe7059b7896b9ee785e14e92c16.png 2991a460d540fe304d466c8004d047c7.png c2ea04e87a9650ef62a6ca06b3e178f7.png b9a7772466547445a3a38edb93f8dad4.png

12. tcpdump

网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句帮助去除无用的信息。

参数说明:

  1. -a:尝试将网络和广播地址转换成名称。
  2. -c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作。
  3. -d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
  4. -dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
  5. -ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
  6. -e:在每列倾倒资料上显示连接层级的文件头。
  7. -f:用数字显示网际网络地址。
  8. -F<表达文件>:指定内含表达方式的文件。
  9. -i<网络接口>:使用指定的网络截面送出数据包。
  10. -l:使用标准输出列的缓冲区。
  11. -n:不把主机的网络地址转换成名字。
  12. -N:不列出域名。
  13. -O:不将数据包编码最佳化。
  14. -p:不让网络界面进入混杂模式。
  15. -q:快速输出,仅列出少数的传输协议信息。
  16. -r<数据包文件>:从指定的文件读取数据包数据。
  17. -s<数据包大小>:设置每个数据包的大小。
  18. -S:用绝对而非相对数值列出TCP关联数。
  19. -t:在每列倾倒资料上不显示时间戳记。
  20. -tt:在每列倾倒资料上显示未经格式化的时间戳记。
  21. -T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型。
  22. -v:详细显示指令执行过程。
  23. -vv:更详细显示指令执行过程。
  24. -x:用十六进制字码列出数据包资料。
  25. -w<数据包文件>:把数据包数据写入指定的文件。

案例:

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

记得点「」和「在看」↓

爱你们

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/406602
推荐阅读
相关标签
  

闽ICP备14008679号