Linux笔记-网络管理

网络管理

概括图

网络协议以及管理.png

常用工具命令说明
ethtool ens160 //查看网卡
nc -l 10.0.0.133 6666 //监听端口
ss -ntlp //查看端口占用
lsof -i :6666 //查看端口占用
netstat -s //查看协议

TCP

三次握手四次挥手

孤儿连接
客户端执行半关闭后,未等到服务器关闭连接就强行退出了,此时客户端连接由内核来接管,称为孤儿连接
cat /proc/sys/net/ipv4/tcp_max_orphans #内核能接管的孤儿连接数目
cat /proc/sys/net/ipv4/tcp_fin_timeout #孤儿连接在内核中的生存时间
半连接和全连接队列修改
客户端第一次握手,服务端把请求请求放入半连接队列后向客户端发送确认
服务端第二次握手
客户端第三次握手,服务端把请求从半连接装填取出放入全连接队列,等待应用程序接受数据
cat /proc/sys/net/ipv4/tcp_max_syn_backlog #半连接队列
cat /proc/sys/net/core/somaxconn #全连接队列
超时重传
cat /proc/sys/net/ipv4/tcp_retries1 #最少执行的重传次数
cat /proc/sys/net/ipv4/tcp_retries2 #最多执行的重传次数
拥塞控制
cat /proc/sys/net/ipv4/tcp_congestion_control#查看拥塞控制算法
TCP内核参数优化
man 7 tcp #查看帮助
长久生效配置cat /etc/sysctl.conf sysctl -p 生效
net.ipv4.tcp_fin_timeout # 按照这个个是配置,
对应的系统文件
/proc/sys/net/ipv4/tcp_fin_timeout #保持在FIN-WIAT-2 状态的时间
/proc/sys/net/ipv4/tcp_tw_reuse #允许在TIME-WAIT 状态的sockets 用于新的连接
cat /proc/sys/net/ipv4/tcp_recovery # TIME-WAIT sockets快速回收
cat /proc/sys/net/ipv4/tcp_syncookies #方法少量 SYN攻击,在SYN等待队列溢出时,开启
cat /proc/sys/net/ipv4/tcp_keepalive_time # TCP 发送keepalive 消息的频道,建议改为10分钟
cat /proc/sys/net/ipv4/ip_local_port_range #系统打开的外连接端口范围
cat /proc/sys/net/ipv4/tcp_max_syn_backlog #半连接长度
cat /proc/sys/net/ipv4/tcp_max_tw_buckets #保持TIME-WAIT 套接字的最大数量
cat /proc/sys/net/ipv4/tcp_synack_retries #内核放弃连接前发送SYN+ACK包的数量
cat /proc/sys/net/ipv4/tcp_syn_retries #内核放弃连接前发送SYN的数量
cat /proc/sys/net/core/somaxconn #同时发起的最大TCP连接数
cat /proc/sys/net/core/netdev_max_backlog #每个网络接口接受数据包的速率比内核处理这些包的速率快时,允许发送到队列的最大包数

ARP

查看当前网段的ip和MAC地址
arp -n
ARP静态绑定方式ARP欺骗
arp -s 10.0.0.131 00:0c:29:09:71:31

internet协议

主机A传输包到主机B 的完整过程

IP地址

IP地址有32位组成
网络ID
主机ID
子网掩码:计算网络ID 位数
一个网络中的最多主机数 = 2^主机ID - 2
网段数:2^网络ID可变的位数
网络ID:IP与子网掩码
判断IP是否在一个网段:用自己的子网掩码 分别和 自己的IP 和对方的IP 与计算,结果相同则在一个网段
判断一个网段最小IP和最大IP:

主机:172.16.1.100/28
子网掩码:11111111   11111111   11111111   11110000
IP二进制:10101100   00010000   00000001   01100100
与运算: 10101100   00010000   00000001   01100000
网络ID: 172.16.1.96
最小IP :172.16.1.97  最大IP:172.16.1.110

划分子网
子网个数=2^n n为从主机ID借位

10.0.0.1/8  划分32个子网
子网掩码:11111111 00000000 00000000 00000000 
划分子网的掩码 网络ID 向主机ID 借5位  ,网络ID为13位
11111111 11111000 00000000 00000000
子网掩码十进制:255.248.0.0

每个子网的主机数=2^19-2=524286

第十个子网的网络ID 

第一个子网 00001010  00001000  00000000  0000000
第二个子网 00001010  00010000  00000000  0000000
第十个子网 00001010  01001000  00000000  0000000

借了5位 ,用5个位置表示第几个子网, 第十个子网 用9的二进制表示
01001  剩下的补0  01001000

