TP-Link 세컨더리 IP(Secondary IP)로 IP 부족 현상 해결하기

네트워크에서 호스트가 늘어나 IP 주소가 부족해지면 보통은 VLAN을 추가로 구성해 대역을 분리합니다. 하지만 VLAN을 새로 파거나 서브넷을 다시 나누기 어려운 특수한 상황도 있죠.

이때 활용할 수 있는 것이 바로 세컨더리 IP(Secondary IP)입니다. 서브넷 단위를 따로 나누지 않고 L3 장비의 인터페이스 하나에 IP 대역을 추가로 할당해 IP 부족 문제를 해결하는 방법입니다. 기존 구성을 크게 건드리지 않고 같은 물리 인터페이스에서 두 개 이상의 네트워크 대역을 함께 사용할 수 있습니다.

이번 글에서는 TP-Link의 L3 스위치(SG3428XF)와 라우터(ER7206)를 조합해 세컨더리 IP를 추가하고, 두 대역이 서로 정상적으로 통신·라우팅되도록 설정하는 과정을 정리합니다.


실습 환경 / 구성도

실제 장비가 없어도 TP-Link에서 제공하는 웹 에뮬레이터로 동일하게 따라 할 수 있습니다.

이번 예시의 IP 구성은 다음과 같습니다.

구분 주소 설명
ER7206 (게이트웨이) 192.168.0.1 외부로 나가는 기본 게이트웨이
SG3428XF (L3 스위치) 192.168.0.250 스위치 관리/통신용 고정 IP
기존 대역 192.168.0.0 / 24 1차(Primary) 네트워크
추가 대역(Secondary) 192.168.1.0 / 24 세컨더리 IP로 확장한 네트워크

핵심 아이디어는 L3 스위치에 192.168.1.0/24 대역을 세컨더리 IP로 추가한 뒤, 스위치와 라우터 양쪽에 정적 라우팅(Static Route)을 걸어 두 대역이 서로를 찾아갈 수 있게 만드는 것입니다.


STEP 1. SG3428XF — 인터페이스에 세컨더리 IP 추가

먼저 L3 스위치에서 인터페이스 메뉴로 이동합니다.

  1. [L3 FEATURES] → [Interface] 메뉴로 이동합니다.
  2. VLAN 목록에서 사용할 인터페이스의 Edit IPv4를 선택합니다.
  3. SG3428XF 장비의 IP는 고정 IP(Static)로 설정합니다. (예: 192.168.0.250)
  4. [ADD] 버튼을 눌러 추가할 세컨더리 IP 대역을 지정합니다.

아래처럼 세컨더리 IP에 192.168.1.1 / 255.255.255.0을 입력하고 Create를 눌러 추가합니다. 이 192.168.1.1이 새 대역(192.168.1.0/24)의 게이트웨이 역할을 합니다.

▲ 세컨더리 IP 추가  — IP 192.168.1.1 / Subnet Mask 255.255.255.0


STEP 2. SG3428XF — 정적 라우팅(기본 경로) 추가

세컨더리 IP를 추가했다면, 스위치가 자신이 모르는 대역(예: 인터넷)으로 나갈 길을 알려줘야 합니다. [Static Routing] → [Add]에서 게이트웨이(ER7206)를 향한 기본 경로를 추가합니다.

Destination 0.0.0.0 모든 IP 대상(기본 경로)
Subnet Mask 0.0.0.0 모든 대역
Next Hop 192.168.0.1 게이트웨이(ER7206) 주소
Distance 1 관리 거리(Administrative Distance), 1~255

참고: 여기서 Distance는 VLAN ID가 아니라 경로의 우선순위를 정하는 관리 거리(Administrative Distance) 값입니다. 값이 낮을수록 우선순위가 높으며, 보통 기본값 1을 사용합니다.

▲ IPv4 Static Routing — Destination 0.0.0.0 / Mask 0.0.0.0 / Next Hop 192.168.0.1 / Distance 1


STEP 3. ER7206 — 추가 대역으로 가는 정적 경로 등록

마지막으로 라우터(ER7206)에게 "192.168.1.0 대역은 L3 스위치를 통해 갈 수 있다"는 것을 알려줘야 합니다. [Transmission] → [Routing] → [Static Route]에서 다음과 같이 경로를 추가합니다. (펌웨어/UI 버전에 따라 [Transmission] → [Static Route]로 바로 보이기도 합니다.)

Name Secondary 경로 식별용 이름(자유)
Destination IP 192.168.1.0 추가한 세컨더리 대역
Subnet Mask 255.255.255.0 대상 대역의 서브넷 마스크
Next Hop 192.168.0.250 L3 스위치(SG3428XF) 주소
Interface LAN 경로가 나가는 인터페이스
Metric 0 경로 우선순위(0~15)
Status Enable 경로 활성화

▲ ER7206 Static Route — Destination 192.168.1.0 / Next Hop 192.168.0.250 / Interface LAN


마무리 — 동작 확인

여기까지 설정하면 끝입니다. 정리하면 흐름은 이렇습니다.

  • 스위치(SG3428XF): 인터페이스에 세컨더리 IP(192.168.1.1/24) 추가 + 게이트웨이로 향하는 기본 경로
  • 라우터(ER7206): 세컨더리 대역(192.168.1.0/24)을 스위치(192.168.0.250)로 보내는 정적 경로

호스트(PC) 게이트웨이 설정 팁: 새 대역(192.168.1.0/24)에 연결되는 단말은 게이트웨이를 스위치의 세컨더리 IP인 192.168.1.1로, 기존 대역(192.168.0.0/24)의 단말은 기존 게이트웨이(192.168.0.1 또는 192.168.0.250)로 지정합니다. 단말의 게이트웨이가 올바르게 설정돼야 다른 대역으로 나가는 트래픽이 L3 장비를 거쳐 정상 라우팅됩니다.

 

