Порты переадресации на Centos 7

9

Я работаю на сервере 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.  

Есть идеи, что мне не хватает?

zzzsys
источник
Что не так с запуском httpd или nginx перед ним?
Майкл Хэмптон
Ничего, я пытался не делать этого таким образом, если бы мог помочь.
zzzsys

Ответы:

10

Я просто нашел способ, который сделал это возможным для меня:

firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=3001 --permanent
just_user
источник
1
правильный +1 для вас. Мне пришлось приложить много усилий, чтобы добраться сюда.
Гуру
FirewallD не запущен
Стив Яковенко
@SteveYakovenko, тогда начало - хороший первый шаг.
just_user
0

firewall-cmdadd-forward-port добавит правила в PREROUTINGцепочку NAT, которая применима только для сгенерированных извне пакетов. Если вы пытаетесь подключиться к localhost (или локальному IP-адресу сервера) через порт 80 на сервере, произойдет сбой, потому что эти пакеты никогда не проходят PREROUTING.

Если вы подключаетесь к порту 80 из внешнего источника firewall-cmd, перечисленные вами данные должны работать правильно. Я бы посоветовал проверить, что ваш интерфейс действительно находится в «публичной» зоне.

Вы также можете выполнить следующую команду, чтобы получить количество пакетов в правиле, чтобы убедиться, что оно действительно выполняется:

iptables -t nat -vnL | grep 8080 -B1

Если при каждой попытке число пакетов увеличивается, значит, брандмауэр работает правильно, и у вас есть проблемы за брандмауэром (возможно, ACL на JBOSS?). Если пакеты не увеличиваются при каждой попытке, правило брандмауэра не применяется вообще, что говорит о том, что вы находитесь не в той зоне или есть какое-то другое правило, которое препятствует правилу переадресации портов.

alienth
источник
Спасибо, я проверю это. Соединение от внешнего источника.
zzzsys