linux 网络

目录

查看网络配置

ifconfig  查看网络接口信息

ifconfig 常用格式

Linux默认网卡文件位置与相关配置

ethtool  查看网卡信息

修改网卡名称

临时修改

永久修改

hostname  查看,修改主机名

临时修改

永久修改

route  查看,设置主机中路由表信息

添加指定网段的路由记录

删除指定网段的路由记录

向路由表中添加默认网关记录

删除路由表中默认的网关记录

netstat  查看网络连接情况

ss  (socket  statistics)查看网络连接情况

   ping     icmp 协议

traceroute   路由追踪

nslookup  域名解析

dig 可以更详细显示信息

永久修改网络相关配置文件

tcpdump   抓包工具            

输出格式讲解:

过滤规则

基于IP地址/网段过滤

host选项:

dst 选项   目的地址​编辑

src  选项  源地址

net  选项

控制方向

基于端口过滤

port  端口号   

基于协议

多网卡绑定

查看bond0状态:

删除bond0:

查看网络配置

ifconfig  查看网络接口信息

        单独执行 ifconfig 命令,将会显示所有活动的网络接口信息;加上网络接口,则指定查看该网络接口信息。

        其中,“ens33”中的“en”是“EtherNet”的缩写,表示网卡 以太网(局域网中的一种) 互联网

类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号。

ifconfig 常用格式

ifconfig   具体网卡名称 #只显示具体网卡的详细信息(无论该网卡是否使用)

ifconfig -a #表示显示所有网卡包括没有启动的网卡

ifconfig -s #显示网络通讯情况

ifconfig 网卡名称 [up|down] #表示开启或关闭网卡

ifconfig 网络接口 ip地址 [netmask 子网掩码]   #临时设置IP地址

ifconfig ens33:0 地址 #设置临时虚拟网卡

Linux默认网卡文件位置与相关配置

/etc/sysconfig/network-scripts/ifcfg-ens35
TYPE=Ethernet                #接口类型
BOOTPROTO=static        #地址获取方式 手动配置    dhcp 动态获取

NAME=ens35                   #网卡名称
DEVICE=ens35                #网卡
ONBOOT=yes                  #开机是否自启 开启
IPADDR=172.16.26.45     #地址
NETMASK=255.255.0.0   #子网掩码
GATEWAY=17216.26.2    #网关
DNS1=8.8.8.8                   #将ip地址转换成 域名

 IP (link 或 a)也可以查看网络接口信息

ethtool  查看网卡信息

ethtool -i  ens33

 ethtool -p ens33  使ens33 网卡快速闪烁。

修改网卡名称

临时修改

  • 先将网卡 down掉        IP link  set  ens35   down
  • 改名                            IP link  set  ens35    name   eth1
  • 启动                            IP link  set  eth1    up

永久修改

方法一:

方法二: 

hostname  查看,修改主机名

临时修改

hostname   名字        hostname   zyl

永久修改

方法一:通过修改/etc/hostname文件来修改主机名 方法二:通过hostnamectl来修改主机名

route  查看,设置主机中路由表信息

-n: 将路由记录中的地址信息显示为数字形式

#路由表主要构成:
#Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
#Genmask:目标网络对应的netmask
#Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
#Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
#Metric: 开销cost,值越小,路由记录的优先级最高

添加指定网段的路由记录

route add -net  网段地址 gw IP地址

删除指定网段的路由记录

route del -net 网段地址

向路由表中添加默认网关记录

route add default gw IP地址

删除路由表中默认的网关记录

route del default gw  IP地址

netstat  查看网络连接情况

当服务不能用 ,ftp httpd网页无法访问时

  1. 一般先ping 看能不能通,如果网络不通则网络调通看防火墙是否关闭 抓包查看。
  2. 看看你的服务是否开启 syetemctl status 服务名。
  3. ss netstat 看看你的服务端口是否被占用 。
  4. 最后看你 服务的配置文件是否正确。

netstat 选项:

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

[root@localhost ~]#systemctl start httpd
[root@localhost ~]#netstat -ntap |grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      10379/httpd         
[root@localhost ~]#netstat -ntap |grep ":22"
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1057/sshd           
tcp        0      0 192.168.91.100:22       192.168.91.1:50728      ESTABLISHED 1707/sshd: root@pts 
tcp        0     52 192.168.91.100:22       192.168.91.1:60503      ESTABLISHED 10224/sshd: root@pt 
tcp        0      0 192.168.91.100:22       192.168.91.1:60708      ESTABLISHED 9609

