본문 바로가기
기본적인프로그래밍/python

[jupyter] 설치부터 외부접속 가능하게 설정 (Ubuntu, linux용)

by 인포메틱스 2020. 12. 17.
반응형

jupyter는 R에서 Rstudio와 같은 존재라고 할수가 있을 것 같습니다.

 

오늘은 ubuntu에서 간단한 jupyter의 설치부터 외부접속이 가능하게 세팅을 해보도록 하겠습니다.

 

윈도우의 경우에는 뒤에 외부접속이 가능하게 하는 부분을 참고하시면 유용하실것 같습니다.

 

1. jupyter 설치!

 

 

linux의 계열에서는 간단하게 다운이 가능합니다.

pip3 install jupyterlab
pip3 install jupyternotebook

 저같은 경우는 jupyter lab을 더 선호합니다. (뭔가 다루기가 쉽다고 해야할까요?)

 

이 다음으로 실행이 되는지 확인을 해보면! http://localhost:8888 혹은 http://127.0.0.1:8888로 설정이 되어 있을겁니다.

 

여기서 외부접속이 되기 위해서 제가 택한 방법은 jupyter의 기본 localhost, 127.0.0.1을 컴퓨터의 ip+port로 바꾸는 것입니다.

 

localhost, 127.0.0.1의 경우 컴퓨터 내의 아이피이기 때문에 바로 들어가기가 쉽지가 않습니다. (포트포워딩을 진행해줘야할것입니다.)

 

그렇기 때문에 jupyter의 기본 설정을 변경하기 위해선 다음과 같이 진행하면됩니다.

 

2. jupyter 설정변경!

 

jupyter-lab --generate-config
jupyter notebook --generate-config

 위와 같이 진행하면 설정 변경할수있는 파일의 경로가 나옵니다. (아래와 같이요)

/home/<사용자이름>/.jupyter/jupyter_notebook_config.py

 

그리고 그 설정 파일로 들어가서 다음과 같이 변경해주시면 됩니다. (앞에 #제거 필수!)

## The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = '' # jupyter 시작 위치변경!

#  configuration option.
c.NotebookApp.open_browser = False # True일시에 jupyter가 창으로 바로 뜸

#  The string should be of the form type:salt:hashed-password.
c.NotebookApp.password = '' # 비밀번호 추가하기!

#  any user can connect to the notebook server via ssh.
c.NotebookApp.password_required = True # 비밀번호 쓸꺼냐는 것 True로!

## The port the notebook server will listen on (env: JUPYTER_PORT).
c.NotebookApp.port = 8888 # 포트번호 변경하는 것을 추천드립니다. 해킹가능성?!


## The IP address the notebook server will listen on.
c.NotebookApp.ip = 'localhost' # 컴퓨터의 아이피로! (고정아이피필수!)

 

이렇게 변경을 하는데 비밀번호 추가는 어떻게 하는가?!

 

3.  비밀번호 추가!!

 

python3에 일단 들어 갑니다.

 

from notebook.auth import passwd
passwd()
# Enter password: 비밀번호쳐라  
# Verify password: 비밀번호쳐라
#output으로 hashing passwd가 나옵니다.

hashing 비밀번호를 위에 password에 쳐주시고, ''필수!  password_required는 True!

 

그다음 포트 바꿔주시고! 마지막으로! ip를! 컴퓨터가 갖는 아이피! (iptime 과 같은 공유기라면 192대가 되겠네요!)

 

를 추가해주시면 되는데! 개인 고정아이피가 있으면 그것 적용하시구요!

 

포트 포워딩!! 방법에 대해서 설명해 드릴께요! iptime기준으로 설명드립니다. (대부분 공유기 내부설정 들어가보면 비슷하게 설정가능합니다.)

 

4. 공유기 포트포워딩

 

 

고급설정 ->NAT/라우터 관리 -> 포트포워드 설정 들어가서

 

 

내부 ip주소는 컴퓨터가 갖는 ip! 외부 포트는 들어올때! 포트(아무렇게나 가능합니다.) !! 내부포트는 jupyter 설정 port!

 

그리곤 들어올때는! 192.168.0.100:외부포트! 로 들어오면됩니다! 그리고 이것은! 공유기를 공유한 컴퓨터에서 가능하고!

 

정말 외부! 집에서 회사컴에 들어가고싶다! 했을경우 세팅!

 

4-1. 외부접속 고급

공유기에서

고급설정 ->특수기능->DDNS설정 에서 iptime의 경우 공짜로 DDNS를 주는데

 

 

호스트이름, 사용자 id!추가해서 등록이 완료가 되면! 공유기 == 호스트이름.iptime.org가 되는 것입니다.

 

그리곤 접속을 할때는, 호스트이름.iptime.org:외부포트! 를 이용해서 jupyter에 들어갈수있습니다.

 

 


마지막으로 외부접속이 안된다! 싶으면 port를 열어두는것 확인해보세요!

 

그리고 jupyter 의 경우 보안이 정말 안좋은것같습니다. 로그인 한번하면 끌때 꼭 로그아웃 눌러주시고(자동 로그아웃이 안되는것 같아요..),

 

jupyter에 포트도 꼭 변경하는것을 추천드립니다. default포트인 것을 알고 해커에게 공격당할수 있습니다.

 

보안!! 보안이 항상 중요합니다. 공유기도 비밀번호 꼭 걸어두시고,(제가 공유기 로그를 확인해보면 중국이나 외부에서 공유기 접속하려고 많이 시도하더라구요.)

 


 * 추가 내용 (2021-08-23)

우분투 이외에 configuration path의 경우 다음 포스팅을 참고하세요!

https://mopipe.tistory.com/152

 

[jupyter] linux, windows, OS X 세팅! (외부접속 가능하게!)

기본적인 세팅은 다음 포스팅을 참조하시고 https://mopipe.tistory.com/97 [jupyter] 설치부터 외부접속 가능하게 설정 (Ubuntu, linux용) jupyter는 R에서 Rstudio와 같은 존재라고 할수가 있을 것 같습니다...

mopipe.tistory.com

 

728x90
반응형

댓글