1. 手动设置本地网络连接:
1.1 CentOS
配置IPADDR、子网掩码NETMASK、网关GATEWAY、DNS1…, 如:
# /etc/sysconfig/network-scripts/ifcfg-enoxxxx
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.137.3
NETMASK=255.255.255.0
GATEWAY=192.168.137.2
DNS1=202.96.134.133
DNS2=8.8.8.8
DNS3=114.114.114.114
DNS4=8.8.4.4
1.2 Ubuntu 18
ubuntu 18设置静态ip,下面以设置固定Ip:192.168.1.134为例;在/etc/netplan目录下有个.yaml文件,当前环境的文件名为50-cloud-init.yaml,以修改后的内容替换原来的部分(如果当前用户无权限修改该文件,请更换操作账户) note:如果不设置静态Ip,重启后Ip有变动的话,就需要登录每个zookeeper的机器更改hosts文件,修改ip,机器名的映射
# 原来文件内容
network:
ethernets:
ens18:
dhcp4: true
version: 2
# 修改后的文件内容
network:
ethernets:
ens18: #配置的网卡名称 ,该节点使用你环境的配置即可,不一定是这个名称
dhcp4: no #dhcp4关闭
addresses: [192.168.1.134/24] #设置当前机器IP及掩码
gateway4: 192.168.1.253 #设置网关,改为测试环境所在的网关
version: 2
执行以下命令
cd /etc/netplan
vim 50-cloud-init.yaml
sudo netplan apply
# 刷新DNS
/etc/init.d/nscd restart # apt-get install nscd
2. 常用配置命令
# 重启一下网络服务:
service network restart
# 设置IP和掩码
ifconfig eth0 192.168.137.3 netmask 255.255.255.0
# 设置网关
route add default gw 192.168.137.2
# 启动对应的网卡:
sudo ifconfig eth1 up
#重启一下网络服务:
service network restart
# 要查看网卡细节,输入以下命令:
ip addr
# 要查看网络接口统计数据,输入命令
ip link
# 修改主机名
hostnamectl set-hostname jiaolun.top
3. 常用的内核参数
3.1 常用的内核参数
# 解决time_wait连接数大量问题
# vim /etc/sysctl.conf
# see details in https://help.aliyun.com/knowledge_detail/39428.html
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_announce=2
# see details in https://help.aliyun.com/knowledge_detail/41334.html
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
kernel.sysrq=1
# tcp
# 第一个值是为你们的TCP连接所需分配的最少字节数。该值默认是4K,最大的话8MB之多。也就是说你们有数据发送的时候我需要至少为对应的socket再分配4K内存,甚至可能更大。
net.ipv4.tcp_rmem = 4096 87380 8388608
net.core.rmem_default = 212992
net.core.rmem_max = 8388608
# 第一个值是发送缓存区的最小值,默认也是4K。当然了如果数据很大的话,该缓存区实际分配的也会比默认值大。
net.ipv4.tcp_wmem = 4096 65536 8388608
net.core.wmem_default = 212992
net.core.wmem_max = 8388608
3.2 参数详解
net.ipv4.tcp_syncookies = 1 表示开启 syn cookies 。当出现 syn 等待队列溢出时,启用 cookies 来处理,可防范少量 syn ***,默认为 0 ,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将 time-wait sockets 重新用于新的 tcp 连接,默认为 0 ,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启 tcp 连接中 time-wait sockets 的快速回收,默认为 0 ,表示关闭。
net.ipv4.tcp_fin_timeout 修改系靳默认的 timeout 时间
net.ipv4.tcp_keepalive_time = 1200 #表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000 #表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000 #表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。
# 默认为180000,改为5000。
# 对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于 Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
4. 网络协议
4.1 安装sctp协议
使用命令yum list lksctp* 查看需要安装列表
5. 网络检测
5.1 lsof
lsof -i:端口号
5.2 netstat
netstat -tunlp|grep 端口号
netstat -antup | grep ftp
# 查看网络连接数:
netstat -an |wc -l
# 查看不同状态的连接数数量
netstat -an | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'
# 查看每个ip跟服务器建立的连接数
netstat -nat|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn
# 查看每个ip建立的ESTABLISHED/TIME_OUT状态的连接数
netstat -nat|grep ESTABLISHED|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn
# 常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
5.3 slabtop命令
可以查看到densty、flip、sock_inode_cache、TCP四个内核对象
Active / Total Objects (% used) : 453512 / 464623 (97.6%)
Active / Total Slabs (% used) : 9031 / 9031 (100.0%)
Active / Total Caches (% used) : 94 / 121 (77.7%)
Active / Total Size (% used) : 114250.87K / 118810.99K (96.2%)
Minimum / Average / Maximum Object : 0.01K / 0.25K / 8.00K
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
51120 51120 100% 0.13K 852 60 6816K kernfs_node_cache
45780 42981 93% 0.19K 1090 42 8720K dentry
42900 41833 97% 0.10K 1100 39 4400K buffer_head
30888 30888 100% 0.20K 792 39 6336K vm_area_struct
25728 25728 100% 0.06K 402 64 1608K anon_vma_chain
24732 24467 98% 0.59K 458 54 14656K inode_cache
24448 24448 100% 0.03K 191 128 764K kmalloc-32
23680 21298 89% 0.25K 370 64 5920K filp
15040 14893 99% 0.50K 235 64 7520K kmalloc-512
14076 14076 100% 0.09K 306 46 1224K anon_vma
13632 13488 98% 0.06K 213 64 852K kmalloc-64
12800 12800 100% 0.02K 50 256 200K kmalloc-16
10752 10752 100% 0.07K 192 56 768K Acpi-Operand
9216 9216 100% 0.01K 18 512 72K kmalloc-8
8624 6904 80% 0.57K 154 56 4928K radix_tree_node
8568 8568 100% 0.04K 84 102 336K Acpi-Namespace
8280 7242 87% 1.05K 276 30 8832K ext4_inode_cache
7424 7168 96% 0.25K 116 64 1856K skbuff_head_cache
7344 6853 93% 0.66K 153 48 4896K proc_inode_cache
7224 7009 97% 0.19K 172 42 1376K cred_jar
5504 5504 100% 0.12K 86 64 688K pid
5304 5304 100% 0.04K 52 102 208K ext4_extent_status
4620 4548 98% 0.09K 110 42 440K kmalloc-96
4536 4536 100% 0.19K 108 42 864K kmalloc-192
4048 4048 100% 0.69K 88 46 2816K sock_inode_cache
3552 3496 98% 1.00K 111 32 3552K kmalloc-1024
3400 3400 100% 0.05K 40 85 160K ftrace_event_field