子网掩码:11111111   11111000   00000000   00000000
第十个子网:00001010   01001000   00000000   00000000
与运算: 00001010   01001000   00000000   00000000
网络ID :10.72.0.0/13
第十个子网的最小IP 
.00001010   01001000   00000000   00000001
10.72.0.1
第十个子网的最大IP
00001010   01001111   11111111   11111110
10.79.255.254

网络配置

基本网络配置
主机名
IP/NETMASK
路由网关
DNS服务器
1.更改网卡名
centos7 8 rokcy
vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0"
grub2-mkconfig -o /boot/grub2/grub.cfg
改完网卡后如果不生效就reboot
2.配置IP
vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
NAME=eth1
BOOTPROTO=static
IPADDR=10.0.0.200
PREFIX=24
GTAEWAY=10.0.0.254
nmcli c reload
nmcli c up eth1

>#ubutu网卡配置
>sed  -ri.bak 's|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=/" net.ifnames=0\"|g' /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg 
vi /etc/netplan/eth0.yaml
network:
  ethernets:
    eth0:
      dhcp4: no
      addresses: [10.0.0.8/24]
      gateway4: 10.0.0.2
      nameservers:
        addresses: [8.8.8.8]
  version: 2
netplan apply

3.添加路由
route add -net 目标IP/网络ID个数 gw 网关
route add -net 172.168.10.0/24 gw 10.0.0.254 eth1 # -net 网络ID -host 主机ID
ip route add 172.168.10.0/24 via 10.0.0.254 dev eth1
永久修改路由
vi /etc/sysconfig/network-scripts/route-eth1
172.168.10.0/24 via 10.0.0.254 dev eth1
4.修改了IP转发内核
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p #生效
5.本地主机名和域名解析
cat /etc/hosts
cat /etc/resolv.conf

修改域名解析优先级 hosts 和 域名解析

/etc/authselect/user-nsswitch.conf

6.网卡别名
vi /etc/sysconfig/network-scripts/ifcfg-eth0:1 #同添加IP配置
7.网络组,网卡高可用
8.网桥
yum -y install bridge-utils
brctl add br0 #添加网桥
brctl addif br0 eth1
brctl addif br0 eth0 #添加网卡
//添加网卡后ssh不能连接,清空ip,把ip添加到网桥
ip address flush eth0
ip address flush eth1
ip address add 10.0.0.200/24 br0
配置文件
/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
SET=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.0.7 #网桥上加地址方便管理
PREFIX=24
/etc/sysconfig/network-scripts/ifcfg-br0-port0
TYPE=Ethernet
NAME=br0-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0

/etc/sysconfig/network-scripts/ifcfg-br0-port1
TYPE=Ethernet
NAME=br0-eth1
DEVICE=eth1
ONBOOT=yes
BRIDGE=br0

Ubuntu配置文件

vi /etc/netplan/eth0.yaml

network:
  ethernets:
    eth0:
      dhcp4: no
    eth1:
      dhcp4: no
  bridges:
    br0:
     dhcp4: no
     addresses: [10.0.0.134/24]
     gateway4: 10.0.0.2
     nameservers:
        addresses: [8.8.8.8]
     interfaces:
     - eth0
     - eth1
  version: 2

常用工具
netstat -ntl
ss - ntl
ss -s
ifconfig -a
route -n
mtr baidu.com #检查经过几个路由
tracepath 172.168.10.200
man nmcli //查看帮助
nmcli connection add help //子命令帮助

网络诊断工具
ping #测试网络连通性
ip route #路由表
tracepath #跟踪路由 mtr
nslookup www.baidu.com #解析dns
host -a www.baidu.com
dig www.baidu.com
tcpdump
tcpdump -i 网卡
tcpdump -nn 数字的方式显示IP和端口。一个n是ip
tcpdump -c x 抓包数量,x为数字
tcpdump port xx 抓指定端口的包,xx为端口号
tcpdump tcp and port xx 指定协议和端口,xx为端口号,and可以省略不写
tcpdump host xx.xx.xx.xx 指定来源IP或目标IP的包 xx.xx.xx.xx为IP地址。
tcpdump src host
tcpdump dst host
tcpdump -w xx.txt 把抓的包写入一个文件,xx.txt为文件名 .cap 方便用wireshark 分析
tcpdump -s0 -w xx.txt 抓包时防止包截断,s0的0为数字0,抓一个完整的包必须加s0。
tcpdump -r xx.txt 用户查看-w抓的包,xx.txt为文件名
-w抓的包实际是包的内容,非简单的流向。如果访问一张图片,用-w可以把这张图片抓出来。只看流向的话,可以使用重定向
安全扫描
nc
fping #ping 多个主机
nmap
扫描远程主机

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容