VNC를 통한 GUI 기반 원격 접속

Server

  1. 시스템 환경설정(System Preference) 메뉴에서 공유(Shring) 실행

  2. 원격관리(Remote Management) 항목 Check

    컴퓨터 설정으로 세부 항목(ex. password) 등을 설정할 수 있지만 기본적으로 맥 로그인 계정으로 제한 가능하기 때문에 추가 설정은 불필요.

Client

  1. Finder 실행 후 Command+k 버튼을 실행 하면 Screen Sharing.app이 실행됨.

  2. Server Address 에 vnc://{IP_ADDRESS} 를 입력 후 로그인 패스워드를 입력후 접속.


SSH를 통한 Terminal 기반 원격 접속

Server

  1. 시스템 환경설정(System Preference) 메뉴에서 공유(Shring) 실행

  2. 원격로그인(Remote Login) 항목 Check

Client

  1. Terminal 실행

  2. ssh {계정 아이디}@{IP_ADDRESS} 입력 후 접속.



외부에서 맥 미니(Mac mini) 서버로 원격 접속 하기 위해서 공유기상의 추가 설정이 필요하다.

일반적으로 가정용 인터넷망 환경에서는 공인 IP 1개를 할당 받은 후 공유기 내부에서 NAT를 통해 나눠쓰고 있다.

외부 접속 환경 설정을 위해서

  1. DDNS 설정을 통해 가정 내 유동IP를 찾아갈 수 있는 Domain를 설정이 필요하며

  2. 포트 포워딩을 통해 공유기에서 맥미니(Mac mini)서버로 원격접속 프로토콜을 전달 해야 한다.

DDNS 설정

가정용 인터넷 환경의 경우 IDC 센터와 다르게 대부분 유동IP를 통해 서비스 하기 때문에 IP가 변경될 수 있다.

공유기는 초기 부팅시 DHCP를 통해 신규 IP주소를 발급 받거나, DHCP에서 설정한 Lease Timer 가 종료되면 IP주소를 갱신한다.

이러한 이유로 외부에서 접속 시 필요한 맥미니의 IP는 언제든 변경될 수 있기 때문에 Dynamic한 DDNS 활용이 필요하다.

설정 방법

  1. 공유기 관리용 웹 페이지인 http://192.168.0.1/ 로 접속 후 로그인

  2. 고급설정특수기능DDNS 설정

  3. 사용하고자 하는 호스트 네임을 설정 후 추가 버튼 클릭


    • 호스트이름은 iptime.org 로 끝나야 합니다. ( 예> testtest.iptime.org )
    • 사용자ID는 E-mail주소를 입력해야 합니다.
    • 한 개의 호스트만 등록할 수 있습니다.


위 과정을 마쳤다면 외부에서 맥미니 서버로 접속 시 IP 주소가 아닌 발급받은 DDNS 도메인(testtest.iptime.org)을 통해 접속이 가능하다.


포트포워드 설정

  1. 공유기 관리용 웹 페이지인 http://192.168.0.1/ 로 접속 후 로그인

  2. NAT/라우터 관리포트포워드 설정

  3. 공유기로 들어오는 SSH, VNC용 패킷을 맥미니 서버로 포워딩 설정한다.

    아래 이미지를 참고하면 된다.


    • SSH는 일반적으로 TCP/22번 포트를 사용하며

    • VNC는 TCP/5900번 포트를 사용한다.

      보안을 위해서 Well known 포트 번호는 별도로 변경하여 사용하는 것이 권장된다.




MacOS 에서는 Redhat 계열의 yum과 같이 package 에 대한 설치 및 버전을 Homebrew라는 패키징 관리 툴을 통해 관리함.

MacOS 에서는 Homebrew를 통해 Docker, Python 등을 설치하여 홈서버를 구축할 예정.

Homebrew Install

https://brew.sh/index_ko

 


Docker Install
docker 관련 package검색

% brew search docker
==> Formulae
docker                          docker-credential-helper        docker-machine-completion       docker-machine-nfs              docker2aci
docker-clean                    docker-credential-helper-ecr    docker-machine-driver-hyperkit  docker-machine-parallels        dockerize
docker-completion               docker-gen                      docker-machine-driver-vmware    docker-slim                     lazydocker
docker-compose                  docker-ls                       docker-machine-driver-vultr     docker-squash
docker-compose-completion       docker-machine                  docker-machine-driver-xhyve     docker-swarm
==> Casks
docker                                               docker-toolbox                                       homebrew/cask-versions/docker-edge

Docker install

brew cask install docker
brew cask install kitematic

Mac OS X에서는 Boot2Docker를 이용하여 Docker를 사용할 수 있습니다. 다음 URL에서 .pkg 파일을 받습니다.

https://github.com/boot2docker/osx-installer/releases

Boot2Docker는 더 이상 업데이트되지 않으며 Docker Toolbox로 바뀌었습니다.
Docker Toolbox의 설치 방법은 Boot2Docker와 큰 차이가 없습니다.

https://www.docker.com/products/docker-desktop



docker 관련 package 설치

% brew install docker boot2docker
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
.
.To have launchd start docker-machine now and restart at login:
  brew services start docker-machine
Or, if you don't want/need a background service you can just run:
  docker-machine start




boot2init 설정

boot2docker init 명령어 수행

boot2docker up 수행 시 아래 Error가 발생한다면 brew를 통해 Virtual Box 설치가 필요하다.

error in run: Failed to get machine "boot2docker-vm": exec: "VBoxManage": executable file not found in $PATH

