Я работаю на сервере CentOS 7 и пытаюсь заставить JBoss работать так, как я этого хочу. Я использую Java 8 и JBoss (дико) 8. Я установил те, которые работают на портах по умолчанию, но я хочу, чтобы JBoss работал на порте 80. Я знаю, что смогу заставить его работать на порте 80, если я Запустите его как root, но я знаю, что это не очень хорошая идея, и я не хочу запускать его как root в любом случае.
Я попытался переадресовать порт 80 на 8080, но я не получил его на работу. Я думаю, что пропускаю шаг, но я не знаю, что мне не хватает.
Я использую firewall-cmd. Я открыл оба порта (80 и 8080) и включил маскировку для публичной зоны. Я также использовал эту команду для переадресации порта
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080.
Есть идеи, что мне не хватает?
networking
centos
firewall
zzzsys
источник
источник
Ответы:
Я просто нашел способ, который сделал это возможным для меня:
источник
firewall-cmd
add-forward-port добавит правила вPREROUTING
цепочку NAT, которая применима только для сгенерированных извне пакетов. Если вы пытаетесь подключиться к localhost (или локальному IP-адресу сервера) через порт 80 на сервере, произойдет сбой, потому что эти пакеты никогда не проходятPREROUTING
.Если вы подключаетесь к порту 80 из внешнего источника
firewall-cmd
, перечисленные вами данные должны работать правильно. Я бы посоветовал проверить, что ваш интерфейс действительно находится в «публичной» зоне.Вы также можете выполнить следующую команду, чтобы получить количество пакетов в правиле, чтобы убедиться, что оно действительно выполняется:
iptables -t nat -vnL | grep 8080 -B1
Если при каждой попытке число пакетов увеличивается, значит, брандмауэр работает правильно, и у вас есть проблемы за брандмауэром (возможно, ACL на JBOSS?). Если пакеты не увеличиваются при каждой попытке, правило брандмауэра не применяется вообще, что говорит о том, что вы находитесь не в той зоне или есть какое-то другое правило, которое препятствует правилу переадресации портов.
источник