ASUS 공유기 DDNS 사용 방법
개인 사용자가 집에서 할당받는 공인 IP는 DHCP 방식이기 때문에 사용자가 일정시간 사용하지 않거나 재갱신때 모종의 이유로 갱신이 불가하면 사용하던 공인 IP를 반환하고 다시 갱신을 받습니다. 따라서 단말을 상시 사용중이지 않다면 공인 IP가 유동적으로 변하기 때문에, DDNS라는 기술을 이용하여 유동적으로 변경되는 공인 IP를 도메인을 통해 주소를 일관적으로 사용할 수 있습니다. 첫번째로 ASUS의 네임서버에 등록할 도메인을 중복되지 않는지 확인을 해야합니다. https://iplookup.asus.com/nslookup.php ASUS Nslookup iplookup.asus.com 이제 ASUS 공유기 설정에 접속하여 WAN - DDNS으로 들어가서 Host Name에 사용 할 수 있는 도..
2025.12.29
Jenkins 설치
https://www.jenkins.io/download/ Download and deployJenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their softwarewww.jenkins.io다운로드 사이트 접속 사용할 OS를 클릭하면 설치 방법에 대한 페이지로 리다이렉트가 됨 해당 페이지의 내용을 첨언하게되면 첫째로 자바 설치sudo apt updatesudo apt install fontconfig openjdk-21-jrejava -version 둘째로 LTS 버전에 대한 Jenkins 설치 및 데몬 설정을 진행sudo wget ..
2025.12.08
no image
Proxmox 이미지 업로드 및 서버 설치
https://ubuntu.com/download/server Get Ubuntu Server | Download | UbuntuGet Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provision machines in your data centre or installing it directly on a server.ubuntu.com https://rockylinux.org/ko-KR/download Download - Rocky Linux다운로드 최신 로키 리눅스 설치 관련 있는 Rocky Linux를 다운로드하고 사용하면서 Rocky Enterprise Software Foundation은 기여자..
2025.12.08
no image
[쿠버네티스] helm으로 grafana 설치하기
service mesh 구성 중에 nas에 grafana 데이터를 배포하는 과정에 에러가 발생하여 기록합니다. PV, PVC yaml 값kind: PersistentVolumeapiVersion: v1metadata: name: grafana-pvspec: capacity: storage: 10Gi nfs: server: [nas address] path: [nas path] accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain---kind: PersistentVolumeClaimapiVersion: v1metadata: name: grafana-pvc namespace: istio-systemspec:..
2025.07.23
no image
DNS란 무엇인가?
DNS우리는 인터넷 브라우저를 사용하여 웹페이지에 접근 할 때 문자열을 가진 도메인으로 접근을 하는데, 이러한 도메인은 각각의 고유 주소인 IP를 가지고 있습니다.이때 도메인을 통해 해당 고유주소인 IP로 접근 할 수 있게 끔 도와주는 기능이 DNS 입니다. DNS는 Domain Name System 약자로 간단하게 풀어나가면치킨(웹페이지)을(를) 시키고(접속하고)싶은데 가게이름(도메인)은 알고 있지만, 전화번호(IP)를 알 수 없어서 114(DNS Server)에 물어봐서 전화번호(IP)를 알아낸다고 보면 됩니다.  DNS Server에 질의하여 IP를 알아내는 전체적인 과정은 아래와 같습니다.www.asdfzxcv.site 이라는 A레코드 타입의 도메인에 접근을 예로 들겠습니다. asdf www.as..
2024.08.07
no image
[쿠버네티스] helm 설치 및 기본 사용법
1. 설치$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3$ chmod +x get_helm.sh$ ./get_helm.sh# 심볼릭$ ln -s /usr/local/bin/helm /usr/bin/helm# 혹은 /etc/profile에 path 추가$ echo "export PATH=\$PATH:/usr/local/bin" >> /etc/profile$ source /etc/profile 명령어 자동 완성 추가하기# 현재 사용중인 세션$ source /etc/bash_completion.d/helm 설치를 완료했으니, 필요한 패키지를 설치하기 위한 저장소가 필요합니다.http..
2024.07.30
no image
윈도우10에서 WSL2로 WSA 구동하기 feat 플레이스토어
1. 개요WSA(Windows Subsystem for Android)는 윈도우 OS에서 네이티브하게 안드로이드 애플리케이션을 실행하는 도구입니다.  각 레이어의 역할은 다음과 같습니다. Windows OS 기본 운영체제로, 전체 시스템을 운영하는 바탕입니다. Hyper-V (하이퍼바이저) 가상화 기술로, 가상 머신을 실행할 수 있게 합니다. Linux Kernel 실제 Linux 커널로, Linux 운영체제의 핵심입니다. WSL (Windows Subsystem for Linux) Windows에서 Linux 프로그램을 실행할 수 있게 합니다. WSA (Windows Subsystem for Android) Windows에서 Android 앱을 실행할 수 있게 합니다. 작동 방식 1. Windows O..
2024.07.18
no image
AWS로 OpenVPN 간단하게 구축하기
아마존에서 제공하는 프리티어로 간단하게 OpenVPN 서버를 구축하면 요긴하게 자주 쓰입니다.매월 트래픽 100GB로 제공되기 때문에, 사용량을 고려하며 사용합시다. (넘으면 돈나옵니다.)  접근하려는 서비스에서 아마존 IP를 막는 경우도 잦아서,  VPN을 백퍼센트 사용 할 수 있는건 아닙니다.     1. 인스턴스 생성이미지는 저는 페도라쪽을 주로 다루다 보니, Amazon Linux를 그냥 사용했는데, 우분투나 SUSE Linux를 사용하시는것도 상관 없습니다만, Amazon Linux는 2023이 아닌 2로 선택해주세요.      2. 탄력적 IP(공인 IP) 생성좌측 스크롤 내리다 보시면 네트워크 및 보안 탭에서 탄력적 IP로 들어갑시다. 탄력적 IP(공인 IP)는 사용하지 않을 때 과금이 되므..
2024.07.17
반응형