ss  (socket  statistics)查看网络连接情况

ss 命令:也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和UDP连接状态的信息,而且比 netstat 更快速更高效 当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。 ss 快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效 。ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。

选项:

-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 显示主机中所有活动的网络连接信息
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。

   ping     icmp 协议

详见  https://blog.csdn.net/luhuiling852/article/details/133855641?spm=1001.2014.3001.5502

traceroute   路由追踪

        格式:traceroute  IP地址

nslookup  域名解析

        格式:nslookup   域名

dig 可以更详细显示信息

永久修改网络相关配置文件

 网络配置文件:vim /etc/sysconfig/network-scripts

[root@localhost ~]#  vim /etc/sysconfig/network-scripts/ifcfg-ens33 

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33                          #网卡名称
UUID=45978760-8495-499f-b1eb-b3e880565ca8
DEVICE=ens33                        #网卡获取地址模式  none   dhcp
ONBOOT=yes                          #开机是否自启动
IPADDR=172.16.26.30                 #配置IP地址子网网关还有dns服务器
NETMASK=255.255.255.0
GATEWAY=172.16.26.2
DNS1=8.8.8.8
DNS2=114.114.114.114

#TYPE:接口类型;常见有的Ethernet, Bridge
#PROXY_METHOD:此配置文件应用到的设备  
#BROWSER_ONLY:
#BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
#DEFROUTE:
#IPV4_FAILURE_FATAL:
#IPV6INIT:
#IPV6_AUTOCONF:
#IPV6_DEFROUTE:
#IPV6_FAILURE_FATAL:
#IPV6_ADDR_GEN_MODE:
#NAME:此配置文件应用到的设备
#UUID:设备的惟一标识
#DEVICE:设备名
#ONBOOT:在系统引导时是否激活此设备
#IPADDR::
#NETMASK:
#GATEWAY:
#DNS1:

tcpdump   抓包工具            

proto(协议)dir(数据的方向)type(抓取数据类型)
tcp  udp   icmpsrchost  主机
ip   ipv6dstnet  网段
arpsrc and   dstport  端口  
————port range  端口范围

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<
数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数说明:

-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<数据包文件> 把数据包数据写入指定的文件。

tcpdump可以直接使用也可以加 -i 指定网卡

输出格式讲解:

第一列:时分毫秒 18:54:50.212572

第二例:网络协议ip

第三列:发送方IP地址+端口号 ip地址:172.16.26.1 端口号:58402 >表示数据流向

第四列:主机名协议 主机名:localhost.localdomain 协议:ssh

第五列: seq号 ack号 win窗口长度 tcp的标志位

过滤规则

基于IP地址/网段过滤

host选项:

        主机2  ping  主机1

dst 选项   目的地址

src  选项  源地址

net  选项

控制方向

基于端口过滤

port  端口号   

                 tcpdump  port    80

[root@localhost ~]#tcpdump -i ens33 port 80
[root@localhost ~]#tcpdump -i ens33  src port 80 or port 22
[root@localhost ~]#tcpdump -i ens33  dst port 80 or port 22
范围的端口
[root@localhost ~]#tcpdump -i ens33 portrange 80-8080        #80 和 22 端口
[root@localhost ~]#tcpdump -i ens33  src portrange 80-8080
[root@localhost ~]#tcpdump -i ens33  dst portrange 80-8080

基于协议

应用层协议不可以直接抓取

[root@localhost ~]#ping  www.baidu.com
[root@localhost ~]#tcpdump -i ens33 icmp

多网卡绑定

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

/etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路

/etc/sysconfig/network-scripts/ifcfg-ens33
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes


/etc/sysconfig/network-scripts/ifcfg-ens35
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

————————————————————————————
vim ifcfg-bond0 
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.91.22
NETMASK=255.255.255.0
GATEWAY=192.168.91.2
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

vim ifcfg-ens33
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes

vim ifcfg-ens35
NAME=ens35
DEVICE=bond0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
PNBOOT=yes


[root@localhost network-scripts]#cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active)
Primary Slave: None
Currently Active Slave: ens33
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:fe:e5:bf
Slave queue ID: 0

查看bond0状态:

/proc/net/bonding/bond0

删除bond0:

ifconfig bond0 down
rmmod bonding

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值