이렇게 양쪽 라우팅을 맞춰주면 두 IP 대역(192.168.0.0/24, 192.168.1.0/24)이 서로 통신하고 라우팅도 정상적으로 동작하는 것을 확인할 수 있습니다. VLAN을 추가하지 않고도 같은 L3 인터페이스에서 IP 대역을 확장한 셈이죠.

 

한 줄 요약: 세컨더리 IP는 VLAN 분리가 어려운 환경에서 IP 부족을 빠르게 해소하는 좋은 방법입니다. 단, 라우팅 테이블이 복잡해질 수 있으니 대역과 경로를 명확히 문서화해 두는 것이 좋습니다.

TP-Link ER605 Site-to-Site VPN 설정 방법

이번 글은 TP-Link Omada ER605 두 대를 이용해 본사와 지사를 IPsec Site-to-Site VPN으로 연결하는 방법을 정리한 글입니다.

기준 화면은 ER605 V2 5.11 에뮬레이터입니다. 실제 장비에서는 펌웨어 버전이나 Omada Controller 사용 여부에 따라 메뉴명이 조금 다를 수 있습니다.

핵심은 세 가지입니다.
- 본사와 지사의 LAN 대역은 서로 달라야 합니다.
- 양쪽 ER605의 IPsec 제안값과 Pre-shared Key가 같아야 합니다.
- 연결 후에는 IPsec SA와 ping 테스트로 터널 상태를 확인해야 합니다.

1. 구성 예시

본사 ER605
- WAN 주소: hq.example.net 또는 공인 IP
- LAN 대역: 192.168.10.0/24

지사 ER605
- WAN 주소: branch.example.net 또는 공인 IP
- LAN 대역: 192.168.20.0/24

VPN 방식
- IPsec LAN-to-LAN

본사와 지사의 LAN 대역이 같으면 라우터가 목적지를 구분하지 못합니다. 예를 들어 양쪽이 모두 192.168.0.0/24라면 한쪽 대역을 먼저 변경해야 합니다.

ER605에서는 VPN → IPsec → IPsec Policy 메뉴에서 정책을 추가합니다.

2. 본사 ER605 IPsec Policy 설정

본사 장비에서는 지사 쪽을 Remote Gateway로 보고 정책을 만듭니다.

입력 예시
- Policy Name: HQ_to_BRANCH
- Mode: LAN-to-LAN
- Remote Gateway: branch.example.net 또는 지사 공인 IP
- WAN: 인터넷에 연결된 WAN
- Local Network: 192.168.10.0/24
- Remote Subnet: 192.168.20.0/24
- Pre-shared Key: 양쪽 장비에 동일하게 입력
- Status: Enable

Remote Gateway에는 상대 지점의 공인 IP나 DDNS 주소를 넣습니다. 유동 IP 회선이라면 DDNS 사용을 권장합니다.

3. 지사 ER605 설정

지사 장비는 본사와 반대로 입력합니다.

입력 예시
- Policy Name: BRANCH_to_HQ
- Mode: LAN-to-LAN
- Remote Gateway: hq.example.net 또는 본사 공인 IP
- Local Network: 192.168.20.0/24
- Remote Subnet: 192.168.10.0/24
- Pre-shared Key: 본사와 동일한 값

양쪽의 Local Network와 Remote Subnet이 서로 뒤집혀 들어간다고 보면 됩니다.

4. Advanced Settings에서 맞출 값

- IKE Protocol Version: IKEv2 우선
- Phase 1: SHA256 / AES256 / DH14 권장
- Phase 2: ESP / SHA256 / AES256 권장
- PFS: 사용 여부를 양쪽 동일하게 설정
- DPD: Enable 권장

IPsec은 한쪽이라도 암호화 제안값이 다르면 터널이 올라오지 않습니다. 연결이 안 될 때는 본사와 지사의 Advanced Settings를 표로 놓고 하나씩 비교하는 것이 가장 빠릅니다.

5. 연결 확인

설정을 저장한 뒤에는 VPN → IPsec → IPsec SA에서 터널 상태를 확인합니다. 에뮬레이터에서는 실제 통신이 없기 때문에 SA 목록이 비어 있지만, 실제 장비에서는 터널이 협상되면 SA 항목이 생성됩니다.

본사 PC에서 지사 게이트웨이와 지사 PC로 ping을 보내 터널을 깨워봅니다.

ping 192.168.20.1
ping 192.168.20.100
tracert 192.168.20.100

반대로 지사 PC에서도 본사 게이트웨이와 본사 PC로 ping 테스트를 진행합니다.

자주 나는 문제
- IPsec SA가 생성되지 않음: Remote Gateway, PSK, IKE/Phase 1/2 제안값 확인
- 터널은 올라왔지만 내부망 접속 불가: Local/Remote Subnet, 방화벽, PC 자체 방화벽 확인
- 한쪽에서만 ping 가능: 반대쪽 라우팅, 게이트웨이, Windows 방화벽 확인
- 유동 IP 환경에서 자주 끊김: DDNS 갱신, 기존 SA 재협상, DPD 설정 확인

정리
- 본사-지사 연결은 IPsec LAN-to-LAN 방식으로 구성합니다.
- 양쪽 LAN 대역은 반드시 달라야 합니다.
- Pre-shared Key와 Phase 1/2 값은 양쪽이 같아야 합니다.
- 연결 확인은 IPsec SA와 ping 테스트로 진행합니다.

※No Ai Content

Ai가 쓴글은 확실성을 장담할수 없습니다. 실제 테스트가 진행된 글입니다.

 

WireGuard VPN 이란?

