Làm thế nào an toàn để thay đổi phạm vi Cổng Ephemeral Linux


14

Tôi thấy phạm vi cổng phù du sau đây trên hộp Linux của mình.

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

Tôi muốn mở rộng phạm vi cổng để bắt đầu từ khoảng 16000. Một câu hỏi nhanh ở đây là: làm thế nào an toàn để thay đổi phạm vi trong ngữ cảnh sang các ứng dụng khác? Các ứng dụng khác sẽ bị ảnh hưởng bởi sự thay đổi này? Tôi hiểu rằng một ứng dụng chỉ bị ảnh hưởng nếu nó đang sử dụng (các) cổng trong phạm vi cổng được chỉ định. Nhưng nói chung, làm thế nào các loại vấn đề được giải quyết nó?


Tôi không nghĩ rằng có bất kỳ ảnh hưởng nào đến các ứng dụng khác, nhưng tôi không chắc chắn. Câu hỏi thú vị.
ikrabbe

Đúng. Ngay cả tôi đã cố gắng tra cứu một số tài liệu khác và tôi không tìm thấy bất kỳ ảnh hưởng nào đến các ứng dụng khác. Hai liên kết sau đây là những giải thích tuyệt vời về lý do tại sao tôi phải đối mặt với vấn đề này: vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html ncftp.com/ncftpd/doc/misc /ephemeral_ports.html
Ashwin Tumma

@ike Ứng dụng sẽ thất bại.
goldilocks

3
Chỉ để hoàn thiện, cú pháp chỉnh sửa phạm vi số cổng như sau: $ sudo sysctl -w net.ipv4.ip_local_port_range = "15000 61000"
Ashwin Tumma

Câu trả lời:


10

Thay đổi phạm vi cổng phù du có thể gây ra vấn đề nếu bạn đang sử dụng Mesos .

Mesos quảng cáo tài nguyên của máy chủ lưu trữ ra các Khung Mesos khác nhau mà sau đó có thể chọn sử dụng các tài nguyên được quảng cáo. Các tài nguyên được quảng cáo bao gồm CPU, bộ nhớ, cổng, v.v ... Bộ cổng mặc định mà Mesos quảng cáo là 31000-32000 . Điều này tránh được xung đột với phạm vi cổng phù du Linux mặc định là 32768-61000 .

Đáng chú ý, Mesos không biết liệu một cổng có được sử dụng bởi một số quy trình khác hay không, nó chỉ theo dõi việc gán các cổng cho các thực thể mà nó phối hợp ( Mesos T Nhiệm vụ & Mesos Executors ). Vì vậy, nếu bạn thay đổi phạm vi cổng phù du sao cho trùng với phạm vi cổng Mesos, có thể một số quy trình tùy ý sẽ sử dụng cổng phù du thực sự là một trong những "cổng Mesos" đó. Điều này có thể dẫn đến việc Mesos cung cấp cổng đó cho Khung Mesos , sẽ gặp phải những thất bại dường như ngẫu nhiên của Người thực thi Mesos và / hoặc Nhiệm vụ Mesos vì họ sẽ không thể liên kết với cổng đó.

Nếu bạn cần tăng phạm vi cổng phù du của mình và cũng cần chạy Mesos, thì bạn có thể sửa đổi các cổng được quảng cáo thông qua tham số cấu hình mesos-slave(sắp được đổi tên thành mesos-agent) --resources.


4

Bạn có thể nhận được danh sách các dịch vụ có khả năng bị ảnh hưởng bằng cách tìm kiếm những gì trong phạm vi đó trong /etc/servicestệp cục bộ của mình , ví dụ:

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

Hoặc tại nơi có thẩm quyền:

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

Cảm ơn kịch bản awk, nó chắc chắn giúp xác định các cổng được liệt kê trong các dịch vụ!
Ashwin Tumma
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.