티스토리 뷰

Pytorch나 Tensorflow를 쓰다보면 Tensorboard를 사용할 일이 있다. 개인적으로는 실시간으로 시각화해서 보여주기 때문에 상당히 유용하게 쓰고 있다. 그러나 대부분은 SSH 서버를 통해서 연구를 진행하다보니 Tensorboard도 SSH서버에서 firefox 등을 통해서 사용하게 된다.

 

그러나 SSH를 통해서 실행된 firefox 등이어서 그런가? 원래 사용하는 것보다 느리게 변하고 네트워크 환경에 따라서 버벅이는 현상이 있기 때문에 사용하기에 어려움이 존재한다. 이를 서버 밖의 컴퓨터에서 사용할 수 있는 해결 방법을 찾아 돌아다녔다. 해결 방법은 SSH Tunneling을 사용하는 것이다. 이번 글에서는 XShell과 MobaXterm의 2가지 환경에서 해당 해결방법을 적용하는 법에 대해서 알아보고자 한다.

1. SSH Tunneling에 대해서

서버에 접속하기 위해서는 IP와 Port가 필요하다. IP는 서버의 주소, Port는 해당 서버에서 특정 작업을 위해 들어가는 문이 어디인지를 알려준다. 때문에 1개의 서버는 1개의 IP주소와 여러개의 Port를 가진다.

1개의 서버는 여러개의 Port를 가진다

Port는 외부에서 들어올 수 있는 경로이기 때문에 공격에 방어하기 위해 Firewall을 이용하여 접근을 차단한다. 대부분의 Port들은 이러한 Firewall에 의해서 차단되어 있다. 서버 관리자에 의해 허용된 Port만이 외부 사용자가 접근할 수 있는 것이다. 그러면 허용되지 않은 Port로 접근해야 하는 특정 data는 어떻게 받을 수 있을까?

외부 접근이 가능한 Port

2가지가 있을 수 있다. 우선 서버 관리자의 허락을 얻는 방법이다. 이 방법은 규모가 작다면 편할 수 있지만 Port를 점점 열수록 공격에 취약해지게 된다. 다음은 이미 열려있는 Port를 통해서 우회해서 Data를 받는 방법이다. 이러한 방법 중 SSH를 이용한 방법을 SSH Tunneling이라고 한다.

외부에서 접근할 수 있는 방법

우리는 이 SSH Tunneling을 통해서 서버에서 실행되고 있는 Tensorboard에 외부에서 접속하여 Data를 확인하고자 한다. 대중적으로 쓰고 있는 XShell과 MobaXterm을 통해서 알아보자.

2. XShell 적용방법

Xshell에서 SSH가 이미 있다고 가정하고 시작한다. Tunneling으로 연결하고자 하는 SSH를 선택해서 등록정보에 들어간다.

우측 클릭 후 등록정보로 들어간다

해당 부분에서 "터널링"이라고 적힌 부분을 클릭한다. SSH 항목의 하위 항목에 있다.

등록정보-터널링 Section의 창

해당 부분에서 [추가] 버튼을 누른다. 버튼을 누르면 새로운 창이 뜨면서 다양한 것을 설정하게 한다.

포워딩 규칙

종류는 서버에서 받아올 것이므로 Local로 설정한다.

 

원본 호스트는 내가 사용하는 컴퓨터에서 어떻게 접근할 것인지를 묻는 것이다. 대부분 localhost를 사용하면 127.0.0.1 로 접근이 가능해진다. 

수신대기 포트는 내가 사용하는 컴퓨터의 어떤 Port로 접근하도록 만들 것인지에 대한 설정이다. 원하는 Port를 적어주면 된다.

 

대상 호스트는 접근하는 SSH 서버내에서 어떤 주소로 접근하는 지에 대한 것이다. Tensorboard는 Local 기본 접근이므로 127.0.0.1로 설정했다.

대상 포트접근하는 SSH 서버내에서 어떤 포트로 접근하는 지에 대한 것이다. Tensorboard는 6006을기본으로 사용한다.

설명은 그냥 제목이라 생각하고 적어주면 된다.

 

이렇게 한 뒤에 인터넷 브라우저를 열고 (크롬, 웨일, 파폭 등) 방금 설정한 주소인 

127.0.0.1:6006

을 주소창에 적어주면 외부에서도 가볍게 볼 수 있다.

3. MobaXterm 적용방법

MobaXterm은 위쪽 Toolbar에 Tunneling 버튼이 존재한다. 해당 버튼을 눌러주자.

Tunneling 설정 들어가는 방법

그럼 아래와 같이 뜨는데, New SSH Tunnel을 눌러주자.

Tunneling 설정창

해당 버튼을 누르면 설정창은 아래와 같이 뜨는데, 각각의 항목에 대해서 알아보자.

Tunneling 설정방법

Forwarded Port는 내가 쓰는 컴퓨터에서 어떤 Port로 받을 것인지에 대한 이야기 이다.

 

SSH server는 사용하고자 하는 SSH 서버의 IP 주소를 적어주면 된다.

[GPU]로 나와 있는 것은 ID/Password와 관련 된 부분이다.

SSH port는 SSH에 접근하기 위한 Port를 적어주면 된다.

 

Remote server접근하는 SSH 서버내에서 어떤 주소로 접근하는 지에 대한 것이다. Tensorboard는 Local 기본 접근이므로 127.0.0.1로 설정했다.

Remote port 접근하는 SSH 서버내에서 어떤 포트로 접근하는 지에 대한 것이다. Tensorboard는 6006을기본으로 사용한다.

 

해당 부분을 저장한 뒤에 Save를 눌러주면 된다.

Tunneling 설정창

이렇게 나온 뒤에는 위에 나온 것과 같이 재생버튼을 눌러주어야 실행된다.

 

이렇게 한 뒤에 인터넷 브라우저를 열고 (크롬, 웨일, 파폭 등) 방금 설정한 주소인

127.0.0.1:6006

을 주소창에 적어주면 외부에서도 가볍게 볼 수 있다.

4. 결론

어렵게 SSH 서버 내에서 브라우저 띄우고 보지 말고, 속 편하게 만들어서 열심히 연구하자!!

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함