WireGuard는 기존 OpenVPN, IPSec보다 훨씬 빠르고 설정이 간단한 최신 VPN 프로토콜입니다. 집에서 사무실 NAS, 서버, 내부 시스템에 안전하게 접근할 수 있으며, TP-LINK Omada 게이트웨이(ER605, ER7206 등)에서 공식 지원합니다.

주요 장점

  • 빠른 속도 (기존 VPN 대비 최대 3배 이상)
  • 강력한 최신 암호화 (ChaCha20, Curve25519)
  • 설정이 단순하고 유지보수가 쉬움
  • 배터리 소모가 적어 모바일에도 적합

사전 준비 사항

항목내용
장비 TP-LINK ER605 V2 이상 (V1은 WireGuard 미지원)
펌웨어 최신 펌웨어 업데이트 권장
사무실 공인 IP 고정 IP 권장 (유동 IP면 DDNS 설정 필요)
클라이언트 앱 Omada VPN 클라이언트 (Windows/Mac/iOS/Android)

⚠️ ER605 V1은 WireGuard를 지원하지 않습니다. 반드시 V2 이상 사용


전체 설정 흐름

[집 PC / 스마트폰]
       ↕ WireGuard 암호화 터널
[사무실 ER605] ── [사무실 LAN: NAS, 서버 등]
 
 

 

1단계 — 사무실 공인 IP 확인

사무실 인터넷에서 아래 사이트 접속 후 공인 IP 확인:

👉 https://whatismyip.com

  • 고정 IP → IP 주소 메모 후 바로 사용
  • 유동 IP → ER605에서 DDNS 설정 필요
    • 관리페이지 → Network → Dynamic DNS
    • NO-IP, DynDNS 등 무료 서비스 활용 가능

2단계 — ER605 WireGuard 인터페이스 생성

ER605 관리페이지(192.168.0.1) 접속 후:

VPN → WireGuard → Add

항목입력값설명
Name Office_VPN 원하는 이름
MTU 1420 기본값 그대로
Listen Port 51820 WireGuard 기본 포트
Local IP Address 10.10.10.1 VPN 전용 IP (기존 LAN과 겹치면 안 됨)
Private Key 자동생성 건드리지 말 것
Public Key 자동생성 📋 반드시 복사해서 메모 (Wda********로 시작하는)

설정 완료 후 OK 클릭

💡 Local IP는 사무실 LAN(예: 192.168.0.x)과 다른 대역으로 설정해야 합니다. 사무실 LAN이 192.168.0.x이면 WireGuard IP는 10.9.0.x 또는 10.10.10.x 등으로 설정

 

 

3단계 — Omada VPN 클라이언트 설치 및 설정

클라이언트 다운로드

👉 https://support.omadanetworks.com/kr/download/software/vpn-client/

Windows, Mac, iOS, Android 모두 지원

새 프로필 추가

앱 실행 → 새 프로필 추가 → 유형: WireGuard VPN

[서버 정보]

항목입력값
IP 사무실 공인 IP (예: 123.200.126.xxx)
포트 51820
공용키 (서버) 2단계에서 복사한 ER605의 Public Key  (Wda********로 시작하는)

[IP 속성]

항목입력값
IP 주소 10.10.10.100/32 (클라이언트 VPN IP)
DNS 8.8.8.8

 

 

 

 

생성 버튼 클릭하면 사설키/공용키 자동 생성됨 → 생성된 공용키(o+iDh...)를 복사해서 메모 (다음 단계에서 사용)

[고급 옵션]

항목입력값
Keepalive 25
전체 VPN 트래픽 활성화 끄기 (스플릿 터널 — 사무실만 VPN 경유)
원격 서브넷 192.168.0.0/24 (접속희망하는 사무실 LAN 대역)

⚠️ 전체 VPN 트래픽 활성화를 켜면 모든 인터넷 트래픽이 VPN을 통해 나가서 집 인터넷이 느려지거나 끊긴 것처럼 느껴질 수 있습니다. 꼭 끄세요!

 

 

4단계 — ER605 Peer 등록

ER605 관리페이지 → VPN → WireGuard → Peers 탭 → Add

항목입력값
Interface Office_VPN (2단계에서 만든 인터페이스)
Public Key 3단계에서 복사한 클라이언트 공용키
Allowed Address 10.9.0.2/32 (클라이언트 IP와 동일하게)
Endpoint 비워두기
Persistent Keepalive 25

OK 클릭

💡 Allowed Address는 ER605가 "이 Public Key를 가진 클라이언트의 VPN IP는 이것이다" 라고 인식하는 값입니다. 클라이언트 IP 주소와 반드시 일치해야 합니다.

 

 

 

5단계 — 연결 및 확인

Omada VPN 앱에서 연결 클릭

연결 성공 확인 방법

ER605 관리페이지 → VPN → WireGuard → Peers 에서:

  • Last Handshake 시간이 표시되면 ✅ 연결 성공
  • TX/RX Bytes 숫자가 올라가면 ✅ 데이터 통신 중

CMD(명령 프롬프트)에서 핑 테스트:

ping 10.9.0.1        ← ER605 WireGuard IP
ping 192.168.0.1     ← ER605 LAN IP
ping 192.168.0.100   ← 사무실 NAS 또는 서버
 
 

 


스마트폰 연결 방법 (iOS / Android)

  1. App Store 또는 Google Play에서 Omada VPN 앱 설치
  2. ER605 Peers 화면에서 해당 Peer의 QR 코드 버튼 클릭
  3. 앱에서 QR 코드 스캔 → 자동으로 설정 완료

자주 발생하는 문제 & 해결법

