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