개인 사용자가 집에서 할당받는 공인 IP는 DHCP 방식이기 때문에 사용자가 일정시간 사용하지 않거나 재갱신때 모종의 이유로 갱신이 불가하면 사용하던 공인 IP를 반환하고 다시 갱신을 받습니다.

 

따라서 단말을 상시 사용중이지 않다면 공인 IP가 유동적으로 변하기 때문에, DDNS라는 기술을 이용하여 유동적으로 변경되는 공인 IP를 도메인을 통해 주소를 일관적으로 사용할 수 있습니다.

 

 

첫번째로 ASUS의 네임서버에 등록할 도메인을 중복되지 않는지 확인을 해야합니다.

 

https://iplookup.asus.com/nslookup.php

 

ASUS Nslookup

 

iplookup.asus.com

 

이미 사용중인 도메인

 

사용 할 수 있는 도메인

 

 

이제 ASUS 공유기 설정에 접속하여 WAN - DDNS으로 들어가서 Host Name에 사용 할 수 있는 도메인을 입력하고 Apply를 눌러줍니다.

 

 

반영이 되고 난 후 DNS 조회를 해보시면 도메인 기반으로 IP의 정보를 알아 낼 수 있습니다.

 

 

본인이 소유한 도메인에 DDNS를 CNAME으로 추가하면 소유한 도메인을 DDNS로 연결 할 수 있습니다.

 

 

CNAME 반영 이후 해당 도메인을 조회 시, DDNS 주소로 알려주는 것을 확인 할 수 있습니다.

 

반응형

'Network' 카테고리의 다른 글

DNS란 무엇인가?  (0) 2024.08.07

Jenkins 설치

하녕
|2025. 12. 8. 15:27
반응형

 

https://www.jenkins.io/download/

 

Download and deploy

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

다운로드 사이트 접속

 

사용할 OS를 클릭하면 설치 방법에 대한 페이지로 리다이렉트가 됨

 

 

해당 페이지의 내용을 첨언하게되면 첫째로 자바 설치

sudo apt update
sudo apt install fontconfig openjdk-21-jre
java -version

 

 

둘째로 LTS 버전에 대한 Jenkins 설치 및 데몬 설정을 진행

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo dnf upgrade
# Add required dependencies for the Jenkins package
sudo dnf install fontconfig java-21-openjdk
sudo dnf install jenkins
sudo systemctl daemon-reload

 

 

sudo systemctl start jenkins
sudo systemctl enable jenkins

이후 Jenkins 실행 및 자동 실행 등록

 

포트 조회시 정상적으로 조회됨

 

 

이후 http://${JenkinsIP}:8080 으로 접근 및 /var/lib/jenkins/secrets/initialAdminPassword의 내용을 확인하여 초기 패스워드 확인

 

해당 패스워드로 로그인 진행

 

 

초기 세팅이 완료되면 계정 생성 후 추가 세팅 진행

 

 

반응형
반응형

https://ubuntu.com/download/server

 

Get Ubuntu Server | Download | Ubuntu

Get Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provision machines in your data centre or installing it directly on a server.

ubuntu.com

 

https://rockylinux.org/ko-KR/download

 

Download - Rocky Linux