november11ui-Mac-mini:~ november11$ boot2docker up

WARNING: The 'boot2docker' command line interface (not to be confused with

'boot2docker' the operating system) is officially deprecated.

Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP.

Docker Toolbox (https://docker.com/toolbox) is the recommended install method.

error in run: Failed to get machine "boot2docker-vm": exec: "VBoxManage": executable file not found in $PATH

november11ui-Mac-mini:~ november11$ brew

Virtual Box 설치

brew cask install virtualbox


boot2docker 설정

Docker는 Linux 기반 컨테이너 솔루션이라

Mac 상에서 Docker 사용을 위해 가상의 Linux 머신 구축이 필요하다.

해당 VM은 boot2docker를 통해 지원된다.


boot2docker 설치 후

  • boot2docker init

  • boot2docker up

을 실행하면 된다.


november11ui-Mac-mini:~ november11$ boot2docker init

WARNING: The 'boot2docker' command line interface (not to be confused with

'boot2docker' the operating system) is officially deprecated.

Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP.

Docker Toolbox (https://docker.com/toolbox) is the recommended install method.

Initialization of virtual machine "boot2docker-vm" complete.

Use `boot2docker up` to start it.

november11ui-Mac-mini:~ november11$ boot2docker up

WARNING: The 'boot2docker' command line interface (not to be confused with

'boot2docker' the operating system) is officially deprecated.

Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP.

Docker Toolbox (https://docker.com/toolbox) is the recommended install method.

Waiting for VM and Docker daemon to start...

..........................................................................o

Started.

Writing /Users/november11/.boot2docker/certs/boot2docker-vm/ca.pem

Writing /Users/november11/.boot2docker/certs/boot2docker-vm/cert.pem

Writing /Users/november11/.boot2docker/certs/boot2docker-vm/key.pem

To connect the Docker client to the Docker daemon, please set:

  export DOCKER_HOST=tcp://192.168.59.103:2376

  export DOCKER_CERT_PATH=/Users/november11/.boot2docker/certs/boot2docker-vm

  export DOCKER_TLS_VERIFY=1

Or run: `eval "$(boot2docker shellinit)"`

boot2docker up 후 관련 파라미터인 DOCKER_HOST, DOCKER_CERT_PATH, DOCKER_TLS_VERIFY 설정도 필요하다.

Docker 접속

boot2docker ssh 실행 시 아래와 같은 터미널 화면이 나오면 접속 성공

november11ui-Mac-mini:~ november11$ boot2docker ssh

                      ##         .

                ## ## ##       ==

              ## ## ## ## ##   ===

          /"""""""""""""""""\___/ ===

    ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~

          \______ o           __/

            \   \         __/

            \____\_______/

_                 _   ____     _           _

| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __

| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|

| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   < __/ |

|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|

Boot2Docker version 18.05.0-ce, build HEAD : b5d6989 - Thu May 10 16:35:28 UTC 2018

Docker version 18.05.0-ce, build f150324

docker@boot2docker:~$



출처: https://november11tech.tistory.com/95?category=291164 [Mr.november11]



IP 주소 확인

ifconfig | grep inet 명령어로 확인 가능하다.

아래 예제는 테터링 기준 IP이며 172.20.10.5 인 것을 확인할 수 있다.

127.0.0.1 및 fe80::1는 localhost로 내부적인 용도로 활용된다.

1

❯ ifconfig | grep inet


2

inet 127.0.0.1 netmask 0xff000000


3

inet6 ::1 prefixlen 128


4

inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1


5

inet6 fe80::1040:babf:35e7:63a9%en0 prefixlen 64 secured scopeid 0x7


6

inet 172.20.10.5 netmask 0xfffffff0 broadcast 172.20.10.15


7

inet6 fe80::888a:deff:fe72:2f2d%awdl0 prefixlen 64 scopeid 0x9


8

inet6 fe80::a6b1:53c7:d27d:9872%utun0 prefixlen 64 scopeid 0x10


9

inet6 fe80::aede:48ff:fe00:1122%en6 prefixlen 64 scopeid 0xf


Default Gateway IP 주소 및 라우팅 테이블 확인

Default Gateway는 외부 네트워크로 통신할 때 지정하는 IP 주소이다.

Linux 및 Unix 명령어와 같이 netstat -rn 을 통해 확인 가능하다.

명령어 실행 결과 아래와 같이 Routing Table 도 함께 확인할 수 있다.

Mac OS가 Multi Network를 사용한다면, 라우팅 테이블을 통해 별도의 라우팅 설정이 필요할 수 있다.

1

❯ netstat -rn


2

Routing tables


3


4

Internet:


5

Destination       Gateway           Flags       Refs     Use   Netif Expire


6

default           172.20.10.1       UGSc           85       0     en0


7

127               127.0.0.1         UCS             0       0     lo0


8

127.0.0.1         127.0.0.1         UH             1     150     lo0


9

169.254           link#7             UCS             0       0     en0


10

172.20.10/28       link#7             UCS             0       0     en0


11

172.20.10.1/32     link#7             UCS             1       0     en0


12

172.20.10.1       62:9c:28:b9:c2:64 UHLWIir       38       55     en0   1056


13

172.20.10.5/32     link#7             UCS             0       0     en0


14

224.0.0/4         link#7             UmCS           1       0     en0


15

224.0.0.251       1:0:5e:0:0:fb     UHmLWI         0       0     en0


16

255.255.255.255/32 link#7             UCS             0       0     en0




출처: https://november11tech.tistory.com/102?category=291164 [Mr.november11]



  • No labels
Write a comment…