복붙노트

[SPRING] Tomcat 서버가 "외부 적으로"작동하지 않습니다.

SPRING

Tomcat 서버가 "외부 적으로"작동하지 않습니다.

내 tomcat 서버를 설정하고 LOCAL-HOST에서 작동하지만 외부에서 실행할 수는 없습니다. 일부 설정을 변경해야합니까? 모든 것을 시도했지만 다른 곳에서는 작동하지 않는 것 같습니다 ... 로컬 호스트에서 완벽하게 작동하기 때문에 이상합니다.

해결법

  1. ==============================

    1.따라서 봄 부팅 응용 프로그램에서 Tomcat을 실행 중이며 Maven 봄 부팅 플러그인에서 시작하여 localhost에서 수신하지만 LAN IP 주소를 사용하여 연결할 수 없습니다.

    따라서 봄 부팅 응용 프로그램에서 Tomcat을 실행 중이며 Maven 봄 부팅 플러그인에서 시작하여 localhost에서 수신하지만 LAN IP 주소를 사용하여 연결할 수 없습니다.

    그냥 메모 - 그래서 사람들이 도와주고 싶어하지만 그것은 필요한 정보를 얻기 위해 보물 사냥해서는 안됩니다.

    먼저

    어떤 IP 주소와 포트가 수신 대기 중인지 확인하십시오 : 봄 부트 로그는 대개 호스트 이름 (예 : mymac.local)을 알려주며 포트는 8080 (http), :

      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v1.2.3.RELEASE)
    
    
    2015-04-29 09:14:33.269  INFO 7031 --- [main] hello.Application  Starting Application v0.1.0 on mymac.local with PID 7031 (/Users/foo/Development/java/springframework/gs-spring-boot/complete/target/gs-spring-boot-0.1.0.jar started by foo in /Users/foo/Development/java/springframework/gs-spring-boot/complete)
    2015-04-29 09:14:35.072  INFO 7031 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
    2015-04-29 09:14:35.506  INFO 7031 --- [main] o.apache.catalina.core.StandardService   : Starting service Tomcat
    2015-04-29 09:14:35.507  INFO 7031 --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.0.20
    

    그리고 규칙에 따라 Tomcat은 모든 IP 주소 (0.0.0.0)에서 수신을 시작하므로 이상하게 작동하지 않습니다.

    이렇게하는 또 다른 방법은 netstat을 사용하는 것입니다. Max / Linux :

    $ netstat -an  | grep 8080
    tcp46      0      0  *.8080                 *.*                    LISTEN     
    

    창문에

    C:\> netstat -an | find "8080"    
      TCP    0.0.0.0:8080            0.0.0.0:0              LISTENING
      TCP    [::]:8080               [::]:0                 LISTENING
    

    앱이 0.0.0.0 또는 192.168.0.100과 같은 실제 IP를 수신하는 경우 방화벽을 사용하거나 네트워크에서 차단 된 것으로 보입니다.

    앱이 localhost / 127.0.0.1에서만 듣고 있다면이 질문과 같이 실제 IP를 사용하도록 tomcat에 알려야합니다. localhost 외에 IP 주소로 요청을 듣기 위해 Spring과 통합 된 임베디드 Tomcat을 구성하는 방법은 무엇입니까?

    둘째로 curl / telnet / netcat과 같은 간단한 클라이언트와 기본 연결을하십시오. 브라우저, 특히 IE는 Windows 그룹 정책과 같은 제한을받을 수 있습니다. 이는 많은 정보가 거의 또는 전혀 작동하지 못하게합니다.

    따라서 다른 머신에서 tomcat 포트로 telnet 할 수 있는지 확인하십시오 (tomcat이 192.168.0.100에서 실행 중이라고 가정).

    $ telnet 192.168.0.100 8080
    Trying 192.168.0.100...
    Connected to localhost.
    Escape character is '^]'.
    

    연결된 메시지가 표시되면 연결이 가능하므로 브라우저에서 작동하지 않는 경우 다른 오류가 있습니다.

    바로 거절되면 2 대의 컴퓨터 사이에 경로 / 연결이 없습니다. 이것은 보통 당신의 바람둥이가 정확한 IP 주소를 듣지 않는다는 것을 의미합니다.

    $ telnet 192.168.0.100 8080
    Trying  192.168.0.100...
    telnet: connect to address  192.168.0.100: Connection refused
    telnet: Unable to connect to remote host
    

    연결하는 메시지에 그냥 매달려 있으면 아마 방화벽 일 것입니다.

    $ telnet 192.168.0.100 8080
    Trying 192.168.0.100...
    
  2. from https://stackoverflow.com/questions/29885274/tomcat-server-not-working-externally by cc-by-sa and MIT license