포트 8080 및 22 리디렉션 2222가 작동하지 않습니다.

포트 8080 및 22 리디렉션 2222가 작동하지 않습니다.

2222로 리디렉션되는 몇 개의 포트 8080 및 22를 열려고 합니다. /etc/sysconfig/selinux.

8080을 사용하여 Tomcat에 액세스하고 포트 22를 사용하여 2222로 리디렉션합니다. 다음 명령을 사용할 때:

[root@tomcat7test bin]# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
[root@tomcat7test bin]# iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222

그런 다음 iptables를 다시 시작하면 웹페이지에 액세스할 수 없습니다.http://localhost:8080/

netstat를 실행하면 포트가 열려 있는 것을 볼 수 있습니다.

[root@tomcat7test ~]$ netstat -an | grep '22'
tcp        0      0 0.0.0.0:2222                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
unix  2      [ ACC ]     STREAM     LISTENING     9922   private/smtp
unix  3      [ ]         STREAM     CONNECTED     3848226 /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     3848225
[rkahil@tomcat7test ~]$ netstat -an | grep '8080'
tcp        0      0 :::8080                     :::*                        LISTEN

나는 항상 다음과 같은 메시지를 받습니다: 이 페이지는 웹 브라우저에 표시될 수 없습니다. 웹페이지의 접근성을 높이기 위해 제가 할 수 있는 제안이 있는 사람이 있나요?

답변1

에서https://askubuntu.com/questions/444729/redirect-port-80-to-8080-and-make-it-work-on-local-machine:

루프백 트래픽은 PREROUTING에서 전달되지 않고 OUTPUT에서만 전달됩니다.

따라서 다음을 추가해야 합니다. iptables -t nat -A OUTPUT -o lo -p tcp --dport 22 -j REDIRECT --to-port 2222

답변2

내 iptables 규칙에 ESTABLISHED를 추가해야 했습니다.

iptables -I INPUT -i eth0 -p tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT

관련 정보