第1章 防火墙iptables

网络防火墙就是一个位于计算机和它所连接的网络之间的防火墙。该计算机流入流出的所有网络通信均要经过此防火墙。防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。

 

1.1iptables的介绍

平时说iptables是防火墙,其实iptablesiptables/netfilter组合中的一个,只有iptables/netfilter才应该叫做防火墙,它是基于软件方式工作的网络防火墙。iptables工作于用户空间,是防火墙的规则编写工具,使用iptables编写规则并且发送到netfilter;防火墙的规则刚放到netfilter中,它是一个能够让规则生效的网络架构,工作于内核空间。

 

iptables是什么?

防火墙,防火的墙。

 

iptables是防火墙软件,防止黑客等入侵、非法访问我们的网站或服务器。

 

防火墙有硬件和软件:

1iptables是软件防火墙

2、硬件防火墙

【商用防火墙】

华为

深信服

思科

H3C

Juniper

天融信

飞塔

网康

绿盟科技

金盾

 

开源的基于数据包过滤的防火墙工具。

还可以做NAT映射:1)网关:局域网共享上网。2IP或端口映射。

 

Iptables主要工作在OSI七层的二、三四层,如果重新编译内核,

Iptables也可以支持7层控制(squid代理+iptables)

 

Iptables企业应用场景

1、主机防火墙(filter表的INPUT链)。

2、局域网共享上网(nat表的POSTROUTING)。半个路由器,NAT功能。

3、端口及IP映射(nat表的PREROUTING),硬防的NAT功能。

4IP一对一映射。

 

1.2iptables包过滤流程

 

iptables工作流程小结:

1、防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。

2、如果匹配上了规则,即明确表明是阻止还是通过,此时数据包就不在向下匹配新规则了。

3、如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。

4、防火墙的默认规则是对应链的所有的规则执行完以后才会执行的(最后执行的规则)。

 

1.3iptables具体是由什么组成?

包含关系:

