更改Linux临时端口范围有多安全?


14

我在Linux机器上看到以下临时端口范围。

sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768    61000

我想将端口范围从16000开始扩展。这里的一个快速问题是:将上下文范围更改为其他应用程序有多安全?此更改会影响其他应用程序吗?我了解,仅当应用程序使用指定端口范围内的端口时,它才会受到影响。但是总的来说,这些问题是如何解决的?


我认为这对其他应用程序没有任何影响,但是我不确定。有趣的问题。
ikrabbe

对。即使我尝试查找其他文档,也未对其他应用程序产生任何影响。以下两个链接很好地解释了我为什么遇到此问题的原因: vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html ncftp.com/ncftpd/doc/misc /ephemeral_ports.html
Ashwin Tumma,2015年

@ikrabbe如果您的浏览器打开了一个短暂的端口来联系网站,那么某人/事试图启动一个恰巧使用该端口的应用程序,则对其他应用程序肯定有影响。该应用程序将失败。
goldilocks 2015年

3
仅出于完整性考虑,用于编辑端口号范围的语法如下:$ sudo sysctl -w net.ipv4.ip_local_port_range =“ 15000 61000”
Ashwin Tumma

Answers:


10

如果使用Mesos,更改临时端口范围可能会导致问题。

Mesos将主机的资源发布到各种Mesos框架中,然后可以选择使用发布的资源。播发的资源包括CPU,内存,端口等。Mesos播发的默认端口集为31000-32000。这样可以避免与默认的Linux临时端口范围32768-61000发生冲突。

值得注意的是,Mesos不知道某个端口是否被其他进程使用,它只是跟踪端口对它所协调的实体的分配(Mesos TasksMesos Executors)。因此,如果更改临时端口范围以使其与Mesos端口范围重叠,则可能有一些任意过程将使用临时端口,而该临时端口实际上是那些“ Mesos端口”之一。这可能会导致Mesos将端口提供给Mesos框架,由于Mesos执行器和/或Mesos任务无法绑定到该端口,因此会遇到看似随机的故障。

如果需要增加临时端口范围并且还需要运行Mesos,则可以通过mesos-slave(即将重命名为mesos-agent)配置参数来修改发布的端口--resources


4

通过查看本地/etc/services文件中该范围内的内容,可以获取可能受影响的服务的列表,例如:

awk '/^#/ { next } $2+0 >= 16000 && $2+0 < 32768 { print }' /etc/services

或在权威的地方:

wget http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
awk -F, '$2+0 >= 16000 && $2+0 < 32768 { print }' service-names-port-numbers.csv

感谢awk脚本,它绝对有助于识别服务中列出的那些端口!
Ashwin Tumma
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.