카테고리 없음

putty & ssh 터널링을 이용해서 DB 연결 해보자(외부서버,내부서버)

Wooni0477 2021. 8. 19. 21:30
반응형

회사생활을 좀더 쉽게하기 위해 나만의 설정법을 적어둡니다.

 

어디까지나 참고용으로 사용하시길 바랍니다.

 

· 구성환경

로컬 컴퓨터 : 윈도우10

서버1 : centOS

서버2 : centOS

 

· 필요 유틸

Putty

 

· 전반적인 환경

그림1

· 터널링을 하는이유

그림1 환경은 DB서버의 3306포트를 접근하기 위해서는 오직 일반서버에서 접근 할 수 밖에 없다.

사용자컴퓨터에서 다이렉트로 DB서버를 접근 할 수 없다.

할수 있는 방법은 일번서버를 원격접속하고, 일반서버에서 또 DB서버를 원격접속하여 DB를 접근 할 수 밖에 없다.

이렇게 고생하는 이유는 고객이 DB서버에서 포트를 열어주지 않는것이다.

회사생활하면서 고객이 포트를 열어주지 않는 경우는 비일비재하다.

개발을 하기 위해 sql툴을 사용해야 되는데 여간 연결하기 힘들다.

그래서 putty의 기능 중 터널링기술과 ssh를 사용하여 sql툴 연결해보자

(p.s. 야근을 하는중에 글 작성한다.....그림이 개판이더라도 이해바란다.)

(p.s2. 야근이 아니더라도 그림 못그린다. 나도 잘그리고 싶다)

 

· 이론

▶ 그림1에서 ①구간

putty를 이용해서 사용자컴퓨터와 일반서버사이의 터널링을 구축한다.

사진2

▶ 그림1에서 ②구간

ssh를 이용해서 일반서버와 DB서버사이의 터널링을 구축한다.

사진3

 

 

· 실전

▶ 그림1에서 ①구간 구축

1.putty session 설정

host 주소를 일반서버주소

포트는 22번 포트(ssh) 설정

구축1-1

2. putty ssh - tunnel 설정

ssh-tunnels 메뉴로 이동 후

다음 값을 입력한다.

입력을 다하면 Add를 누른다.

그러면 다음 그림과 같이 한줄이 추가된다.

Source port : 2000
Destination : 127.0.0.1:3000

구축1-2

3. Open을 눌러 일반서버 연결

 

 

 

 

 

▶  그림1에서 2구간

1.  ssh 명령어 입력

ssh -L 3000:192.168.0.20:3306 root@192.168.0.20

(ssh -L 일반서버(local)포트:DBIP:db포트 root@DBIP)

구축2-1

 

 

2. 연결 완료

구축2-2

 

3. 포트확인, 일반서버를 실행후(db서버아님) 명령어로 포트확인

netstat -nap | grep 3000

구축2-3

· sql 툴 연결 확인

server host는 localhost로 적어야 된다. (이유는 대충 알것 같지만 확실치 않아 아시는분 댓글 부탁드려요)

구축 3-1
구축3-2

반응형