다운로드 최신 로키 리눅스 설치 관련 있는 Rocky Linux를 다운로드하고 사용하면서 Rocky Enterprise Software Foundation은 기여자로서 커뮤니티의 일원이 되도록 초대합니다. 문서화, QA, 테스트부터 SIG의

rockylinux.org

 

일반적으로 사용하는 Rocky, Ubuntu 홈페이지에서 이미지를 먼저 다운로드 한다.

 

필자는 Ubuntu 24.04.3 으로 받았다.

 

 

데이터센터 - proxmox - local 에서 ISO 이미지 탭으로 들어가 업로드 클릭

 

아까 다운로드한 이미지를 업로드한다.

 

업로드 완료 시, TASK OK라는 문구가 나오면 정상적으로 이미지가 업로드가 된 것

 

업로드가 잘 된 것을 확인 할 수 있다.

 

 

데이터센터 - proxmox 우클릭하여 VM 생성 클릭

 

이름 지정 후, 다음

 

ISO 이미지 사용에서 아까 다운로드한 이미지 선택

 

GPU가 필요한 사람은 쓰루패스 설정을 참고하고, 이외는 기본적으로 필요없기 때문에 다음

 

디스크 크기 지정

 

코어 지정

 

메모리 지정

 

네트워크는 브릿지로 설정 후 완료

 

정상적으로 잘 생성되었으니 우측 상단의 시작버튼을 눌러 VM을 기동한다.

 

초기세팅은 터미널로 접근이 불가하기 때문에 콘솔탭에 들어가 직접적으로 설정한다.

 

네트워크, 루트볼륨, 서버 이름 등 필요요소 설정 후, 우분투는 기본적으로 OpenSSH server를 설치 할 수 있어서 반드시 선택한다.

 

 

 

이후 서드파티 터미널로 즐긴다.

반응형
반응형

service mesh 구성 중에 nas에 grafana 데이터를 배포하는 과정에 에러가 발생하여 기록합니다.

 

 

PV, PVC yaml 값

kind: PersistentVolume
apiVersion: v1
metadata:
  name: grafana-pv
spec:
  capacity:
    storage: 10Gi
  nfs:
    server: [nas address]
    path: [nas path]
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: grafana-pvc
  namespace: istio-system
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  volumeName: grafana-pv

 

PV 확인

 

PVC 확인

 

 

아래 URL로 들어가서 grafana repo를 찾습니다.

https://artifacthub.io/

 

Artifact Hub

Find, install and publish Cloud Native packages

artifacthub.io

 

 

친절히 repo 추가 방법을 알려줍니다.

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

helm search repo grafana # 필요한 차트를 찾기
helm pull grafana/grafana # 사용할 차트를 PULL

 

 

다운로드한 차트의 압축을 풀어줍니다.

 

 

생성한 PVC에 데이터를 집어넣어야 하기 때문에 values.yaml에서 416번째 줄에서 persistence 를 활성화 합니다.

이미 생성된 PVC를 사용하기 때문에 existingClaim에 pvc를 추가합니다.

persistence:
  type: pvc
  enabled: true
  # storageClassName: default
  ## (Optional) Use this to bind the claim to an existing PersistentVolume (PV) by name.
  volumeName: ""
  accessModes:
    - ReadWriteOnce
  size: 10Gi
  # annotations: {}
  finalizers:
    - kubernetes.io/pvc-protection
  # selectorLabels: {}
  ## Sub-directory of the PV to mount. Can be templated.
  # subPath: ""
  ## Name of an existing PVC. Can be templated.
  existingClaim: grafana-pvc
  ## Extra labels to apply to a PVC.
  extraPvcLabels: {}
  disableWarning: false

 

 

필요에 따라 values.yaml을 수정한 후에 배포합니다.

 

 

정상적으로 POD가 배포되지 않습니다.

 

 

로그를 확인했을 때, chown과 init-chown-data라는 init contaier에 대한 문제가 발생한 것을 확인 할 수 있습니다.

 

 

values.yaml에서 init container에 관련 된 내용을 찾아보면 아래와 같습니다.

# values.yaml의 452번째 줄
initChownData:
  ## If false, data ownership will not be reset at startup
  ## This allows the grafana-server to be run with an arbitrary user
  ##
  enabled: true

  ## initChownData container image
  ##
  image:
    # -- The Docker registry
    registry: docker.io
    repository: library/busybox
    tag: "1.31.1"
    sha: ""
    pullPolicy: IfNotPresent

  ## initChownData resource requests and limits
  ## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ##
  resources: {}
  #  limits:
  #    cpu: 100m
  #    memory: 128Mi
  #  requests:
  #    cpu: 100m
  #    memory: 128Mi
  securityContext:
    readOnlyRootFilesystem: false
    runAsNonRoot: false
    runAsUser: 0
    seccompProfile:
      type: RuntimeDefault
    capabilities:
      add:
        - CHOWN
      drop:
        - ALL

 

