Page History
VNC를 통한 GUI 기반 원격 접속
Server
시스템 환경설정(System Preference) 메뉴에서 공유(Shring) 실행
원격관리(Remote Management) 항목 Check
컴퓨터 설정으로 세부 항목(ex. password) 등을 설정할 수 있지만 기본적으로 맥 로그인 계정으로 제한 가능하기 때문에 추가 설정은 불필요.
Client
Finder 실행 후 Command+k 버튼을 실행 하면 Screen Sharing.app이 실행됨.
Server Address 에 vnc://{IP_ADDRESS} 를 입력 후 로그인 패스워드를 입력후 접속.
SSH를 통한 Terminal 기반 원격 접속
Server
시스템 환경설정(System Preference) 메뉴에서 공유(Shring) 실행
원격로그인(Remote Login) 항목 Check
Client
Terminal 실행
ssh {계정 아이디}@{IP_ADDRESS} 입력 후 접속.
외부에서 맥 미니(Mac mini) 서버로 원격 접속 하기 위해서 공유기상의 추가 설정이 필요하다.
일반적으로 가정용 인터넷망 환경에서는 공인 IP 1개를 할당 받은 후 공유기 내부에서 NAT를 통해 나눠쓰고 있다.
외부 접속 환경 설정을 위해서
DDNS 설정을 통해 가정 내 유동IP를 찾아갈 수 있는 Domain를 설정이 필요하며
포트 포워딩을 통해 공유기에서 맥미니(Mac mini)서버로 원격접속 프로토콜을 전달 해야 한다.
DDNS 설정
가정용 인터넷 환경의 경우 IDC 센터와 다르게 대부분 유동IP를 통해 서비스 하기 때문에 IP가 변경될 수 있다.
공유기는 초기 부팅시 DHCP를 통해 신규 IP주소를 발급 받거나, DHCP에서 설정한 Lease Timer 가 종료되면 IP주소를 갱신한다.
이러한 이유로 외부에서 접속 시 필요한 맥미니의 IP는 언제든 변경될 수 있기 때문에 Dynamic한 DDNS 활용이 필요하다.
설정 방법
공유기 관리용 웹 페이지인 http://192.168.0.1/ 로 접속 후 로그인
고급설정 → 특수기능 → DDNS 설정
사용하고자 하는 호스트 네임을 설정 후 추가 버튼 클릭
- 호스트이름은 iptime.org 로 끝나야 합니다. ( 예> testtest.iptime.org )
- 사용자ID는 E-mail주소를 입력해야 합니다.
- 한 개의 호스트만 등록할 수 있습니다.
위 과정을 마쳤다면 외부에서 맥미니 서버로 접속 시 IP 주소가 아닌 발급받은 DDNS 도메인(testtest.iptime.org)을 통해 접속이 가능하다.
포트포워드 설정
공유기 관리용 웹 페이지인 http://192.168.0.1/ 로 접속 후 로그인
NAT/라우터 관리 → 포트포워드 설정
공유기로 들어오는 SSH, VNC용 패킷을 맥미니 서버로 포워딩 설정한다.
아래 이미지를 참고하면 된다.
SSH는 일반적으로 TCP/22번 포트를 사용하며
VNC는 TCP/5900번 포트를 사용한다.
보안을 위해서 Well known 포트 번호는 별도로 변경하여 사용하는 것이 권장된다.
MacOS 에서는 Redhat 계열의 yum과 같이 package 에 대한 설치 및 버전을 Homebrew라는 패키징 관리 툴을 통해 관리함.
MacOS 에서는 Homebrew를 통해 Docker, Python 등을 설치하여 홈서버를 구축할 예정.
Homebrew Install
Code Block |
---|
Docker Install
docker 관련 package검색
Code Block |
---|
% 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
Code Block |
---|
brew cask install docker
brew cask install kitematic |
Warning |
---|
Mac OS X에서는 Boot2Docker를 이용하여 Docker를 사용할 수 있습니다. 다음 URL에서 .pkg 파일을 받습니다. https://github.com/boot2docker/osx-installer/releases Boot2Docker는 더 이상 업데이트되지 않으며 Docker Toolbox로 바뀌었습니다. https://www.docker.com/products/docker-desktop |
docker 관련 package 설치
Code Block |
---|
% 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]