1

Linux网络命令 - 崧蓝

 1 year ago
source link: https://www.cnblogs.com/feizirui/p/16800006.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client



一、网络配置命令

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            #网络通讯情况
2965423-20221017163134427-870074936.png
2965423-20221017164257919-1557028966.png

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

2965423-20221017163238623-58427792.png

补充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

2965423-20221017171432331-894126329.png

2965423-20221017171542409-1776585109.png

1.2hostname查看或设置主机名

查看主机名:
[root@localhost ~]#hostname
localhost.localdomain

2965423-20221017170911185-1118426842.png

通过hostnamectl来修改主机名:
[root@localhost ~]#hostnamectl set-hostname feizirui
[root@localhost ~]#bash
[root@feizirui ~]#

2965423-20221017171029184-449240644.png

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

[root@localhost ~]#route

2965423-20221017172210930-1971445931.png

[root@localhost ~]#route -n

2965423-20221017172256019-512267045.png

1.4netstat查看网络连接状态

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

2965423-20221017190727591-652870371.png

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解释为域名,把端口号解释为协议名称
2965423-20221017193159848-1791979414.png
2965423-20221017193250423-328395323.png

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

ping [选项] 目标主机
2965423-20221017193746079-739201595.png

1.7traceroute路由追踪

traceroute IP地址

2965423-20221017193946201-835211947.png

1.8nslookup域名解析

nslookup 域名
2965423-20221017194106286-1247119898.png

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

2965423-20221017194332980-989897531.png

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
2965423-20221017161152355-1910124838.png
2965423-20221017161313281-105827158.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   ##开启网卡

2965423-20221017162408588-378087490.png

2965423-20221017162543878-1912050059.png

(3)域名解析配置文件:/etc/hosts

2965423-20221017194825482-42780640.png

2965423-20221017195003855-93973251.png

hosts文件和DNS服务器的比较

  • 默认情况下,系统首先从hosts文件查找解析记录
  • hosts文件只对当前的主机有效
  • hosts文件可减少DNS查询过程,从而加快访问速度

1.10scp远程同步

[root@localhost ~]#scp /etc/passwd [email protected]:/opt/passwd
2965423-20221017200502985-220452913.png
2965423-20221017200706180-296277639.png

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

2965423-20221021183656166-1234881902.png

2、修改配置文件

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

2965423-20221021184215222-116664362.png

配置2:修改ens33网卡

2965423-20221021185015288-1023559735.png

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

2965423-20221021185348997-29580071.png

3、重启网卡

2965423-20221021185600326-1247745367.png

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

2965423-20221021190100937-864810521.png

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

2965423-20221021190332313-1653401583.png
2965423-20221021190434814-381982317.png

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

2965423-20221021190655543-1068442362.png
2965423-20221021190754376-126998269.png
2965423-20221021191052475-484638394.png
2965423-20221021191200568-1641218283.png

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK