我在 Linux 机器上看到以下临时端口范围。
sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
Run Code Online (Sandbox Code Playgroud)
我想将端口范围扩展到从 16000 左右开始。这里有一个简单的问题:将上下文中的范围更改为其他应用程序的安全性如何?其他应用程序会受到此更改的影响吗?我了解应用程序仅在使用指定端口范围内的端口时才会受到影响。但一般来说,这类问题是如何处理的呢?
eri*_*ers 11
如果您使用Mesos,更改临时端口范围可能会导致问题。
Mesos 将主机的资源广告给各种Mesos 框架,然后这些框架可以选择使用广告资源。通告的资源包括 CPU、内存、端口等。 Mesos 通告的默认端口集是31000-32000。这避免了与默认的 Linux 临时端口范围32768-61000发生冲突。
值得注意的是,Mesos 不知道某个端口是否被其他进程使用,它只是跟踪端口分配给它编排的实体(Mesos 任务和Mesos 执行器)。因此,如果您更改临时端口范围以使其与 Mesos 端口范围重叠,则很可能某个任意进程将使用实际上是这些“Mesos 端口”之一的临时端口。这可能导致 Mesos 将该端口提供给Mesos 框架,这会遇到其Mesos 执行器和/或Mesos 任务看似随机的故障,因为它们将无法绑定到该端口。
如果你需要增加你的临时端口范围,也需要运行Mesos,那么你可以通过修改通告的端口mesos-slave
(即将更名为mesos-agent
)的配置参数--resources
。
您可以通过查看本地文件中该范围内的内容来获取可能受影响的服务的列表/etc/services
,例如:
awk '/^#/ { next } $2+0 >= 16000 && $2+0 < 32768 { print }' /etc/services
Run Code Online (Sandbox Code Playgroud)
或者在权威的地方:
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
Run Code Online (Sandbox Code Playgroud)