net.ipv4.ip_local_port_range到底是干啥的?

前言

net.ipv4.ip_local_port_range这个参数网上好几种说法,有的说这个值决定了同一个客户端ip可以创建的连接数,也有的说客户端ip对同一个ip+port所创建的连接数,于是萌新决定自己测试一下。

下面是萌新测试环境的系统和内核版本

# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
# uname -a
Linux VM-8-14-centos 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

准备工作

首先需要在/etc/sysctl.conf文件中修改net.ipv4.ip_local_port_range的值。

vim /etc/sysctl.conf
net.ipv4.ip_local_port_range = 60001 60002

然后还需要执行sysctl -p命令使其立即生效

sysctl -p

然后我们得找个能访问的端口,可是萌新自己并没有多余的两台机器测试,那就只好白嫖一下了。

先用nslookup命令查看www.baidu.com的地址
可以看到www.baidu.com有个别名叫www.a.shifen.comwww.a.shifen.com有两个A记录

  • 110.242.68.3
  • 110.242.68.4

我们就用这两个IP来测试吧。
在这里插入图片描述

nc ip port可以连接到这个端口上,所以我们就用nc命令来进行测试

telnet命令也有类似的功能,用telnet命令测试也可以

相同目标IP不同目标端口

在这里插入图片描述

可以看到当我们执行到第三次的时候,报了一个Cannot assign requested address. 错误,这其实就是已经没有端口可以创建新的连接了。

下面我们用ss命令看一下tcp的连接状态
在这里插入图片描述

可以看到分别对110.242.68.3:22110.242.68.3:22创建了2个连接。

多个目标IP相同端口

在这里插入图片描述

同样,在第三次也提示出了Cannot assign requested address.

再用ss命令看看连接状态
在这里插入图片描述

发现确实也根据创建了4个连接。

多个目标IP不同端口

在这里插入图片描述

也提示了2次Cannot assign requested address.

并且也创建了4个连接
在这里插入图片描述

总结

经过我们的测试,确认net.ipv4.ip_local_port_range确实是客户端ip对同一个ip+port可以创建的连接数。

net.ipv4.ip_local_port_range的默认值为32768 61000,也就是说可以对同一个服务器的ip+port创建28233个连接,如果觉得不够可以改大一些,萌新看了一下萌新公司运维配置的为10000 61000,不过需要注意的是不要改的占用正常服务监听的端口范围。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值