• Linux网络命令


     


    一、网络配置命令

    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
    复制代码
  • 相关阅读:
    springboot基础(79):通过pdf模板生成文件
    动态内存管理
    基于多通信半径与跳距加权优化的DV-HOP改进算法附matlab代码
    解决:使用MySQL Command Line Client时光标不显示的问题
    pytorch 33 使用mmdeploy将mmdetection模型转换为onnx,并实现c++部署(支持动态nms)
    mysql的redo和undo-log
    Java基础:反射
    OpenCV+QT实现的数字图像处理算法合集
    css 俩组件放同一行
    mysql将id重新修改为递增
  • 原文地址:https://www.cnblogs.com/feizirui/p/16800006.html