Я работаю над сервером 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.
Есть идеи, что мне не хватает?
Я только что нашел способ, который сделал это возможным:
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=3001 --permanent
firewall-cmd
add-forward-port добавит правила в PREROUTING
Цепочка NAT, которая применима только для пакетов, сгенерированных извне. Если вы пытаетесь подключиться к localhost (или локальному IP-адресу сервера) через порт 80 на сервере, он потерпит неудачу, потому что эти пакеты никогда не проходят через PREROUTING
.
Если вы подключаетесь к порту 80 из внешнего источника, тогда firewall-cmd
перечисленные вами должны работать правильно. Я бы посоветовал проверить, действительно ли ваш интерфейс находится в «публичной» зоне.
Вы также можете выполнить следующую команду, чтобы получить количество пакетов для правила, чтобы убедиться, что оно действительно выполняется:
iptables -t nat -vnL | grep 8080 -B1
Если счетчик пакетов увеличивается при каждой попытке, значит, брандмауэр работает правильно, и у вас есть проблема за пределами брандмауэра (возможно, ACL в JBOSS?). Если количество пакетов не увеличивается при каждой попытке, правило брандмауэра вообще не срабатывает, что говорит о том, что вы либо находитесь в неправильной зоне, либо существует какое-то другое правило, вытесняющее правило переадресации портов.