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

Как я могу подключить публичный порт к другому внутреннему порту?

Я настраиваю 2-й сервер Plex и решил использовать порт 32401 вместо порта 32400 так как у меня уже есть сервер Plex, работающий на этом порту.

Моя проблема в том, что Plex хочет [publicip]:32401 указать на [localip]:32400 но мой маршрутизатор может указывать только общедоступные порты на одни и те же локальные порты (так что нет [publicip]:32401 -> [localip]:32400).

Есть ли способ для Linux прослушивать порт 32401 и "перенаправить" его внутренне на порт 32400? Я видел похожие команды iptables, но ни одна из них не подходила для моего случая использования.

Я решил использовать RTFM и нашел свое исправление на странице Plex в Arch Wiki. Выполнив эту команду, я смог перенаправить порт 32401 к 32400:

iptables -t nat -A PREROUTING -p tcp --dport 32401 -j REDIRECT --to-port 32400

Вы можете использовать это правило iptables

iptables -t nat -A OUTPUT -d LOCAL_IP -p tcp --dport 32401 -j DNAT --to-destination LOCAL_IP:32400

вместе с этой конфигурацией ядра

sysctl -w net.ipv4.conf.all.route_localnet=1

и весь трафик для LOCAL_IP: 32401 будет перенаправлен на LOCAL_IP: 32400