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.