증상원인해결법
VPN 연결 후 인터넷 끊김 전체 VPN 트래픽 활성화가 켜져 있음 고급 옵션에서 토글 끄기
Handshake가 안 됨 공용키 불일치 서버↔클라이언트 Public Key 교차 확인
연결은 됐는데 NAS 접근 불가 원격 서브넷 미설정 사무실 LAN 대역 (예: 192.168.0.0/24) 입력
WireGuard 메뉴가 없음 ER605 V1 사용 중 V2 이상으로 교체 필요
포트 연결 실패 이중 NAT 환경 ISP 공유기에서 UDP 51820 포트포워딩 설정
연결 후 금방 끊김 Keepalive 미설정 Keepalive 값을 25로 설정

키 교환 구조 요약

헷갈리기 쉬운 키 설정을 한눈에 정리했습니다:

ER605 Public Key  →  집 PC 앱 [공용키(서버)] 칸에 입력
집 PC 공용키      →  ER605 Peers [Public Key] 칸에 입력
 
 

서로 상대방의 Public Key를 교환하는 구조입니다.


관련 링크

 

WireGuard: fast, modern, secure VPN tunnel

WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant th

www.wireguard.com

 

 

#TP-LINK #티피링크 #ER605 #ER7206 #WireGuard #WireGuardVPN #VPN설정 #사무실VPN #재택근무VPN #원격접속 #NAS원격접속 #Omada #OmadaVPN #오마다 #티피링크VPN #VPN터널 #스플릿터널 #SplitTunnel #포트포워딩 #DDNS #홈네트워크 #소규모사무실 #중소기업VPN #WireGuard설정방법 #VPN클라이언트 #Peer설정 #네트워크보안 #원격근무 #재택근무 #자체VPN구축

Array Configuration Utility 입니다. 통칭 SSA

 

cp044526.exe
13.74MB

 

'HP > 서버' 카테고리의 다른 글

ibm op 판넬  (0) 2016.10.28
HP Microserver Gen8 windows server 2012 설치방법  (0) 2016.09.11
HP server ESXi 구성하기  (0) 2016.09.11
HP server iLO 라이센스 발급받기  (0) 2016.09.11
HP Microserver Gen8 ILO  (0) 2016.09.11

가끔 리눅스 크론탭 번호를 잘못설정해서 nano 로 계속 열리거나

vim 으로 열리는 경우가 있다.

 

그경우 다음과 같이 변경하면된다.

 

나노로 변경

export VISUAL=nano; crontab -e

vim 으로 변경

export VISUAL=vim; crontab -e

vi 로 변경

export VISUAL=vi; crontab -e

일단 필자는 에이텐 KVM 스위치를 사용하고 있고 CS62US 모델을 사용중이고

 

로지텍은 M705를 사용중이다...(8년째 가성비로 참고 쓰는중)

 

해당 KVM 스위치는 핫키 지원이 되고 핫키 설정 및 기타 설정을 할 수 있는 모델이다.

 

그래서 메뉴얼에 있는 설정 중 마우스 에뮬레이터? 기능을 켜고 끌 수 있게 되어있다.

 

무슨 기능인지 모르겠는데 누군가는 마우스 인식이 안될 때 이 기능을 껏다고 해서 나도 해봤다.

 

[NumLock + (-)]로 설정 메뉴에 진입 후 [m] 키로 해당 기능을 껐다.

 

결과는 성공 !!!!!

 

아래 메뉴얼 이미지를 첨부하니 참고하길...



출처: https://cofs.tistory.com/424 [CofS]

 

KVM 스위치 CS62US에서 로지텍 마우스 사용하기

망분리된 환경에서 KVM 스위치 사용은 자주 있는 일이다. 그런데 일부 제품들에서 로지텍 무선마우스 지원이 안되더라... 필자도 4개 제품을 사용해봤는데(다른 이유로...) 그중 2개가 로지텍 마우

cofs.tistory.com

 

갑작스러운 the password has expired error 로 당황할때가 있습니다..

 

 

비밀번호는 SYSTEM 계정으로 들어가서 다음 명령으로 변경하면 됩니다.

 

ALTER USER user_id IDENTIFIED BY new_password;

 

만약 집에서 개인정으로 테스트 해보는 환경이라면 매번 비밀번호를 변경하는게 불편할 수도 있겠습니다. 다음 명령으로 만료가 되지 않도록 설정할 수 있습니다.

 

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

 

추가로 또 하나 이야기 하자면, 로그인 시 비밀번호가 10번 틀리면 계정이 잠기는 것이 기본 프로필 설정입니다. 잠긴 계정을 풀려면 다음 명령을 사용합니다.

 

ALTER USER user_id ACCOUNT UNLOCK;

 

시스템 계정까지 비밀번호가 비밀번호가 만료되었다면 시스템의 로컬에서 sqlplus 를 사용해서  인증없이 로그인한 후 비밀번호를 변경하면 되겠습니다. 다음처럼 합니다.



출처: https://offbyone.tistory.com/118 [쉬고 싶은 개발자]

'프로그래밍언어 > Oracle' 카테고리의 다른 글

Mariadb 백업 및 복구  (0) 2020.02.26
오라클 명령어  (0) 2018.10.15
ORA-01034: ORACLE not available 에러  (0) 2018.07.31

Python jupyter notebook 설치

 

#pip를 이용한 notebook 설치
pip install notebook


#config 파일 생성하기 (생성후 생성된 conifg 경로 확인)
jupyter notebook --generate-config

#password hash 만들기
python
from notebook.auth import passwd
passwd()


까지 입력하면 패스워드 묻는프롬프트가 나타남 두번 입력한후.
해쉬가 나타나면 해당 해쉬를 복사.

 

 

#config 파일 생성하기 (생성후 생성된 conifg 경로 확인) 의 경로를 찾아가 vi 편집기 실행

 

vi /root/.jupyter/jupyter_notebook_config.py 