mount 한 NAS의 스냅숏으로 인하여 chown이 정상적으로 작동하지 못하여 init container가 종료되어 서비스가 정상적으로 올라올수 없는 것을 확인 할 수 있습니다.
이는 CSP 마다 상이하기 때문에, 이와 같은 동일한 케이스가 발생하지 않고 정상적으로 프로비저닝이 될 수 있습니다.

 

따라서 init contaier를 비활성화 하고 수동으로 NAS의 디렉토리 영역을 472:472로 변경합시다.

UID 및 GID 변경

initChownData:
  ## If false, data ownership will not be reset at startup
  ## This allows the grafana-server to be run with an arbitrary user
  ##
  enabled: false

 

 

삭제 후 재설치를 진행합니다.

 

 

이후 ingress 구성 후 웹브라우저로 접근합니다.

반응형

DNS란 무엇인가?

하녕
|2024. 8. 7. 16:45
반응형

DNS

우리는 인터넷 브라우저를 사용하여 웹페이지에 접근 할 때 문자열을 가진 도메인으로 접근을 하는데, 이러한 도메인은 각각의 고유 주소인 IP를 가지고 있습니다.

이때 도메인을 통해 해당 고유주소인 IP로 접근 할 수 있게 끔 도와주는 기능이 DNS 입니다.

 

DNS는 Domain Name System 약자로 간단하게 풀어나가면

치킨(웹페이지)을(를) 시키고(접속하고)싶은데 가게이름(도메인)은 알고 있지만, 전화번호(IP)를 알 수 없어서 114(DNS Server)에 물어봐서 전화번호(IP)를 알아낸다고 보면 됩니다.

 

 

DNS Server에 질의하여 IP를 알아내는 전체적인 과정은 아래와 같습니다.

www.asdfzxcv.site 이라는 A레코드 타입의 도메인에 접근을 예로 들겠습니다.

 

asdf

 

www.asdfzxcv.site

 

 

 

1. 사용자가 웹 브라우저에서 www.asdfzxcv.site 라는 도메인으로 접근

2. 웹 브라우저는 받은 도메인을 DNS 클라이언트에게 전달
3. DNS 클라이언트가 로컬(공용) DNS 서버로 요청을 보냄

4. 로컬(공용) DNS 서버가 캐시 확인
5. 캐시에 없으면 루트 네임서버로 요청을 보냄
6. 루트 네임서버가 TLD 네임서버의 주소를 반환
7. TLD 네임서버가 SLD 네임서버의 주소를 반환
8. SLD 네임서버가 요청된 도메인의 IP 주소를 반환
9. IP 주소가 로컬(공용) DNS 서버로 리턴
10. 로컬(공용) DNS 서버가 IP 주소를 캐시에 저장한 후 DNS 클라이언트로 반환
11. DNS 클라이언트가 IP 주소를 사용자의 브라우저로 제공
12. 사용자의 브라우저가 IP 주소를 사용해 원하는 웹사이트로 접근

 

* 로컬 DNS :  KT,SK,LG 같은 ISP 혹은 사내망 등에서 운영하는 DNS 서버로서, 전체가 아닌 특정 사용자들만 사용 가능

* 공용 DNS : 모든 사용자들이 사용이 가능한 도메인 서버로, 대표적으로 구글 (8.8.8.8), Cloudflare (1.1.1.1) 등

* SLD 네임서버 : DNS 레코드 관리 및 DNS 응답

* TLD 네임서버 : SLD 네임 서버의 정보 제공

* 루트 네임서버 : TLD 네임 서버의 정보 제공 

 

 

직접적으로 확인을 해보고 싶다면, 아래처럼 진행해봅시다.

#Windows에서는 별도 설치가 필요
$ dig www.asdfzxcv.site +trace

 

 

1. 구글 DNS가 루트 네임 서버에게(*.root-servers.net.) 질의합니다.

 

 

2. l.root-servers.net. 라는 루트 네임 서버에서 .site 라는 도메인을 관리하는 TLD 네임 서버(*.nic.site.)로 다시 질의를 합니다. 

 

 

3. b.nic.site 라는 TLD 네임 서버에서 asdfzxcv.site를 관리하는 SLD 네임 서버(*.gabia.*.)로 다시 질의를 합니다.

 

 

4. ns.gabia.net 라는 네임 서버에서 해당 URL에 대한 IP를 반환합니다.

 

위 같은 과정을 거친 이후 해당 도메인으로 접근을 하게 됩니다.

 

 

 

DNS 레코드

