美文网首页
4、Linux网络管理

4、Linux网络管理

作者: 一个反派人物 | 来源:发表于2020-11-02 21:11 被阅读0次

1 网卡配置文件

/etc/sysconfig/network-scripts/目录下,网卡的配置文件以ifcfg-开头,后面是网卡名称如eth0或ensXXX、enoXXX等等。
网卡的详细配置信息如下:

TYPE=Ethernet
BOOTPROTO=static   #IP地址获取方式,可以为dhcp、none、static
HWADDR=00:0c:29:4f:5f:22  #网卡mac地址
IPADDR=192.168.234.129  #IP地址
PREFIX=24  #子网掩码长度,与NETMASK只用配置一个
GATEWAY=192.168.234.2  #网关
NETMASK=255.255.255.0 #子网掩码,与PREFIX只用配置一个
DEFROUTE=yes  #默认路由指向该网卡
DNS1=114.114.114.114  #DNS服务器地址,注意关键字是DNS1
NAME=ens33  #网卡名字
DEVICE=ens33  #网卡名字
ONBOOT=yes  #网卡是否开机激活

2 DNS配置文件

如果网卡DNS配置正确,可以在/etc/resolv.conf文件查看到DNS服务器

[root@node1 ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114

3 hostnamectl

修改计算机名

hostnamectl set-hostname NAME

这个命令最终修改的是/etc/hostname这个文件

4 hostname

4.1 查看计算机名

[root@node1 ~]$  hostname
node1

4.2 查看本机所有网卡IP地址

[root@backup ~]$  hostname -I
10.0.0.41 172.16.1.41 

5 route、ip route

5.1 route

route add 临时添加静态路由

#添加默认路由
route add default gw 10.0.0.2
#添加普通路由
route add -net 1.1.1.1 netmask 255.255.255.255 gw 192.168.234.2
#添加主机路由
route add -host 1.1.1.1 dev eth0 

route del 临时删除路由

route del default gw 10.0.0.2
route del -net 1.1.1.1 netmask 255.255.255.255 gw 192.168.234.2

route -n 查看路由表

5.2 ip route

centos7 才有的命令
ip route show 查看路由表
ip route add 临时添加静态路由

#添加默认路由
ip route add default via 10.0.0.2 
#添加普通路由
ip route add  1.1.1.1/32 via 10.0.0.2 

ip route del 临时删除静态路由

#删除默认路由
ip route del default via 10.0.0.2 
#删除普通路由
ip route del 1.1.1.1/32 via 10.0.0.2 

6 永久添加静态路由

在/etc/sysconfig/network-scripts/目录下,创建静态路由配置文件,格式为route-网卡名
以网卡ens33为例

[root@node1 network-scripts]$  vim route-ens33
2.2.2.2/32 via 192.168.234.2
#格式为:目标地址/掩码  via  下一跳地址

注意! 编辑静态路由配置文件需重启网络服务才能生效,为避免影响现网业务,可以使用route add命令临时添加一条一样的静态路由,这样能够保证静态路由既临时生效又永久生效。

7 查看网卡的实际mac地址

当网卡配置文件配错mac地址时,会识别不到网卡,可以使用命令dmesg | grep eth来查看内核识别到的真正的网卡mac地址。

[root@node1 network-scripts]$  dmesg | grep eth
[    2.300460] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:4f:5f:22
[    2.300466] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection
[    2.656130] e1000 0000:02:04.0 eth1: (PCI:66MHz:32-bit) 00:0c:29:4f:5f:2c
[    2.656136] e1000 0000:02:04.0 eth1: Intel(R) PRO/1000 Network Connection
[    3.046804] e1000 0000:02:05.0 eth2: (PCI:66MHz:32-bit) 00:0c:29:4f:5f:36
[    3.046808] e1000 0000:02:05.0 eth2: Intel(R) PRO/1000 Network Connection

8 netstat和ss

查看服务器监听和对外开放的端口情况

netstat -tulnp
ss -tulnp

Options:
 -t:TCP
 -u:UDP
 -l:Listen
 -n:Numeric,don't resolve names
 -p:PID/Program name

监听地址的部分:

  • ipv4 0.0.0.0*表示所有地址均可访问,127.0.0.1表示仅本机地址可以访问
  • ipv6 ::表示所有地址均可访问,::1表示仅本机地址可以访问

9 services文件

/etc/services 文件记录了系统各服务对应的端口号

# service-name  port/protocol  [aliases ...]   [# comment]

tcpmux          1/tcp                           # TCP port service multiplexer
tcpmux          1/udp                           # TCP port service multiplexer
rje             5/tcp                           # Remote Job Entry
rje             5/udp                           # Remote Job Entry
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
systat          11/udp          users
daytime         13/tcp
daytime         13/udp
qotd            17/tcp          quote
qotd            17/udp          quote
msp             18/tcp                          # message send protocol (historic)
msp             18/udp                          # message send protocol (historic)
chargen         19/tcp          ttytst source
chargen         19/udp          ttytst source
ftp-data        20/tcp
ftp-data        20/udp
# 21 is registered to ftp, but also used by fsp
ftp             21/tcp
ftp             21/udp          fsp fspd
ssh             22/tcp                          # The Secure Shell (SSH) Protocol
ssh             22/udp                          # The Secure Shell (SSH) Protocol

10 修改网卡名称

安装时修改
在Install 选项按tab键,输入net.ifnames=0 biosdevname=0
安装后修改
1.重命名网卡配置文件

[root@sun /]$ cd /etc/sysconfig/network-scripts/  #切换到网卡目录 
[root@sun /]$ mv ifcfg-eno16777736 ifcfg-eth0  #修改名称

2.关闭NetworkManager(可选)
不关闭NetworkManager,需要在网卡配置文件中配置网卡MAC地址

systemctl stop NetworkManager
systemctl disable NetworkManager

3.编辑网卡配置

...
NAME="eth0" #修改为eth0
DEVICE="eth0" #修改为eth0
HWADDR=xx:xx:xx...  #如果开启了NetworkManager,需要写上mac地址字段

4.修改grub文件
/etc/sysconfig/grub

[root@sun /]$ vim /etc/sysconfig/grub
...
GRUB_CMDLINE_LINUX="... rhgb quiet net.ifnames=0 biosdevname=0"

5.重新生成grub配置文件

[root@sun /]$ grub2-mkconfig -o /boot/grub2/grub.cfg  #重新生成grub配置并更新内核参数

6.重启后生效

11 TCP状态转换图

12 ifdown、ifup关闭开启网卡

ifdown eth0
ifup eth0

13 ip addr

13.1 临时设置网卡ip地址

ip addr add 10.0.0.1/24 dev eth0 添加地址
ip addr del 10.0.0.1/24 dev eth0 删除地址

13.2 临时添加网卡子接口

ip addr add 10.0.0.1/24 dev eth0 label eth0:1 添加子接口
ip addr del 10.0.0.1/24 dev eth0 label eth0:1 删除子接口

14 设置策略路由

14.1 新建路由实例

编辑/etc/iproute2/rt_tables文件,新建路由实例

新建一个test实例
#
# reserved values
#
255     local
254     main
253     default
0       unspec
200     test
#
# local
#
#1      inr.ruhep

14.2 为路由实例添加策略

为test实例添加默认路由

ip route add 0/0 via 10.0.0.1 table test

将特定源地址(113.110.228.45)交由test实例转发

ip rule add from 113.110.228.45 table test

14.3 查看策略路由信息

14.3.1 查看总体路由表

ip rule show

ip rule show显示的内容,大体上可以分为三段:

第一段:冒号之前的数字,表示该路由表被匹配的优先顺序,数字越小,越早被匹配。这个优先级别范围是0~4亿多。默认0、32766、32767三个优先级别已被占用。如果在添加规则时没有定义优先级别,那么默认的优先级别会从32766开始递减,可以通过prio ID参数在设置路由表时添加优先级。

第二段:from关键字,这里显示的是匹配规则,当前表示的是从哪里来的数据包,除了from关键字外,还有to、tos、fwmark、dev等等。

第三段:loacl/main/default 这些都是路由表名称,表示数据包要从那个路由表送出去。local表包含本机路由及广播信息,main表就是我们route -n看到的内容,default表,默认为空。

14.3.2 查看分表路由

ip route list table 表名
#例子
[root]$ ip route list table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1 
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1 
broadcast 172.16.64.0 dev wlp2s0 proto kernel scope link src 172.16.65.90 
local 172.16.65.90 dev wlp2s0 proto kernel scope host src 172.16.65.90 
broadcast 172.16.67.255 dev wlp2s0 proto kernel scope link src 172.16.65.90 
broadcast 172.17.0.0 dev docker0 proto kernel scope link src 172.17.0.1 
local 172.17.0.1 dev docker0 proto kernel scope host src 172.17.0.1 
broadcast 172.17.255.255 dev docker0 proto kernel scope link src 172.17.0.1 

15 tcpdump抓包工具

15.1 options

抓包选项:
-c:              指定要抓取的包数量。
-i interface:    指定tcpdump需要监听的接口。默认会抓取第一个网络接口
-n:              对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。
-nn:             除了-n的作用外,还把端口显示为数值,否则显示端口服务名。
-Q:              指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。
-s len:          设置tcpdump的数据包抓取长度为len,如果不设置默认将会是262144字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断,若出现包截断,
                  输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。但是抓取len越长,包的处理时间越长,并且会减少tcpdump可缓存的数据包的数量,
                  从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好。
-S:               使用绝对序列号,而不是相对序列号

输出选项:
-e:               输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
-q:               快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
-X:               输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX:              输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-v:               当分析和打印的时候,产生详细的输出。
-vv:              产生比-v更详细的输出。
-vvv:             产生比-vv更详细的输出。

其他功能性选项:
-D:               列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
-F:               从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效。
-w:               将抓包数据输出到文件中而不是标准输出。可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。
-r:               从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。

常用选项:
tcpdump -c num -i int -nn -Q in|out|inout
tcpdump -c num -i int -nn -XX -vvv
tcpdump -i eth0 -w test.pcap

15.2 proto dir type

(1).proto:通过给定协议限定匹配的数据包类型。
常用的协议有tcp/udp/arp/ip/ether/icmp等,若未给定协议类型,则匹配所有可能的类型。例如"tcp port 21","udp portrange 7000-7009"。
(2).dir:指定方向。
可以给定的值包括src/dst/src or dst/src and dst,默认为src or dst。例如,"src foo"表示源主机为foo的数据包,"dst net 128.3"表示目标网络为128.3的数据包,"src or dst port 22"表示源或目的端口为22的数据包。
(3).type:指定类型。
可以给定的值有host/net/port/portrange。例如"host foo","net 128.3","port 20","portrange 6000-6008"。默认的type为host。

15.3 过滤规则组合

  • and:所有的条件都需要满足,也可以表示为 &&
  • or:只要有一个条件满足就可以,也可以表示为 ||
  • not:取反,也可以使用 !

proto可以直接配合dir port/portrange使用

tcpdump -i eth0 udp dst port 53

proto配合dir host/net使用时,需要用到规则组合and

tcpdump -i eth0 tcp and dst net 172.16.19

当你在使用多个过滤器进行组合时,有可能需要用到括号,而括号在 shell 中是特殊符号,因为你需要使用引号将其包含。

tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'

15.4 输出中的TCP标识位

使用 tcpdump 抓包后,会遇到的 TCP 报文 Flags,有以下几种:

  • [S] : SYN(开始连接)
  • [P] : PSH(推送数据)
  • [F] : FIN (结束连接)
  • [R] : RST(重置连接)
  • [.] : 没有 Flag (意思是除上面四种类型外的其他情况,有可能是 ACK 也有可能是 URG)

相关文章

  • Linux网络管理-4

    Linux远程登录工具 SSH协议原理 对称加密算法采用单匙密码系统的加密方法,同一个密匙可以同时用作信息的加密和...

  • 系统启动及故障排错和内核管理

    (一)Linux组成结构 Linux: kernel+rootfskernel: 进程管理、内存管理、网络管理、...

  • Android 总结1:Android系统架构

    1 Android系统架构 1 Linux Kernel (Linux内核):内存管理,进程管理,网络协议和各种驱...

  • Linux网络管理-Linux网络配置

    Linux配置IP地址 ifconfig命令临时配置IP地址DHCP服务器:自动分配IP地址的服务器重启计算机和网...

  • Linux网络管理-Linux网络命令

    网络环境查看命令ifconfig查看与配置网络状态命令,能看到的只有ip和子网掩码,看不到网关和dns。ifdow...

  • Linux管理-网络管理

    ifcfg-eth解释 文件 vi /etc/sysconfig/network-scripts/ifcfg-e...

  • Linux网络管理

    前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 Linux用户和权限管理看了你就会用啦 L...

  • Linux网络管理

    本文为原创文章,转载请标明出处 目录 查看网络接口 配置网络接口 重启网络接口 路由命令 route查看系统中的路...

  • Linux 网络管理

    ↓发送接口 ↕ 应用层 ← 应用层协议 → 应用层 APDU接口 ↕ ...

  • Linux网络管理

    查看本机启用的端口:netstat -an ping命令:ping [选项] ip或域名:探测指定IP或域名的网...

网友评论

      本文标题:4、Linux网络管理

      本文链接:https://www.haomeiwen.com/subject/tbpivktx.html