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.  

知道我缺少什么吗?


在其前面运行httpd或nginx有什么问题?
迈克尔·汉普顿

没什么,如果我能帮忙的话,我尽量不要那样做。
zzzsys

Answers:


10

我刚刚找到了一种使之成为可能的方法:

firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=3001 --permanent

1
为您正确+1。为了到达这里,我不得不付出很多努力。
大师

FirewallD没有运行
史蒂夫雅科文科

@SteveYakovenko然后开始它是一个很好的第一步。
just_user

0

firewall-cmd的add-forward-port将规则添加到PREROUTINGNAT链,该规则仅适用于外部生成的数据包。如果您尝试在服务器端口80上连接到localhost(或服务器的本地IP),则会失败,因为这些数据包永远不会通过PREROUTING

如果您要从外部来源连接到端口80,则firewall-cmd您列出的内容应该可以正常工作。我建议验证您的界面是否确实在“公共”区域中。

您还可以运行以下命令来获取规则的数据包计数,以确保它确实被命中:

iptables -t nat -vnL | grep 8080 -B1

如果每次尝试的数据包计数都增加,则说明防火墙运行正常,并且您在防火墙之外还有其他问题(也许是JBOSS上的ACL?)。如果数据包在每次尝试中都没有增加,则防火墙规则根本没有被执行,这表明您位于错误的区域中,或者有其他规则抢占了端口转发规则。


谢谢,我会检查一下。连接来自外部来源。
zzzsys
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.