전화번호에는 일반 유선도 있고, 팩스용 번호도 있고, 인터넷 전화도 있고 종류가 다양합니다.

DNS 레코드 또한 이러한 목적성을 가진 도메인을 저장하는 데이터베이스들의 종류입니다.

 

대표적으로 사용되는 레코드 타입이 A, CNAME, MX 정도 입니다.

 

1. A 레코드 (Address Record):

도메인 이름을 IPv4 주소로 매핑합니다.

 

 

2. AAAA 레코드 (IPv6 Address Record):

도메인 이름을 IPv6 주소로 매핑합니다.

 

 

3. CNAME 레코드 (Canonical Name Record):

도메인 이름을 별칭으로 다른 도메인 이름에 매핑합니다.

 

 

4. MX 레코드 (Mail Exchange Record):

도메인 이름에 대한 이메일 서버를 지정합니다.

 

 

5. TXT 레코드 (Text Record):

도메인 이름에 대한 텍스트 정보를 저장합니다. SPF(Sender Policy Framework)와 같은 인증 메커니즘에 사용됩니다.

 

 

NS 레코드 (Name Server Record):

도메인 이름의 네임 서버를 지정합니다.

 

 

PTR 레코드 (Pointer Record):

IP 주소를 도메인 이름으로 매핑합니다. 주로 역방향 DNS 조회에 사용됩니다.

 

 

SRV 레코드 (Service Record):

특정 서비스를 제공하는 서버의 위치를 지정합니다.
예: _sip._tcp.example.com → sipserver.example.com:5060

 

SOA 레코드 (Start of Authority Record):

도메인 존 파일의 시작을 나타내며, 관리자 이메일 주소, 도메인 기본 네임 서버, 존 파일의 시리얼 번호 등을 포함합니다.

 

 

 

 

 

 

 

 

반응형

'Network' 카테고리의 다른 글

ASUS 공유기 DDNS 사용 방법  (0) 2025.12.29
반응형

1. 설치

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod +x get_helm.sh
$ ./get_helm.sh

# 심볼릭
$ ln -s /usr/local/bin/helm /usr/bin/helm

# 혹은 /etc/profile에 path 추가
$ echo "export PATH=\$PATH:/usr/local/bin" >> /etc/profile
$ source /etc/profile

 

 

명령어 자동 완성 추가하기

# 현재 사용중인 세션
$ source <(helm completion bash)

# 새로운 세션 연결시
$ helm completion bash > /etc/bash_completion.d/helm

 

 

설치를 완료했으니, 필요한 패키지를 설치하기 위한 저장소가 필요합니다.

https://artifacthub.io/

 

Artifact Hub

Find, install and publish Cloud Native packages

artifacthub.io

 

 

페이지에서 설치가 필요한 패키지를 검색합시다.

 

 

저는 예시로 nginx 를 사용할거고, bitnami 저장소를 이용하겠습니다.

 

 

박스 모양에 커서를 갖다대면 repo URL이 나오는데 복사합시다.

 

 

해당 URL로 repo 추가를 합시다.

# Repo 추가
$ helm repo add bitnami https://charts.bitnami.com/bitnami

# Repo 패키지 리스트 업데이트
# yum 혹은 apt 같은 패키지 관리자의 update 기능이라고 생각하시면 편합니다.
$ helm repo update

 

 

저장소 추가 후에 검색해보면 잘 나옵니다.

 

 

설치 방법은 이전의 사이트에서 install 를 클릭하면 확인 할 수 있고, 하단의 See all을 누르면 배포 패키지의 버전 리스트를 확인 할 수 있습니다.

 

 

해당 페이지에서 안내하는 install 방법은 아래와 같습니다.

helm install은 helm install [NAME] [CHART] [flags] 순이며, 차트를 참조하거나 디렉토리를 직접적으로 참조 할 수도 있습니다.

$ helm install my-nginx bitnami/nginx --version 18.1.7

# ex 예시
# 차트 참조 : helm install $(my-nginx) nginx/nginx
# 패키지 차트 경로 : helm install $(my-nginx) ./nginx-1.2.3.tgz
# 압축을 푼 차트 디렉토리 경로 : helm install $(my-nginx) ./nginx
# 절대 URL : helm install $(my-nginx) https://example.com/charts/nginx-1.2.3.tgz
# 차트 참조 및 저장소 URL : helm install --repo https://example.com/charts/ mynginx nginx

 

 

해당 명령어로 생성 후에 조회해보면 정상적으로 생성되는 것을 확인 할 수 있습니다.

 

 

근데 우리는 values 값에 대한 수정이 필요하기 때문에 이걸로 설치 할 수 없습니다, 따라서 helm pull을 통해 패키지를 직접적으로 가져와야 합니다.

