Подход, предложенный Солнечным и CesarB:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
хорошо работает, но это имеет маленький недостаток - это не препятствует тому, чтобы пользователь соединился непосредственно для портирования 8080 вместо 80.
Рассмотрите следующий сценарий, когда это сможет быть проблемой.
Скажем, у нас есть сервер, который принимает HTTP-соединения на порте 8080 и Подключения HTTPS на порте 8181.
Мы используем iptables для установления следующих перенаправлений:
80 ---> 8080
443 ---> 8181
Теперь, давайте предположим, что наш сервер решает перенаправить пользователя от страницы HTTP до страницы HTTPS. Если мы тщательно не переписываем ответ, он перенаправил бы к https://host:8181/
. На данном этапе мы завинчены:
https://host:8181/
URL и мы должны были бы поддержать этот URL, чтобы не повреждать их закладки. Я использую следующий подход:
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 1
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8181
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -m mark --mark 1 -j ACCEPT
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 8181 -m mark --mark 1 -j ACCEPT
Объединенный с правилом ОТКЛОНЕНИЯ по умолчанию о ВХОДЕ объединяют этот подход в цепочку, препятствует тому, чтобы пользователи соединились непосредственно с портами 8080, 8181
Походит на удар-valsort (5) наложение.
Я не использовал его сам, но Контрольный Вход, Dynamic Groups и Обратный Состав группы, который Maintenace не были слишком большим количеством стычки для установки, таким образом, Вы могли бы хотеть дать ему попытку.