본문 바로가기
공부/java & Spring

[connect domain] Spring 프로젝트 외부 컴퓨터로 접속하기

by 고기 2023. 4. 19.

0. 서버에 ssl 인증서 적용하기

1. application.yml 수정

2. iptime 포트포워딩 설정

3. 도메인 연결 방법1 (iptime ddns 활용)

4. 도메인 연결 방법2 (도메인 구입 후 연결)


약 일주일간의 기나긴 삽질 끝에 도메인 설정이 끝나서 포스트를 남긴다.

근데 내가 네트워크/보안쪽에 지식이 얕다못해 없는 것과 진배없다보니 보안 이슈가 생길 수 있을거란 말이지...

그러니까 실제 서비스 적용하는건 본인이 좀 더 알아봐야 할 것 같고 일단은 테스트용으로만 따라해보기를 권장한다.

 

사실 외부에서 본인 컴퓨터에 접속하려면 일단은 포트포워딩과 포워딩 할 웹서버 포트를 맞춰주기만 해주면 된다.

  1) 본인 ip 포트포워딩 설정하기

  외부 포트와 내부 포트를 설정해주면 된다. (ex. 1234)

  2) 웹서버 포트 변경하기

  application.properties / application.yml에서 포트번호 설정 (ex. localhost:1234) 

이렇게 세팅하기만 하면 본인의 ip를 사용해서 외부에서 접속할 수 있다. (※ 2. iptime 포트포워딩 설정 참고)

 

근데 이제 도메인을 곁들이면 귀찮은 일이 추가된다.

  1) 본인 ip 포트포워딩 설정하기

  2) 웹서버 포트 변경하기

  여기까지는 위의 설정과동일하다.

  3) 웹서버 http에서 https 변경하기

  https로 변경해주기 위해 ssl 인증서를 적용해주면 된다. (※ 0. 서버에 ssl 인증서 적용하기 참고)

  4) 업체에서 도메인 구입 후 DNS 설정하기

  도메인을 구입하고 본인이 구입한 도메인에 서버 ip, 호스트명, 포트번호 등을 설정해주면 된다.

  설정하는 방법은 도메인 판매 업체에 따라 다르겠지만 설정해야 하는 내용은 동일하다.

 

참고로 네트워크 상위에... 그러니까 모뎀 등을 사용해서 공유기를 2차적으로 연결하는 경우 포트포워딩은 포기하면 된다.

본인이 모뎀의 환경설정을 할 수 있으면 모뎀 내부에서 해당 옵션을 설정해주면 된다고 하는데 나는 안해봐서 모르겠다.

또 아파트의 경우 가끔 여러 세대 라인을 묶고 외부에서 라우터로 분배해주는 방식을 사용하는 곳도 있는데 역시 포기하면 된다.

뭐... 본인이 해당 라우터를 찾아서 해킹할 능력이 있으면 모를까... 애초에 그럴 수 있었으면 이런거 검색하지도 않았겠지

 

0. 서버에 ssl 인증서 적용하기

본문에서는 ssl 적용을 전제로 설명하고 있지만 ssl 인증서 적용은 선택사항이다.

도메인을 구입해서 다른 사람들에게 공유해줄 목적이라면 일반적으로 여기까지 진행해보는게 좋을 것 같다.

https://1545154.tistory.com/110 

 

[ssl 인증서 설치] Spring boot 무료 ssl 인증서 설치

1. 사이트 접속 2. 인증서 생성에 필요한 파일 다운로드 3. 인증서 생성 이전 글에서 어차피 정식 서비스 할 것도 아니라 대충 테스트 ssl 인증서를 만들고 끝낼려했는데 문제가 생겼다. 생각해보

1545154.tistory.com

 

1. application.yml 수정

먼저 application.properties 또는 application.yml 파일을 수정하자

 

내 application.yml 전체 코드다. application.properties 파일도 같은 방식으로 똑같이 적용하면 된다.

모자이크 한부분은 필요없는부분이고 server: tomcat: 에서 address:와  port: 만 확인하면 된다.

1) address

  모든 ip가 접근가능할 수 있도록 하기 위해 address를 0.0.0.0으로 설정해준다.

  ※ 참고 100.0.0.0. -> 100으로 시작하는 모든 ip를 뜻함 (100.x.x.x)

2) port

  일단 프로젝트에 ssl 적용을 하는 것을 전제로 만들고 있기 때문에 https 기본포트로 설정했는데 권장하지는 않는다.

  이 부분은 도메인 설정하는 부분이랑 연관되어 있어서 다시 언급하겠다.

  아무튼 기본포트란 http는 80이고 https는 443이다.

  참고로 http포트를 80으로 설정하거나 https포트를 443으로 설정하면 뒤에 포트번호를 붙이지 않아도 된다.

 

예를들어 포트를 기본포트로 설정하면 이런식으로 localhost만으로 접속할 수 있다.

다시 한 번 말하지만 그닥 권장하는 방법은 아니다.

 

2. iptime 포트포워딩 설정

글이 너무 길어져서 나눴다. 참고하자.

https://1545154.tistory.com/106

 

[포트포워딩] iptime 포트포워딩 설정

1. iptime 포트포워딩 설정 본문에 spring 관련 내용은 없지만 해당 글은 spring boot 도메인을 설정하는 과정을 설명하고 있다. url접속할 때 톰캣 서버를 예시로 사용하고 있으니 관련 내용은 아래 링

1545154.tistory.com

 

 

3. 도메인 연결 방법1 (iptime ddns 활용)

마찬가지로 글이 길어져서 나눴다. 해당 링크 참고하면 된다.

도메인을 구입하기 곤란한 상황이라면 이렇게 임시로 사용해도 될 것 같다.

https://1545154.tistory.com/107

 

[iptime DDNS 설정] 도메인 구입 없이 iptime DDNS 기능을 사용해서 지정한 도메인으로 외부 컴퓨터에서

1. iptime ddns 활용한 도메인 연결 이 글은 spring boot 도메인을 설정하는 과정이다. 본문에 spring 관련 내용은 없지만 포트포워딩 설정 후 url 접속할 때 톰캣 서버를 예시로 사용하고 있으니 관련 내

1545154.tistory.com

 

4. 도메인 연결 방법2 (도메인 구입 후 연결)

마찬가지로 글이 길어져서 나눴다. 해당 링크 참고하면 된다.

https://1545154.tistory.com/108

 

[도메인 및 DNS 레코드 설정] 업체에서 구입한 도메인을 본인 컴퓨터(서버) ip와 연결해보자

1. 도메인 업체 2. 도메인 구입 3. DNS 레코드 설정 이 글은 spring boot 도메인을 설정하는 과정이다. 본문에 spring 관련 내용은 없지만 포트포워딩 설정 후 url 접속할 때 톰캣 서버를 예시로 사용하고

1545154.tistory.com

 

끝!

댓글