$ mkdir nginx
$ cd nginx
$ helm pull bitnami/nginx
$ tar -xvf nginx-*.tgz
$ cd nginx

 

 

압축을 푼 디렉토리로 이동하면 여러개의 yaml과 디렉토리가 존재하는 걸 볼 수 있습니다.

 

 

여기서 패키지를 설치할 때 차트의 기본 구조는 아래와 같습니다.

values.yaml을 통해 해당 인스턴스를 값을 정의하고, templates가 정의된 값을 통해 인스턴스를 구성합니다.

nginx-chart/
├── Chart.yaml
├── values.yaml
├── crds/
│   └── mycustomresource.yaml # 필요시 작성하는 커스텀 yaml
└── templates/
    ├── deployment.yaml
    ├── svc.yaml
    └── ingress.yaml
    └── ....

 

 

pull하여 가져온 chart에서 업로더가 제공한 README 등을 통해 양식에 맞게 values.yaml을 수정하고,

helm install을 통해 설치하면 되겠습니다.

$ helm install my-nginx . # 현재 디렉토리를 참조하여 my-nginx 패키지 설치

 

2. 여담

 

명령어 

helm list : helm chart 조회

 

 

helm uninstall $(charts) [...]  [flags] : charts 삭제

 

 

helm status $(charts) : charts 상태 조회

반응형
반응형

1. 개요

WSA(Windows Subsystem for Android)는 윈도우 OS에서 네이티브하게 안드로이드 애플리케이션을 실행하는 도구입니다.

 

 

각 레이어의 역할은 다음과 같습니다.

 

Windows OS
기본 운영체제로, 전체 시스템을 운영하는 바탕입니다.

Hyper-V (하이퍼바이저)
가상화 기술로, 가상 머신을 실행할 수 있게 합니다.

Linux Kernel
실제 Linux 커널로, Linux 운영체제의 핵심입니다.

WSL (Windows Subsystem for Linux)
Windows에서 Linux 프로그램을 실행할 수 있게 합니다.

WSA (Windows Subsystem for Android)
Windows에서 Android 앱을 실행할 수 있게 합니다.

 

작동 방식
1. Windows OS가 Hyper-V를 사용해 가상 환경을 만듭니다.
2. Hyper-V가 Linux 커널을 실행합니다.
3. Linux 커널이 WSL을 통해 Windows에서 Linux 프로그램을 실행합니다.
4. WSL이 WSA를 실행하여 Android 앱을 실행합니다.

 

 

2. 설치

일단 설치에 앞서서 하이퍼바이저 기능을 켜야 하는데 시작 - 검색 - Windows 기능 켜기/끄기를 실행하고

Hyper-V, 가상 머신 플랫폼을 체크한 후에 확인을 눌러주세요.

 

 

https://learn.microsoft.com/ko-kr/windows/wsl/install

 

WSL 설치

wsl --install 명령을 사용하여 Linux용 Windows 하위 시스템을 설치합니다. Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine 등 원하는 Linux 배포판에서 실행되는 Windows 머신에서 Bash 터미널을 사용할 수 있습니

learn.microsoft.com

 

 

Docs에서는 빌드 19041 이상일 경우 wsl --install로 간편하게 설치 할 수 있다고 하는데, 저는 안됩니다.

여튼 수동 설치란을 참고하면 WSL 최초 설치 프로세스부터 기술되어 있습니다.

필자의 PC 버전

# x64 시스템의 경우: 버전 1903 이상, 빌드 18362.1049 이상.
# ARM64 시스템의 경우: 버전 2004 이상, 빌드 19041 이상
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --update
wsl --install # OS 미지정시 기본적으로 우분투로 설치, 굳이 설치 할 필요는 없을 것 같습니다.

wsl --set-default-version 2 # WSL 기본 버전을 2버전으로 지정

 

얘는 기본적으로 윈도우 10을 공식 지원하지 않습니다..

그래서 아래 URL에 들어가서 윈도우 10용 안드로이드를 받아줍시다.

https://github.com/MustardChef/WSABuilds

 

GitHub - MustardChef/WSABuilds: Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries w

Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions) built in. - GitHub -...

github.com

 

들어가서 하단에 내려보면 ONEDRIVE가 있습니다.

 

 

저는 아마존 스토어는 필요없기 때문에 RemovedAmazon 버전으로 받았습니다.

아마존 스토어가 필요하면 아래껄로 받자

 

 

해당 파일을 다운로드 받고 나면 설치하기 전에 압축을 풀어야하는데, 반디집이나 알집은 오류가 있으니 7z으로 풀어주세요.

https://www.7-zip.org/download.html

 

