Centos 7의 포워딩 포트


9

CentOS 7 서버에서 작업하고 있으며 JBoss가 원하는 방식으로 작동하도록 노력하고 있습니다. Java 8 및 JBoss (wildly) 8을 실행하고 있습니다. 기본 포트에서 설치되어 작동하는 포트를 얻었지만 JBoss가 포트 80에서 작동하게하고 싶습니다. 포트 80에서 작동하도록 할 수 있다는 것을 알고 있습니다. 루트로 실행하지만 좋은 생각이 아니며 루트로 실행하고 싶지 않습니다.

포트 80을 8080으로 전달하려고 시도했지만 작동하지 않았습니다. 나는 한 걸음 빠진 것 같지만, 내가 뭘 놓치고 있는지 모른다.

firewall-cmd를 사용하고 있습니다. 두 포트 (80 & 8080)를 모두 열었고 공개 영역에 가장 무도회를 활성화했습니다. 이 명령을 사용하여 포트를 전달했습니다.

firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080.  

내가 무엇을 놓치고 있는지 아십니까?


httpd 또는 nginx를 실행하는 데 어떤 문제가 있습니까?
Michael Hampton

아무것도 할 수 없다면 그렇게하지 않으려 고 노력했습니다.
zzzsys

답변:


10

방금 이것을 가능하게하는 방법을 찾았습니다.

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

1
당신을 위해 올바른 +1. 나는 여기에 도착하기 위해 많은 노력을 기울여야했다.
Guru

FirewallD가 실행되고 있지 않습니다
스티브 Yakovenko 보낸 사람에게

@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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.