TCP-клиенты, подключающиеся за пределами определенного диапазона портов.

Мне кажется, у вас есть список файлов в файле file.list, который вы хотите переименовать только для тех файлов, которые имеют суффикс.bed и удалить из реальных файлов?

xargs -d'\n' -a file.list rename -n 's/\.bed$//'
0
03.12.2019, 15:09
1 ответ

net.ipv4.ip_local_port_rangeуправляет только «эфемерными» портами, к которым будет привязан сокет, когда для него вызывается connect()или listen()без привязки ранее, или когда bind()вызывается с портом = 0.

Он не будет принудительно использовать диапазон портов, которые внешние клиенты могут использовать при подключении к серверу. --Для этого можно использовать iptables или другой тип брандмауэра, хотя такая попытка будет совершенно бессмысленной..

Кроме того, ip_local_port_rangesysctl не будет препятствовать явному bind()подключению сокета к любому свободному порту >= 1024 (внутри или вне диапазона )перед вызовом connect()на нем.

Иногда вам нужно, чтобы сокет ipv4 и ipv6 был привязан к одному и тому же порту, и, поскольку для этого нет API, вы позволяете ядру выбрать порт для сокета ipv6 с помощью bind(port = 0), затем вызываете getsockname()и попробуйте привязать сокет ipv4 к тому же порту и промывайте/повторяйте процедуру, пока ядро ​​не выберет порт, свободный как для ipv4, так и для ipv6. Это то, что должны делать ssh-серверы, когда их просят выполнить удаленную переадресацию с помощью -R, но аргумент порта равен 0.

0
28.01.2020, 03:03

Теги

Похожие вопросы