Download

Download .7z Any / x86 / x64 LZMA SDK: (C, C++, C#, Java)

www.7-zip.org

 

 

 

압축을 푼 폴더의 이름을 알아보기 편하게 변경하고 폴더를 옮겨줍시다. (저는 편하게 바탕화면에 뒀습니다.)

그 다음 관리자 권한으로 PowerShell을 실행합시다.

 

옮겨두었던 wsa 폴더로 이동하고 아래 명령어로 설치합시다.

cd C:\Users\${사용자명}\Desktop\wsa
PowerShell.exe -ExecutionPolicy Bypass -File .\Install.ps1

 

그러면 알아서 설치하고 프로세스가 올라옵니다.

 

플레이 스토어도 정상적으로 됩니다.

 

 

근데 메모리를 더럽게 쳐먹습니다. (메모리를 미리 VM에 할당 해놓는 방식이어서 많이 먹습니다, 설정에서 변경 가능)

 

스토어에서 앱 설치시 알림바로 알려줘서 확인하기 편합니다.

 

 

게임이나 앱도 정상적으로 실행됩니다. (안되는 앱도 종종 있긴 합니다. 가상화니 그러려니 합니다.)

 

제어판에서 보면 설치된 앱들도 확인 할 수 있습니다. 

 

런처가 기본적으로 내장되어 있지 않기 때문에 별도로 설치해서 구성하면 익숙하게 사용하실 수 있습니다.

 

 

3. 그래픽 설정

검색 - Android용 Windows 하위 시스템 실행

 

고급 설정 - 그래픽 기본 설정에서 특정 GPU 선택 후, GPU 선택

 

반응형
반응형

아마존에서 제공하는 프리티어로 간단하게 OpenVPN 서버를 구축하면 요긴하게 자주 쓰입니다.

매월 트래픽 100GB로 제공되기 때문에, 사용량을 고려하며 사용합시다. (넘으면 돈나옵니다.)

 

 

접근하려는 서비스에서 아마존 IP를 막는 경우도 잦아서,  VPN을 백퍼센트 사용 할 수 있는건 아닙니다.

리전 선택을 잘합시다.

 

 

 

 

 

1. 인스턴스 생성

이미지는 저는 페도라쪽을 주로 다루다 보니, Amazon Linux를 그냥 사용했는데, 우분투나 SUSE Linux를 사용하시는것도 상관 없습니다만, Amazon Linux는 2023이 아닌 2로 선택해주세요.

Arm은 범용성이 떨어지므로, x86을 고르는게 좋습니다.
보안 그룹 설정
키 페어가 최초 생성시에 없으니 생성합시다.

 

ppk로 하면 putty로 접근할때 변환 안해도 되서 편합니다.

 

 

 

 

 

2. 탄력적 IP(공인 IP) 생성

좌측 스크롤 내리다 보시면 네트워크 및 보안 탭에서 탄력적 IP로 들어갑시다.

 

탄력적 IP(공인 IP)는 사용하지 않을 때 과금이 되므로 생성 후에, 반드시 인스턴스에 연결합시다.

Static IP가 무려 공짜입니다.

 

 

 

 

 

3.  서버 접근

Port가 정상적으로 접근이 되는지 보통 텔넷을 주로 사용하는데, Windows 기능 켜기/끄기에서 텔넷 클라이언트를 설치합시다. (굳이 할 필요는 없습니다.)

 

 

잘 접근됩니다.

 

접근하기에 앞서 로그인하는 ID를 알아야 하는데, 아마존 메뉴얼에 명시되어 있습니다.

저는 Amazon Linux로 생성하였으니, ec2-user로 로그인하게 되겠습니다.

생성한 OS에 따라 ID가 다르니 확인합시다.

 

 

이후 SSH 접근 툴을 사용해야하는데 일반적으로 Putty를 사용합니다만, 모바텀이나 mremote건 서드파티 SSH 툴을 사용하는건 본인 자유입니다.

Putty를 사용할때는 Connection - SSH - Auth - Credentials 에서 키를 등록해주세요.

 

 

이후 Host Name에 ec2-user@탄력적 IP, Port는 별도로 설정한게 없으니 기본 포트인 22 로 입력하고, 해당 세션 값을 저장하기 위해 Saved Sessions에 이름 지정 후 저장을 누르시면 다음에도 해당 이름을 Load하여 재사용 할 수 있습니다.

 

해당 세션으로 Putty Configuration에서 Open을 누르게 되면 아래와 같이 SSH 세션에 접근 하게 됩니다.

 

 

 

 

4. 설치

일반적으로 OpenVPN을 설치하게 되면 조금 복잡스럽니다, 그냥 github에서 사람들이 배포하는걸로 사용하면 편하니 그걸로 사용합시다.

https://github.com/angristan/openvpn-install

 

GitHub - angristan/openvpn-install: Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS or Arch Linux.

Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS or Arch Linux. - angristan/openvpn-install

github.com

 

호환성에서 지원을 잘하는 걸로 보이네요

 

 

이제 호환성도 확인했으니 설치 해봅시다.

[ec2-user@ovpn ~]$ sudo -i
[root@ovpn ~]# yum install -y git

# 위에 설치 끝나고
[root@ovpn ~]# git clone https://github.com/angristan/openvpn-install.git
[root@ovpn ~]# cd openvpn-install
[root@ovpn ~]# ./openvpn-install.sh 

# openvpn-install.sh 가 실행안될 때
[root@ovpn ~]# chmod +x openvpn-install

 

 

위 같이 설정하고 나면 스크립트가 알아서 설치를 하는데 중간에 한번 ID를 기입하는 설정이 있습니다.

아래와 같이 나오니 지정하면 끝입니다.

 

설치가 끝나면 하단에 *.ovpn 이라는 파일이 생성이 되는데 이게 패스워들 대신 할 인증서 입니다.

(나중에 쓰이니 꼭 기억합시다.)

 

열어보면 conf 값과 인증서가 같이 들어있는 걸 보실 수 있을겁니다.

 

 

설치는 끝났으니 실행합시다.

[root@vpn ~]# systemctl start openvpn-server@server

 

는 실행이 안됩니다.

 

 

로그(/var/log/message)를 까봅시다.

server.conf가 없다고 합니다.

 

설정 값이 있는지 확인해봐야하니 설치 경로에 들어가서 확인해봅시다.

[root@vpn ~]# cd /etc/openvpn/

 

 

웬걸 온전히 다 있습니다.

 

보통 이럴 땐 systemd 설정이 잘못 된 경우가 많기 때문에 확인해봐야 할 것 같습니다.

[root@vpn ~]# systemctl status openvpn-server@server.service

 

systemd unit 위치를 확인 했으니 까봅시다.

역시나 WorkingDirectory 값이 잘못 되었습니다.

키보드 i를 누르고 입력모드로 들어간 후에 /etc/openvpn 으로 수정한 후 ESC - :wq - Enter

 

이제 잘 됩니다.

 

네트워크 인터페이스 잘 생성 되었습니다.

 

포트도 잘 올라왔습니다.

 

 

5. 접속

클라이언트용 OpenVPN을 설치합시다. 

https://openvpn.net/client/

 

OpenVPN Connect - VPN For Your Operating System | OpenVPN

Download the official OpenVPN Connect client VPN software for your operating system, developed and maintained by our experts. Get started with our VPN software.

openvpn.net

 

다운로드 받고 실행합시다.

 

 

설정 할 내역은 딱히 없고 Next 만 누르세요.

 

이제 *.ovpn 파일(4. 설치 내역 참고)을 SFTP던 FTP던 VPN을 접속할 PC로 가져와야합니다.

그냥 cat 으로 vpn 설정값을 열어준다음 아래처럼 클릭해서 긁어서 메모장에 열어서 Ctrl+v 하면 값을 가져 올 수도 있습니다.

 

 

만약에 메모장에 값을 복사한 경우라면 확장자를 ovpn으로 꼭 바꿔주세요.

 

UPLOAD FILE 클릭

 

 

이 상태에서 아까 저장한 *.ovpn 파일을 넣어줍시다.

 

파일을 Import 하였으면 Connect를 눌러주세요.

 

 

이렇게 CONNECTED가 나오면 접속 된겁니다.

 

- VPN Off

 

- VPN On

 

 

이렇게 구축이 완료되었습니다.

 

하지만 맨 처음에도 말했던 것 처럼 이런 AWS 공인 IP는 웹서비스에서 자체적으로 막는 경우가 잦으니 안되는 경우도 많습니다.

 

6. 여담

인증서는 하나당 하나의 사용자를 처리할 수 있습니다.

따라서 여러 사용자가 사용하기 위해서는 추가를 해야하는데, 이때 설치 때 사용하였던 스크립트로 사용자를 간편하게 추가 할 수 있습니다.

 

이렇게 추가된 *.ovpn 파일을 다른 사용자에게 주면 됩니다.

반응형

'Linux' 카테고리의 다른 글

[Linux] Squid 프록시 설치  (0) 2023.09.21
[Linux] IPTables 개념  (0) 2023.09.21
CentOS 6 repolist  (0) 2023.09.20
CentOS 7 repolist  (0) 2023.09.20
OpenSSL 설치 및 업그레이드  (0) 2023.09.20