다음사항들의 # 주석을 해제

설정 방법
비밀번호 설정 c.NotebookApp.password 주석 해제 후 아까 생성후 복사해둔 해쉬 붙여넣기
기본 작업 경로 설정 c.NotebookApp.notebook_dir주석해제 후 실행하고자하는 dir 지정 (ex, /home/(사용자이름) )
외부 접속 허용 c.NotebookApp.allow_origin = '*'
서버를 띄울 아이피 설정 c.NotebookApp.ip = '0.0.0.0'
주피터 서버 실행 시 브라우저 실행 X c.NotebookApp.open_browser = False
주피터 서버 포트 c.NotebookApp.port = 8888

Sh 파일로 만들어 실행하기.

nohup /root/venv/bin/jupyter notebook --allow-root &

 

 

완료이후 

 

http://해당서버ip:8888 접속하면

 

다음과 같은 화면이 나타납니다.

 

 

CDKey.vbs
0.00MB
CD-key.ps1
0.00MB

Windows CD-Key 알아내기

Microsoft/NT 2013. 6. 5. 15:01

내가 쓰고 있는 Windows에 CD-Key(Product Key)를 찾아내는 방법은 여러가지 입니다.

간편하게 MagicalJellyBean http://www.magicaljellybean.com/keyfinder/ 같은 간단한 프로그램을 이용하는 방법도 있지만, 해당 컴퓨터에 설치를 필요로 하지요

 

1. Magical Jelly Bean의 Keyfinder프로그램

 

2. VBS스크립트를 활용

또다른 방법으로 스크립트를 이용하면 별도의 프로그램 설치필요 없이도 가능 합니다.

아래는 구글링으로 찾아낸 VBS 

 

++Script 펼치기

 

 

해당내용을 메모장에 붙여넣기 하여 .vbs 형식으로 저장한뒤 더블클릭으로 확인 가능합니다.

  ㄴ 또는 아래의 파일을 다운받으세요

 

 CDKey.vbs


 

하지만, 위 두가지 방법으로는 Volume license로 적용된 CD-Key는 확인이 불가능 합니다.

이유는 해당 키값을 레지스트리에 암호화된 상태로 남아, 모두 BBBBB-BBBBB-BBBBB-BBBBB-BBBBB 이런 형식으로 보이기 때문이지요.

 

그래서, 또다시 구글링으로 방법을 찾아보았습니다.

3. PowerShell을 이용한 방법

 

 

3.1 아래의 스크립트를 메모장에 복사한 후 .PS1 형태로 저장 합니다.

     ㄴ 또는 아래의 파일을 받으세요

 CD-key.ps1

 

 

+++PS 스크립트 펼치기

 

 

3.2 PowerShell을 실행후, Set-ExecutionPolicy Unrestricted 와 Set-ExecutionPolicy RemoteSigned 를 각각 실행 합니다.

 