iptables防火墙==>4张表(tables)===>一共有5个链=(chains)====>规则(policy

                 代表不同功能     (进入、流出、转发)    具体执行办事的

                                                             

工作内容:就是需要知道在哪张表哪个链上,配置合适的规则,从而控制数据包的处理!

iptables包含4张表:

  1.filter(负责主机防火墙功能)******

  2.nat(端口或IP映射以及共享上网功能)******

  3.mangle(配置路由标记 ttltos mark)不用学习。

  4.raw不用介绍

表对应的链:

  filter:INPUT,OUTPUT,FORWARD

  NAT:POSTROUTING,PREROUTING,OUTPUT

  mangle:INPUT,OUTPUT,FORWARDPOSTROUTING,PREROUTING

  raw

5链:

  *INPUT:进入主机的数据包。主机防火墙(filter表的INPUT链)

  OUTPUT:流出主机的数据包。

  FORWARD:流经主机的数据包。

  *PREROUTING:进入服务器最先经过的链,NAT端口或IP映射。(nat表的PREROUTING)

  *POSTROUTING:在流出服务器最后经过的链,NAT共享上网。局域网共享上网(nat表的POSTROUTING)

 

1.4iptables常用命令参数

 

 

 

查看防火墙信息的两种方式

[root@web01 ~]# /etc/init.d/iptables status

Table: filter

Chain INPUT (policy ACCEPT)

num target     prot opt source               destination        

1   ACCEPT     all  -- 0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED

2   ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0          

3   ACCEPT     all  -- 0.0.0.0/0            0.0.0.0/0          

4   ACCEPT     tcp  -- 0.0.0.0/0           0.0.0.0/0           state NEW tcpdpt:22

5   REJECT     all  -- 0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

 

Chain FORWARD (policy ACCEPT)

num target     prot opt source               destination        

1   REJECT     all  -- 0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

 

Chain OUTPUT (policy ACCEPT)

num target     prot opt source               destination        

 

[root@web01 ~]# iptables -nL

Chain INPUT (policy ACCEPT)

target    prot opt source              destination        

ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED

ACCEPT    icmp --  0.0.0.0/0            0.0.0.0/0          

ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0          

ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22

REJECT    all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

 

Chain FORWARD (policy ACCEPT)

target    prot opt source               destination        

REJECT    all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

 

Chain OUTPUT (policy ACCEPT)

target    prot opt source              destination        

[root@web01 ~]#

 

 

查看启动状态命令:

iptables -nL --line-number

-n            #<==以数字的形式显示规则

-L            #<==列表链里的所有规则

--line-number #<==打印规则序号

-t 指定表(default: `filter')

 

先打开防火墙

[root@web01 ~]# /etc/init.d/iptables start

iptables: Applying firewall rules:                         [  OK  ]

 

 

 

防火墙的命令:

iptables [-t table] -A chainrule-specification

iptables [-t table] -I chain [rulenum]rule-specification

iptables [-t table] -D chain rulenum   #<==根据规则号删除。

iptables [-t table] -D chainrule-specification

注释:

-t 指定表d(efault: `filter')

-A #<==把规则添加到指定的链上,默认添加到最后一行。

-I #<==插入规则,默认插入到第一行。

-D #<==删除链上的规则

 

根据规则号删除:

iptables -D INPUT 4 #<==4是规则号。

iptables -t nat -D PREROUTING 2

重置防火墙需要执行的三个步骤

-F #<==清除一个链或所有链上的规则

-Z #<==链的记数器清零

-X #<==删除用户自定义的链。

 

[root@web02 ~]# iptables -Z   把链的计数器清零

[root@web02 ~]# iptables -X   删除用户自定义的链

[root@web02 ~]# iptables -F   清除一个链或所有链上的规则

[root@web02 ~]# iptables -nL  查看防火墙的信息

 

22端口

iptables -A INPUT -p tcp --dport 22 -j DROP

规则注释:

-p      #<==指定过滤的协议-ptcp,udp,icmp,all

--dport  #<==指定目标端口(用户请求的端口)。

-j       #<==对规则的具体处理方法(ACCEPT,DROP,REJECT,SNAT/DNAT)

--sport   #<==指定源端口。

 

禁止10.0.0.253访问

[root@web01 ~]# iptables -I INPUT -p tcp -s10.0.0.253 -i eth0 -j DROP

[root@web02 ~]# iptables -A INPUT -p tcp !-s 10.0.0.2 -i eth0 -j DROP

-s      #<==指定源地址。 ! 取反。

-d      #<==指定目的地址。

-i      #<==进入的网络接口(eth0,eth1)。

-o      #<==出去的网络接口(eth0,eth1)。

 

匹配端口范围:

iptables -I INPUT -p tcp -m multiport--dport 21,22,23,24 -j DROP

iptables -I INPUT -p tcp --dport 3306:8809-j ACCEPT

iptables -I INPUT -p tcp --dport 18:80 -j DROP  #<==最佳

 

 

匹配ICMP类型

iptables -A INPUT -p icmp --icmp-type 8

例:iptables -AINPUT -p icmp --icmp-type 8 -j DROP

iptables -A INPUT -p icmp -m icmp--icmp-type any -j ACCEPT

iptables -A FORWARD -s 192.168.1.0/24 -picmp -m icmp --icmp-type any -j ACCEPT

 

匹配网络状态

-m state --state

   NEW:已经或将启动新的连接

   ESTABLISHED:已建立的连接

   RELATED:正在启动的新连接

   INVALID:非法或无法识别的

 

允许关联的状态包 ftp协议

iptables -A INPUT  -m state --state ESTABLISHED,RELATED -jACCEPT

 

限制指定时间包的允许通过数量及并发数

-m limit --limit n/{second/minute/hour}:

指定时间内的请求速率"n"为速率,后面为时间分别为:秒、分、时

iptables -I INPUT -p icmp --icmp-type 8 -mlimit --limit 6/min -j DROP

 

--limit-burst [n]

在同一时间内允许通过的请求"n"为数字,不指定默认为5

iptables -I INPUT -s 10.0.0.0/24 -p icmp--icmp-type 8 -m limit --limit 6/min --limit-burst 2 -j ACCEPT

 

 

iptables命令总结

命令

说明

-A

把规则添加到指定的链上

-p

指定过滤的协议

-s

指定源地址

-d

指定目的地址

-i

进入的网络接口(eth0,eth1

-o

出去的网络接口(eth0,eth1

--dport

指定目标端口

--sport 

指定源端口

--jump / -j

对规则的具体处理方法(ACCEPT,DROP,REJECT,SNAT/DNAT

ACCEPT 允许

DROP   拒绝

REJECT 丢弃

SNAT 源地址转换

DNAT 目的地址转换



-D chain 

删除链上的规则

-D chain  rulenum

根据规则号删除规则

-I

插入规则到第一行

-L

列表链里的所有规则(iptables  -nL

-n

以数字的形式显示规则

-P

指定链的默认规则

-F

清除一个链或所有链上的规则

-Z

链的记数器清零

-N

用户自定义的链

-X

删除用户自定义的链

--line-numbers

打印规则序号

-t

指定表(default:  `filter')

 

 

让防火墙配置文件永久生效的方法:

方法一:

/etc/init.d/iptables save

方法二:

iptables-save >/etc/sysconfig/iptables

第2章 企业案例

2.1部署一个企业级主机防火墙案例。

#清除所有链上的规则

[root@web01 ~]# iptables -F

#删除用户自定义的链

[root@web01 ~]# iptables -X

#链的计数器清零

[root@web01 ~]# iptables -Z

#允许22端口连接

[root@web01 ~]# iptables -A INPUT -p tcp--dport 22 -j ACCEPT

#允许172.16.1.0网段的主机连接22端口

[root@web01 ~]# iptables -A INPUT -p tcp -s172.16.1.0/24 --dport 22 -j ACCEPT

#不允许其他的数据端口进入

[root@web01 ~]# iptables -P INPUT DROP

#允许数据包流出

[root@web01 ~]# iptables -P OUTPUT ACCEPT

#不允许流经的数据包通过

[root@web01 ~]# iptables -P FORWARD DROP

#显示iptables详细的规则信息

[root@web01 ~]# iptables -nL

Chain INPUT (policy DROP)

target    prot opt source              destination        

ACCEPT    all  --  10.0.0.0/24          0.0.0.0/0          

ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22

 

Chain FORWARD (policy DROP)

target    prot opt source              destination

 

Chain OUTPUT (policy ACCEPT)

target    prot opt source              destination

#允许80端口和443端口进入

[root@web02 ~]# iptables -A INPUT -p tcp -mmultiport --dport 80,443 -j ACCEPT

#允许172.16.1.0/24范围的主机进入

[root@web02 ~]# iptables -A INPUT -s172.16.1.0/24 -j ACCEPT

#允许lo本地环回接口进入

[root@web02 ~]# iptables -A INPUT -i lo -jACCEPT

#允许ip ping服务器

iptables -A INPUT -p icmp --icmp-type 8 -jACCEPT

#允许已经建立连接的和正在建立连接的状态数据包进入

iptables -A INPUT -m state --stateESTABLISHED,RELATED -j ACCEPT

#使修改的配置永久生效

[root@web01 ~]# /etc/init.d/iptables  save

iptables: Saving firewall rules to/etc/sysconfig/iptables:[  OK  ]

 

扫描测试:使用云主机部署,用笔记本虚拟机扫描

[root@web02 ~]# nmap www.baidu.com

Starting Nmap 5.51 ( http://nmap.org ) at2017-04-04 12:23 CST

Nmap scan report for www.baidu.com(119.75.217.109)

Host is up (0.020s latency).

Other addresses for www.baidu.com (notscanned): 119.75.218.70

Not shown: 998 filtered ports

PORT   STATE SERVICE

80/tcp open  http

443/tcp open  https

Nmap done: 1 IP address (1 host up) scannedin 13.60 seconds

 

[root@db01 ~]# nmap 10.0.0.8 -p 1-1024

 

Starting Nmap 5.51 ( http://nmap.org ) at2017-06-15 11:59 CST

Nmap scan report for 10.0.0.8

Host is up (0.00095s latency).

Not shown: 1021 filtered ports

PORT   STATE  SERVICE

22/tcp open   ssh

80/tcp open   http

443/tcp closed https

MAC Address: 00:0C:29:2F:E4:DB (VMware)

 

 

生产维护iptables

1、日常改/etc/sysconfig/iptables配置

-A INPUT -p tcp -m tcp --dport 3306 -jACCEPT

生效:

       1/etc/init.d/iptables reload

       2iptables -I INPUT 3 -p tcp -m tcp--dport 3306 -j ACCEPT

 

 

2、临时封Ip-I

iptables -I INPUT -s 203.71.78.10 -j DROP

 

 

脚本部署

写成脚本

#!/bin/bash

#this is a server firewall created by  oldboy 17:03 2006-7-26

#updated by oldboy on 10:30 2009-6-23

#http://blog.etiantian.org

#qq:49000448

#define variable PATH

IPT=/sbin/iptables

 

#Remove any existing rules

$IPT -F

$IPT -X

$IPT -Z

 

#setting default firewall policy

$IPT --policy OUTPUT ACCEPT

$IPT --policy FORWARD DROP

$IPT -P INPUT DROP

 

#setting for loopback interface

$IPT -A INPUT -i lo -j ACCEPT

 

#setting access rules

#one,ip access rules,allow all the ips of

$IPT -A INPUT -s 202.81.17.0/24 -p all -jACCEPT

$IPT -A INPUT -s 202.81.18.0/24 -p all -jACCEPT

$IPT -A INPUT -s 124.43.62.96/27 -p all -jACCEPT

$IPT -A INPUT -s 192.168.1.0/24 -p all -jACCEPT

$IPT -A INPUT -s 10.0.0.0/24 -p all -jACCEPT

 

#icmp

$IPT -A INPUT -p icmp -m icmp --icmp-typeany -j ACCEPT

 

#others RELATED

$IPT -A INPUT  -m state --state ESTABLISHED,RELATED -jACCEPT

 

/etc/init.d/iptables save

#iptables-save >/etc/sysconfig/iptables

 

 

 

 

 

 

 

2.2局域网共享上网项目案例(内网访问外网)

 

内网服务器

更改mysql服务器

第一步:关闭eth0网卡

ifdown eth0

第二步:增加网关

route add default gw172.16.1.8

第三步:route -n 查看路由

第四步:编辑/etc/resolv.conf 增加一个10.0.0.254(增加DNS域名服务器解析)

vim /etc/resolv.conf

nameserver 10.0.0.254

 

 

 

外网服务器

web服务器

第一步:修改内核配置文件,开启代理转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

第二步:然后执行sysctl -p使修改生效

sysctl -p

第三步:调整iptables环境

iptables -P INPUT ACCEPT

#修改默认规则 允许流入主机包的链

iptables -P FORWARD ACCEPT

#修改默认规则 允许流经主机包的链

iptables -F

#情况所有链上的规则

 

生产企业的案例

iptables -t nat -IPOSTROUTING -o eth0 -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.8

172.16.1.0/24范围内所有的IP,要出去的数据包转换成10.0.0.8IP流出

-t 指定 nat -I 在一条插入局域网共享上网(nat表的POSTROUTING)

-o 指定出去的网络接口 eth0 -s 指源ip地址是 172.16.1.0/24网段的主机

-j 对规则的具体处理方法 源地址转换  转换成10.0.0.8

然后内网服务器 ping www.baidu.com就可以ping通,说明可以上外网了。

 

2.3局域网共享的两种方法:

方法1:适合于有固定外网地址的:

iptables -t nat -A POSTROUTING -s172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.8

172.16.1.0/24范围内所有的IP,要出去的数据包转换成10.0.0.8IP流出

(1)-s 172.16.1.0/24 办公室或IDC内网网段。

(2)-o eth0 为网关的外网卡接口。

(3)-j SNAT --to-source 10.0.0.8 是网关外网卡IP地址。

--to-source 源地址转换

方法2:适合变化外网地址(拨号上网):

iptables -t nat -A POSTROUTING -s 172.16.1.0/24-j MASQUERADE    ##伪装。

172.16.1.0/24范围内所有的IP要出去的数据包自动转换为适当的IP流出

2.4将外网IP的端口映射到内网IP的端口

需求:将网关的IP9000端口映射到内网服务器的22端口

端口映射10.0.0.8:9000 -->172.16.1.51:22

 

实现命令:

iptables -t nat -APREROUTING -d 10.0.0.8 -p tcp --dport 9000 -j DNAT --to-destination172.16.1.51:22

将访问10.0.0.89000端口的数据包 转换到172.16.1.5122端口

DNAT目标地址转换

--to-destination 到目录地

登录时候填写的主机10.0.0.8端口号是9000

 

 

 

2.5IP一对一映射

在有外网的机器上建立一个辅助IP

ip addr add 10.0.0.81/24 dev eth0 labeleth0:0   #<==辅助IP

iptables -t nat -I PREROUTING -d 10.0.0.81 -j DNAT --to-destination 172.16.1.51

iptables -t nat -I POSTROUTING -s 172.16.1.51 -o eth0 -j SNAT --to-source10.0.0.81

 

#适合内网的机器访问NAT外网的IP

iptables -t nat -I POSTROUTING -s 172.16.1.0/255.255.240.0 -d 10.0.0.81 -j SNAT--to-source 172.16.1.8

 

把从源ip地址是172.16.1.0/255.255.240.0 网段流出的包流到10.0.0.81这个目标ip地址,最后出去的时候转换成为172.16.1.8这个ip

 

2.6映射多个外网IP上网

方法1

iptables -t nat-A POSTROUTING -s 10.0.1.0/255.255.240.0 -o eth0 -j SNAT --to-source124.42.60.11-124.42.60.16

三层交换机或路由器,划分VLAN

 

方法2

iptables -t nat-A POSTROUTING -s 10.0.1.0/22 -o eth0 -j SNAT --to-source 124.42.60.11

iptables -t nat-A POSTROUTING -s 10.0.2.0/22 -o eth0 -j SNAT --to-source 124.42.60.12

扩大子网,增加广播风暴。

 

课外阅读:

(1)生产环境大于254台机器网段划分及路由解决方案详解01

http://v.youku.com/v_show/id_XNTAyMjAwMzI0.html

 

 

(2) linux route命令深入浅出与实战案例精讲

http://oldboy.blog.51cto.com/2561410/1119453

http://oldboy.blog.51cto.com/2561410/974194

必看3遍以上。

 

 

 

2.7有关iptables的内核优化

有关iptables的内核优化

调整内核参数文件/etc/sysctl.conf

以下是我的生产环境的某个服务器的配置:

------------解决time-wait过多-------------

net.ipv4.tcp_fin_timeout = 2

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_keepalive_time = 600

net.ipv4.tcp_max_tw_buckets = 36000

----------------------------------

net.ipv4.ip_local_port_range = 4000  65000

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

----------------------------------

#dmesg里面显示 ip_conntrack: table full, dropping packet.的错误提示,什么原因?如何解决?

#iptables优化

net.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_tcp_timeout_established= 180

net.netfilter.nf_conntrack_tcp_timeout_time_wait= 120

net.netfilter.nf_conntrack_tcp_timeout_close_wait= 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait= 120

 

net.ipv4.tcp_syncookies= 1

#→表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_keepalive_time= 1200

#→表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

net.ipv4.ip_local_port_range= 4000    65000

#→表示用于向外连接的端口范围。缺省情况下很小。

net.ipv4.tcp_max_syn_backlog= 8192

#→表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

net.ipv4.tcp_max_tw_buckets= 30000

 #→表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为 180000,对于ApacheNginx等服务器来说可以调  整低一点,如:改为5000-30000,不同业务的服务器也可以给大一点,比如lvs,squid

#上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。

#此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

 

 

 

kernel.shmall = 2097152 # 可以使用的共享内存的总量。

kernel.shmmax = 2147483648 # 最大共享内存段大小。

kernel.shmmni = 4096 # 整个系统共享内存段的最大数目。

kernel.sem = 250 32000 100 128 # 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。

fs.file-max = 65536 # 系统中所允许的文件句柄最大数目。

net.ipv4.ip_local_port_range = 1024 65000 # 应用程序可使用的IPv4端口范围。

net.core.rmem_default = 1048576 # 套接字接收缓冲区大小的缺省值

net.core.rmem_max = 1048576 # 套接字接收缓冲区大小的最大值

net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值

net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值

fs.aio-max-nr = 1048576 文件系统最大异步io

这里,对每个参数值做个简要的解释和说明。

(1)shmmax:该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于Oracle来说,该缺省值太低了,通常将其设置为2G。

(2)shmmni:这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。

(3)shmall:该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。

(4)sem:该参数表示设置的信号量。

(5)file-max:该参数表示文件句柄的最大数量。文件句柄设置表示在Linux系统中可以打开的文件数量。

修改好内核以后,执行下面的命令使新的配置生效。

kernel.shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系,这里设定的为4GB,即"4294967295/1024/1024/1024=4G"。

  kernel.shmmni:表示单个共享内存段的最小值,一般为4kB,即4096bit。来源:www.examda.com

  kernel.shmall:表示可用共享内存的总量,单位是页,在32位系统上一页等于4kB,也就是4096字节。

  fs.file-max:表示文件句柄的最大数量。文件句柄表示在linux系统中可以打开的文件数量。

  ip_local_port_range:表示端口的范围,为指定的内容。

  kernel.sem:表示设置的信号量,这4个参数内容大小固定。

  net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)。

  net.core.rmem_max :表示接收套接字缓冲区大小的最大值(以字节为单位)

  net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)。

  net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)。