Назад | Перейти на главную страницу

Заставить программу использовать только определенный локальный порт

Например: Firefox использует случайные номера локальных портов для подключения к веб-сайтам. (Десятки разных локальных портов могут использоваться в любой момент времени.) Можно ли заставить программу использовать только определенные локальные порты? (Установить только локальный порт, целевой порт может быть любым.)

Напишите библиотеку, которая перехватывает и перезаписывает bind(2) позвонить и использовать $LD_PRELOAD чтобы загрузить его под выбранным приложением.

Я не знаю никакого способа сделать это, кроме изменения исходного кода, и даже тогда Firefox может вызывать закрытый сетевой код в Windows (т.е. он может использовать библиотеки Visual C ++).

Я не понимаю, зачем тебе это нужно. Большинство брандмауэров имеют разные правила для исходящих и входящих соединений, и ограничение исходящих портов довольно необычно, поскольку они прослушивают только трафик из определенного сеанса TCP. Порты назначения гораздо более чувствительны к безопасности, поскольку они открыты и прослушивают без установленных сеансов.