3,3 위 .PS1파일을 바로 실행하거나, (방법은 이곳: http://technet.microsoft.com/en-us/library/ee176949.aspx 참조)

         ㄴ 복사후 PS창에 붙여 넣기 합니다. (아래그림참조)

 

 

 

3.4 Get-WindowsKey 커맨드로 CD-Key확인. 이상 끝.

 

혹시 안되면 댓글 남겨주세요.

출처는 http://mspowershell.blogspot.kr/

'운영체계자료 > Windows NT Server' 카테고리의 다른 글

MSE 윈도우서버에 설치하는방법  (0) 2018.07.21
server 블루스크린 c00002e2  (0) 2016.04.07

package.json 파일만 옮긴이후.

 

npm install

 

Option Explicit
Dim objshell,path,DigitalID, Result
Set objshell = CreateObject("WScript.Shell")
'Set registry key path
Path = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
'Registry key value
DigitalID = objshell.RegRead(Path & "DigitalProductId")
Dim ProductName,ProductID,ProductKey,ProductData
'Get ProductName, ProductID, ProductKey
ProductName = "Product Name: " & objshell.RegRead(Path & "ProductName")
ProductID = "Product ID: " & objshell.RegRead(Path & "ProductID")
ProductKey = "Installed Key: " & ConvertToKey(DigitalID)
ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey
'Show messbox if save to a file
If vbYes = MsgBox(ProductData & vblf & vblf & "Save to a file?", vbYesNo + vbQuestion, "BackUp Windows Key Information") then
Save ProductData
End If
'Convert binary to chars
Function ConvertToKey(Key)
Const KeyOffset = 52
Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
'Check if OS is Windows 8
isWin8 = (Key(66) \ 6) And 1
Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
i = 24
Maps = "BCDFGHJKMPQRTVWXY2346789"
Do
Current= 0
j = 14
Do
Current = Current* 256
Current = Key(j + KeyOffset) + Current
Key(j + KeyOffset) = (Current \ 24)
Current=Current Mod 24
j = j -1
Loop While j >= 0
i = i -1
KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput
Last = Current
Loop While i >= 0

If (isWin8 = 1) Then
keypart1 = Mid(KeyOutput, 2, Last)
insert = "N"
KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
If Last = 0 Then KeyOutput = insert & KeyOutput
End If
ConvertToKey = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & Mid(KeyOutput, 21, 5)
End Function
'Save data to a file
Function Save(Data)
Dim fso, fName, txt,objshell,UserName
Set objshell = CreateObject("wscript.shell")
'Get current user name
UserName = objshell.ExpandEnvironmentStrings("%UserName%")
'Create a text file on desktop
fName = "C:\Users\" & UserName & "\Desktop\WindowsKeyInfo.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set txt = fso.CreateTextFile(fName)
txt.Writeline Data
txt.Close
End Function

해당파일을 vbs 확장자로 저장하거나 첨부된 파일을 다운받은후에.

 

wscript.exe "check.vbs"

실행하면 

시디키를 확인할수있다.

 

DHCP 활성화 방법

Network -> DHCPServer -> Status : Enable 체크

 

외부 Remote 활성화

 

System Tools -> Admin Setup -> Remote Management -> Add

Subnet : 0.0.0.0 / 0 입력

 

이후 공인ip로 접근시 해당 공유기에 접근할수 있습니다. 

공식 메뉴얼 

https://www.tp-link.com/us/support/faq/66/

 

How do I configure Remote Management for my TP-Link Wireless Router? | TP-Link

How do I configure Remote Management for my TP-Link Wireless Router? Step 1 Open the web browser and in the address bar type in: http://192.168.1.1 or http://192.168.0.1 or http://tplinklogin.net Then press Enter. Note: The LAN IP is vary by model. Please

www.tp-link.com

전체 문서 메뉴얼

https://www.tp-link.com/kr/support/download/tl-er6020/v1/

 

다운로드 함 TL-ER6020 | TP-Link 대한민국

TP Link - Download Center Detail

www.tp-link.com

세부설정 옵션 메뉴얼

https://www.tp-link.com/us/configuration-guides/configuring_network/?configurationId=18572#configuring_the_wan_8_2

 

configuring_network

VLAN Add the WAN port to a VLAN. Generally, you don’t need to manually configure it unless required by your ISP. By default, the WAN port is automatically assigned to a VLAN, and the egress rule of the VLAN is UNTAG, so the packets are transmitted by the

www.tp-link.com

 

 

Mongodb replicaset 으로 구성하여 사용하던 도중에 .. master 이 올라가지 않는 문제가 발생했다.

 

시스템이 비정상 셧다운된이후였는데. 올라가는 로그를 보니 

 

쉽게 해결되긴 어려워 보였다..

 

slave 는 정상 구동중인 상태였으므로.

 

그냥 master 을 삭제하고 다시 구성하면 되지 않을까싶어 해보았다.

 

 

mongo --port 26026 -u "id" -p "Password" --authenticationDatabase "admin"

salve 권한이 있는 포트로 접속한후 

rs.remove("localhost:26016")

과감히 삭제이후 다시새로운 곳에 다음과 같이 폴더를 생성한후

mkdir /var/lib/mongo/master
mkdir /var/lib/mongo/master/log

 conf  파일을 생성

# mongod.conf

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb/master
  journal:
    enabled: true

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/lib/mongodb/master/log/mongod.log

# network interfaces
net:
  port: 26016
  bindIp: 127.0.0.1

processManagement:
  timeZoneInfo:  /usr/share/zoneinfo
  fork: true 

replication:
  replSetName: "replica"

 

 

 

이후 mongodb 에 접속하여 새로운 master 다시 추가.

rs.add( { _id:0,host:"127.0.0.1:26016",priority:2} )

 

이렇게하면 모두 완료된다..

 

 

replicaset 구성방법은 이전글을 참고하시면 됩니다.

 

https://ospetabyte.tistory.com/571?category=758411

 

MongoDB 설치 MongoDB replicaset 설정

우분투 18.04 기준으로 되어있습니다.  1. MongoDB 설치 wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - sudo apt-get install gnupg wget -qO - https://www.mongodb.org/..

ospetabyte.tistory.com

 

 

pip install virtualenv

virtualenv python 
# python 이라는 경로로 가상환경 설치

source bin/activate

실행

 

아이들이 필요로해서 사는것인데 그걸가지고 장사를 한다니 너무 보기 안좋네요..

 

그분들도 다 아이들이 있으실껀데. 그래서 굳이 캠을 사지않고 스마트폰으로 가능한 방법이 있어서

 

이렇게 공유드립니다. 

 

많은분들이 비싸게 캠을 사지 않고 원격 수업을 들었으면 하는마음에서 도메인에 사이트를 올렸습니다.

 

누구나 보고 쉽게 설치할수있게 설명해놓았습니다.

 

이렇게 설치하고 제가 테스트한곳들은 웹상에서 캠이 필요로하는 곳들은 테스트했을땐 정상적으로 작동하였습니다.

 

가장 좋은테스트는 원격수업을 하는 실무에 있는분들이 테스트해줬으면 하는 바램입니다. 

 

제가 어떻게 그분들께 연락을 할수가없으니 이방법이 많이 공유되어 비싸값에 캠을 구매하지 않고

 

학생들이 정상적으로 수업을 받았으면 하는 마음입니다.

 

http://schoolcam.shop/

 

 

스마트폰 캠으로 사용하는방법!

PC에 필요한 다운로드 프로그램 사이트 (iriun):

사이트 바로가기 바로 다운로드

 

**주의사항**

스마트폰은 Wifi가 연결되어있어야만합니다. 스마트폰과 PC 의 네트워크가 같은곳에 있어야합니다.

1 - PC START

설치 프로그램 아이콘 실행

2

동의후 Next 버튼

3

Next 버튼

4

Install 버튼

5

체크박스 선택후 Finish 버튼

6 - PC END

해당화면이 실행되었다면 정상적으로 PC 설치 완료

1 - Phone START

휴대폰에서 Google Play 어플 실행

2

ir 만 검색하셔도 아래 추천 검색어가 나오게됩니다.

3

설치 버튼을 눌러줍니다.

4

설치가 완료되면 App을 실행합니다.

5

설치가 완료되면 App을 실행합니다.

6

허용클 눌러줍니다.

7

허용클 눌러줍니다.

8- PHONE END

이제 PC 와 스마트폰이 캠으로연결되었습니다.

충격적인 자바스크립트 문법을 보았다...

 

        if(x !==3){
            console.log(y);
            var y = 5;
            if(y === 5){
                var x =3;
            }
            console.log(y);
        }
        if(x ===3){
            console.log(y);
        }

이문법을 보고 console.log(y) 에서 오류가 발생할꺼라고 생각했지만. 이문법은 아래와 같이 해석된다.

 

        var x;
        var y;
        if(x !==3){
            console.log(y);
            var y = 5;
            if(y === 5){
                var x =3;
            }
            console.log(y);
        }
        if(x ===3){
            console.log(y);
        }

애초당시 처음 선언했던것처럼 코드를 짜면 안되지만.. 호이스트를 확인하기 위해서.. 보았다..

 

        f();
        function f(){
            console.log(f);
        }

함수역시..

 

         function f(){
            console.log(f);
        }
        f();

 

https://git-scm.com/download/win

 

Git - Downloading Package

Downloading Git Now What? Now that you have downloaded Git, it's time to start using it.

git-scm.com

윈도우 64비트 사용자라면 해당 파란 체크 부분을 다운로드 설치 한다.

설치할때 이렇다할것은 없다 기본 셋팅으로 다음~을 눌러 진행하면 된다.

 

설치가 완료되면.

 

 

Git Bash 를 실행한다.

 

설치가 정상적으로 되었다면

git --version

 

 

 

위와같이 확인할수있다.

 

간단한 bash 명령어는 리눅스와 동일하다

 

 

git init #깃 경로 지정

vi .gitignore #깃 커밋 제외대상 추가

vi README.md #깃 메인 설명



환경설정 

git config --global user.name "Peta"
git config --global user.email "0petabyte@gmail.com"

확인은 git config --list

git add 폴더이름 or 파일명 또는 git add . (모든 파일 추가)

git commit -m "message 를 이곳에 적는다"

git remote  (기존에 설정이 안되었다면 아무것도 안나온다.)

git remote add origin https://github.com/TEST/TEST

이제 repository 에 연결완료.

git push origin master  입력하면 push 완료.

삭제

git -rm -r 폴더 git -rm -r file.js

git commit -m 'delete'

git push origin master 

'프로그래밍언어 > Git' 카테고리의 다른 글

깃허브 프로젝트 이름 변경하여 임포트하기.  (0) 2020.02.27
Git bash 명령어  (0) 2019.06.27

깃허브에서 프로젝트 임포트하려다가 보면 똑같은 프로젝트 이름때문에 . 임포트가 되지않는다..

 

 

Some Projects cannot be imported because they already exist in the workspace.

간혹.. 이경우때문에 기존프로젝트 이름을 변경하던가..해서 받곤했는데 가끔보면 너무 불편해서.

 

가능한 방법을 찾아보았다. 아래처럼 하면 가능하다!

 

먼저 깃에서 프로젝트를 다운받는다.

 

 

그다음 압축을 풀어서 프로젝트 폴더 이름을 변경한다.

 

그이후에

 

 

 

해당 프로젝트 경로까지 선택하면 바뀐 이름으로 프로젝트를 임포트 할수있다..

 

생각보다 간단한데.. 검색해도!!

 

.project 파일 수정해야되서 귀찮더라.. 

 

다른 방법이 잘보이지 않는다!! 그래서 직접 이렇게 하면 될것같은데? 싶어서 해본 방법이다.

 

추가!


 

프로젝트 임포트후 에러가 뜬다면..

 

Java version 을 바꾸어주면된다.!

 

 

 

 

'프로그래밍언어 > Git' 카테고리의 다른 글

[Git] 깃 허브 Bash 설치 및 기본 셋팅.  (0) 2020.03.04
Git bash 명령어  (0) 2019.06.27

백업.

mysqldump -u root -p dbname > /root/mariadb/backup.sql

 

 

복구

mysql -u root -p  dbname < backup.sql 

'프로그래밍언어 > Oracle' 카테고리의 다른 글

오라클 비번 만료(the password has expired)  (0) 2020.11.04
오라클 명령어  (0) 2018.10.15
ORA-01034: ORACLE not available 에러  (0) 2018.07.31
자료형 종류 예제
수(Number) 정수

76,197,750,

-11,

-234

실수(고정소수점)

3.14,

-2.717,

45.78

실수(부동소수점)

1e4, 

2.5e34,

5.67e-9,

7.66E-3

문자열 문자열

"1234"

"true"

"apple-run"

"사랑"

"\"JSP\""

제어문자

\b (백 스페이스)

\f (폼 피드)

\n (개행)

\r (캐리지 반환)

\t (탭)

\" (따움표)

\/ (슬래시)

\\ (역슬래시)

배열

배열은 대괄호[ ] 로 나타냅니다

배열의 각 요소는 기본 자료형이거나 배열, 객체입니다.

각 요소들은 쉼표 , 로 구분합니다

"name" : ["홍길동","이순신","임꺽정"]

// 대괄호 안에 배열 요소를 콤마 , 로 구분해서 나열합니다.

객체

JSON 개게는 중괄호 {}로 둘러싸서 표현합니다.

쉼표 , 를 사용해 여러 프로퍼티를 포함 할 수 있습니다.

{

   "name" : "홍길동",

   "age" : 16,

   "weight" : 67

}

// 중괄호 안에 name/value 쌍을 콤마로 구분해서 나열합니다. 

popupTest.html

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<script type="text/javascript">
window.onload = pageLoad;
function pageLoad(){
	notShowPop = getCookieValue();
	if(notShowPop != "true"){
		window.open("popUp.html","pop","width=400,height=500,history=no,resizable=no,status=no,scrollbars=yes,menubar=no");
		
	}
}

function getCookieValue(){
	var result="false";
	if(document.cookie != ""){
		cookie = document.cookie.split(";");
		for(var i=0; i<cookie.length;i++){
			element = cookie[i].split("=");
			value=element[0];
			value=value.replace(/^\s*/,'');
			if(value =="notShowPop"){
				result = element[1];
			}
		}
	}
	
	return result;
}

function deleteCookie(){
	document.cookie = "notShowPop=" + "false" + ";path=/; expires=-1";
}

</script>
</head>
<body>
	<form>
		<input type=button value="쿠기삭제" onClick="deleteCookie()">
	</form>
</body>
</html>

 

popUp.html

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<script type="text/javascript">
	function setPopUpStart(obj){
		if(obj.checked == true){
			var expireDate = new Date();
			expireDate.setMonth(expireDate.getMonth() +1);
			document.cookie = "notShowPop="+"true" + ";path=/; expires="+expireDate.toGMTString();
			
			window.close();
		}
	}
</script>
</head>
<body>
	<form>
		<input type=checkbox onClick="setPopUpStart(this)">오늘 더이상 팝업창 띄우지 않기
	</form>
</body>
</html>

 

'프로그래밍언어 > JavaScript' 카테고리의 다른 글

ES6 자바스크립트 호이스트  (0) 2020.03.06
json 자료형  (0) 2020.02.26
자바스크립트 slice 요소 복사  (0) 2018.11.14
자바스크립트 splice 배열요소 삭제  (0) 2018.11.14

if문 기본사용법

if [ 값1 조건식 값2 ];then

   수행문

 fi 

 

if 문 조건문 종류

[ -z ] : 문자열의 길이가 0이면 참

[ -n ] : 문자열의 길이가 0이 아니면 참



[ -eq ] : 값이 같으면 참

[ -ne ] : 값이 다르면 참

[ -gt ] :  값1 > 값2

[ -ge ] : 값1  >= 값2

[ -lt ] : 값1 < 값2

[ -le ] : 값1 <= 값2



[ -a ] : &&연산과 동일 and 연산

[ -o ] : ||연산과 동일 xor 연산



[ -d ] : 파일이 디렉토리면 참

[ -e ] : 파일이 있으면 참

[ -L ] : 파일이 심볼릭 링크면 참

[ -r ] : 파일이 읽기 가능하면 참

[ -s ] : 파일의 크기가 0 보다 크면 참

[ -w ] : 파일이 쓰기 가능하면 참

[ -x ] : 파일이 실행 가능하면 참

[ 파일1 -nt 파일2 ]  : 파일1이 파일2보다 최신파일이면 참

[ 파일1 -ot 파일2 ]  : 파일1이 파일2보다 이전파일이면 참

[ 파일1 -ef 파일2 ] : 파일1이 파일2랑 같은 파일이면 참

 

AND문

 if [ 값1 조건식 값2 -a 값1 조건식 값2 ];then

   수행문

 fi 

 

OR문

 if [ 값1 조건식 값2 -o 값1 조건식 값2 ];then

   수행문

 fi 

 

if elif문

if [ 값1 조건식 값2 ]
then
 수행문
   
elif [ 값1 조건식 값2]
then
 수행문
 
fi 

 

smbclinet 설치

sudo apt-get install smbclient cifs-utils

 

smb 클라이언트 정보 확인

 

smbclient -L 192.168.0.111 -U%   

 

 

연결

 

sudo mount -t cifs //컴퓨터이름(혹은 주소)/공유이름 /공유할/디렉토리

암호가 있을경우

   -o username=계정이름,password=암호

 

 

 

mongoDB 백업하기(dump)

mongodump -u user_name -p user_password --authenticationDatabase=admin --out /data/backup/ --db db_name --collection collection_name --gzip 

# 옵션 설명
-u : 계정명
-p : 계정의 비밀번호
--authenticationDatabase=admin : 인증
--host : 원격 시 IP 주소 및 포트 
--out : Dump 받을 폴더 경로
--db : Dump 받을 DB 선택 (미작성 시 DB 전체)
--collection : Dump 받을 collection(table) 선택  (미작성 시 Collection 전체)
--gzip : Dump 파일 확장자

 

mongoDB 복구하기(Restore)

mongorestore -u user_name -p user_password --host 192.168.0.100:8000 --authenticationDatabase=admin --gzip --db db_name --collection collection_name /data/backup/collection.bson.gz --drop

# 옵션 설명
-u : 계정명
-p : 계정의 비밀번호
--authenticationDatabase=admin : 인증
--host : 원격 시 IP 주소 및 포트
--db : Restore 할 DB 선택 
--collection : Restore 할 collection(table) 선택
--gzip : Restore 파일 확장자
--drop : 백업에 없는 collection 삭제



sudo apt-get install mariadb-server

 

sudo mysql_secure_installation

 

Set root password? [Y/n] Y 

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] n

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] y

 

 

셋팅완료후 접속을 하면..

root@peta:/home/peta# mysql -u -root -p
Enter password: 
ERROR 1698 (28000): Access denied for user '-root'@'localhost'

 

접속이 되질 않는다..

 

설정을 바꾸어주자.

root@peta:/home/peta# mysql

MariaDB [(none)]> use mysql;

MariaDB [mysql]> update user set plugin='' where user='root';

MariaDB [mysql]> flush privileges;

 

 

이제 데이터베이스와 계정을 생성하자.

 

MariaDB [(none)]> create database testDB;

MariaDB [(none)]> create user 'testId'@'%' identified by 'Passwd';

MariaDB [mysql]> grant all privileges on testDB.* to 'testId'@'%';

MariaDB [mysql]> flush privileges;

 

 

root@peta:/home/peta# vi /etc/mysql/mariadb.conf.d/50-server.cnf 
#문자열 변경
collation-server      = utf8mb4_unicode_ci

#외부접속허용
bind-address            = 0.0.0.0

 

이렇게 모든셋팅이 완료되었다.

+ Recent posts