vault backup: 2024-08-26 20:55:58

This commit is contained in:
tuska298 2024-08-26 20:55:58 +09:00
parent c9ce0ae737
commit 32c87f29ea
24 changed files with 1341 additions and 183 deletions

View File

@ -1,4 +1,5 @@
[
"obsidian-dirtreeist",
"obsidian-git"
"obsidian-git",
"number-headings-obsidian"
]

View File

@ -0,0 +1,13 @@
{
"skipTopLevel": false,
"firstLevel": 1,
"maxLevel": 6,
"styleLevel1": "1",
"styleLevelOther": "1",
"auto": true,
"separator": ".",
"contents": "",
"skipHeadings": "",
"startAt": "",
"off": false
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
{
"id": "number-headings-obsidian",
"name": "Number Headings",
"version": "1.16.0",
"minAppVersion": "1.4.0",
"description": "Automatically number or re-number headings in an Obsidian document",
"author": "Kevin Albrecht (onlyafly@gmail.com)",
"authorUrl": "https://www.kevinalbrecht.com",
"isDesktopOnly": false
}

View File

@ -0,0 +1,8 @@
div.number-headings-button-container > button {
font-weight: normal;
}
div.number-headings-question {
font-weight: bold;
margin-bottom: 10px;
}

View File

@ -4,39 +4,20 @@
"type": "split",
"children": [
{
"id": "8d88ecb58e1896b9",
"id": "97efbe1d11fc4123",
"type": "tabs",
"children": [
{
"id": "b441e35062a39cb4",
"type": "leaf",
"state": {
"type": "diff-view",
"state": {
"file": "Home Server/Network/nginx for reverse proxy.md",
"staged": false
}
},
"group": "d1fb0956c6dbe2c1"
}
]
},
{
"id": "ca6bd2afed1473ff",
"type": "tabs",
"children": [
{
"id": "91fb38d5658db1d5",
"id": "b3362951cffea02c",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Home Server/Gitea.md",
"mode": "preview",
"file": "Home Server/Network/DNS/DNS.md",
"mode": "source",
"source": true
}
},
"group": "d1fb0956c6dbe2c1"
}
}
]
}
@ -114,7 +95,9 @@
"type": "leaf",
"state": {
"type": "outline",
"state": {}
"state": {
"file": "Home Server/Network/DNS/DNS.md"
}
}
},
{
@ -123,6 +106,7 @@
"state": {
"type": "backlink",
"state": {
"file": "Home Server/Network/DNS/DNS.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -139,6 +123,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "Home Server/Network/DNS/DNS.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@ -169,21 +154,36 @@
"command-palette:명령어 팔레트 열기": false
}
},
"active": "b441e35062a39cb4",
"active": "6444ef15fb3eff8f",
"lastOpenFiles": [
"Home Server/Gitea.md",
"Home Server/Network/nginx for reverse proxy.md",
"Home Server/Gitea.md",
"windows/SSH 접속 설정.md",
"Obsidian Flavored Markdown.md",
"template/howto.md",
"template/base_template.md",
"SBC(Single-Board Computer)/SBC.md",
"SBC(Single-Board Computer)/Raspberry Pi.md",
"SBC(Single-Board Computer)/ODROID H4+.md",
"SBC(Single-Board Computer)/ODROID.md",
"linux/User.md",
"linux/RAID.md",
"linux/Network stat.md",
"linux/Network interfaces.md",
"linux/Group.md",
"linux/dig.md",
"linux/설치 후 첫 root 로그인.md",
"Home Server/Samba.md",
"Home Server/docker compose - temp.md",
"Home Server/Network/DNS/Domain.md",
"linux/Network Interfaces.md",
"linux/network stat.md",
"Home Server/Network/DNS/DNS.md",
"Home Server/Network/DNS/CoreDNS.md",
"linux/dig.md",
"_흥미로운 것/fail2ban.md",
"_흥미로운 것/메일 서버.md",
"_흥미로운 것/개인 도메인.md",
"daily/2024-07-27.md",
"Home Server/Network/DNS",
"Home Server/Network",
"linux/RAID.md",
"POE/3.25/재조합기 번역.md",
"POE/3.25/resources/07.접두접미완성1-1.png",
"POE/3.25/resources/08.접두접미완성1-2.png",
"POE/3.25/resources/08.접두접미완성1-2.png.crdownload",
@ -197,25 +197,10 @@
"POE/3.25/resources/04.옵션옮기기2-2.png.crdownload",
"POE/3.25/resources/03.옵션옮기기2-1.png",
"POE/3.25/resources/03.옵션옮기기2-1.png.crdownload",
"Obsidian Flavored Markdown.md",
"POE/3.25/resources/02.옵션옮기기1-2.png",
"POE/3.25/resources/02.옵션옮기기1-2.png.crdownload",
"POE/3.25/resources/01.옵션옮기기1-1.png",
"POE/3.25/resources/1.옵션옮기기1.png",
"POE/3.25/resources/1.옵션옮기기1.png.crdownload",
"POE/3.25/1. 스타터 냉기 방혈 지뢰 트릭스터/일지.md",
"Home Server/Samba.md",
"POE/3.25/파밍.md",
"linux/Group.md",
"linux/User.md",
"linux/설치 후 첫 root 로그인.md",
"_흥미로운 것/개인 도메인.md",
"_흥미로운 것/메일 서버.md",
"_흥미로운 것/fail2ban.md",
"windows/SSH 접속 설정.md",
"template/howto.md",
"template/base_template.md",
"SBC(Single-Board Computer)/ODROID H4+.md",
"SBC(Single-Board Computer)/Raspberry Pi.md"
"POE/3.25/resources/1.옵션옮기기1.png.crdownload"
]
}

View File

@ -1,8 +1,8 @@
# 전제조건
# 1. 전제조건
[[Network/nginx for reverse proxy|리버스 프록시]]가 필요함
# Install using docker
## Directory structure
# 2. Install using docker
## 2.1. Directory structure
```dirtree
- /mnt/md0/infra
- .env
@ -19,7 +19,7 @@
/gitea 폴더 새로 생성
/nginx/conf.d/locations/gitea.conf 파일 새로 생성
## Docker compose
## 2.2. Docker compose
/compose.yml 수정
```yml
name: infrastructure
@ -52,9 +52,9 @@ service:
driver: bridge
```
## Reverse Proxy
## 2.3. Reverse Proxy
### /nginx/nginx.conf
### 2.3.1. /nginx/nginx.conf
size 제한으로 인해 push에 실패할 수 있는 현상을 수정하기 위해 제한을 없앰
```nginx
@ -67,7 +67,7 @@ http {
}
```
### /nginx/conf.d/gitea.conf
### 2.3.2. /nginx/conf.d/gitea.conf
```nginx
location /git {
@ -81,7 +81,7 @@ location /git {
}
```
# Init
# 3. Init
수정할 설정 목록
- 데이터베이스 유형 : SQLite3
- 사이트 제목 : Home Gitea

View File

@ -2,8 +2,8 @@ Go로 작성된 오픈소스 [[DNS]] Server
경량, 유연성, 단순함이 특징
k8s의 기본 DNS로 사용됨
# Install using docker
## Directory structure
# 1. Install using docker
## 1.1. Directory structure
```dirtree
- /mnt/md0/infra
@ -16,14 +16,14 @@ k8s의 기본 DNS로 사용됨
- /data
```
## dotenv file
## 1.2. dotenv file
/.env
```
BASE_PATH=/mnt/md0/infra
```
## Docker compose
## 1.3. Docker compose
/compose.yml
```yml
@ -50,11 +50,11 @@ networks:
driver: bridge
```
## 추가로 필요한 사항 - 리눅스
## 1.4. 추가로 필요한 사항 - 리눅스
리눅스의 경우 53번 포트가 systemd-resolve 프로세스에 미리 점유되어 있다.
따라서 해당 프로세스가 53번 포트를 점유하지 않도록 바꿔주어야 DNS Server를 실행할 수 있다.
### 프로세스 확인
### 1.4.1. 프로세스 확인
```shell
sudo lsof -i :53
@ -68,7 +68,7 @@ systemd-r 671 systemd-resolve 16u IPv4 8661 0t0 UDP _localdnsproxy:do
systemd-r 671 systemd-resolve 17u IPv4 8662 0t0 TCP _localdnsproxy:domain (LISTEN)
```
### Edit systemd-resolved config
### 1.4.2. Edit systemd-resolved config
```shell
sudo vim /etc/systemd/resolved.conf
@ -112,19 +112,19 @@ DNSStubListener=no
#StaleRetentionSec=0
```
### Create symlink
### 1.4.3. Create symlink
```shell
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
```
### Reboot
### 1.4.4. Reboot
```shell
sudo reboot
```
# Corefile
# 2. Corefile
CoreDNS 의 설정 파일
```
@ -143,7 +143,7 @@ home.server {
}
```
# Zone file
# 3. Zone file
[[DNS#DNS Zone file]]
```

View File

@ -1,13 +1,13 @@
Domain Name System, 도메인 이름 시스템
[[Domain|도메인]]을 IP로 변환하는 시스템
# Public DNS server list
# 1. Public DNS server list
- 1.1.1.1 1.0.0.1 : Cloudflare DNS
- 8.8.8.8 8.8.4.4 : Google DNS
- 208.67.222.222 208.67.220.220 : Cisco OpenDNS
- 168.126.63.1 168.126.63.2 : KT DNS
# Self-hosted DNS server list
# 2. Self-hosted DNS server list
- BIND
- CoreDNS
- dnsmasq
@ -15,7 +15,7 @@ Domain Name System, 도메인 이름 시스템
- Pi-hole
- ...
# 변환 과정
# 3. 변환 과정
1. 클라이언트가 Recursive DNS resolver에게 쿼리를 보냄
2. Recursive DNS resolver의 캐시에 답변이 남아있으면 해당 답변을 답변함
3. Recursive DNS resolver의 캐시에 답변이 없으면 클라이언트 요청에 해당하는 TLD name server 정보를 Root name server에 쿼리함
@ -26,11 +26,11 @@ Domain Name System, 도메인 이름 시스템
8. Authoritative name server는 요청받은 도메인에 대해 DNS Zone 파일을 답변함
9. Recursive DNS resolver는 답변받은 도메인 정보를 클라이언트에 답변함
# DNS Zone file
# 4. DNS Zone file
도메인에 대한 정보를 기술해놓은 파일
파일의 각 줄(레코드)에는 여러 가지 정보를 기술할 수 있음
## Zone file 형식
## 4.1. Zone file 형식
```
$ORIGIN (zone name)
@ -57,19 +57,19 @@ www 3600 IN CNAME home.server.
>[!note]
>Zone file에서 `@` 기호는 `$ORIGIN` 값과 동일한 의미이다.
## Record
## 4.2. Record
- SOA : Start of Authority
- 이름, 관리자 이메일 주소, 캐시 새로 고침 정보 등을 기술
- 모든 DNS Zone file은 SOA 레코드를 가지고 있어야 함
- TTL : Time to Live, 캐시 유효 기간
- A, AAAA : IP 주소, A는 IPv4, AAAA는 IPv6에 해당
- MX : 도메인 SMTP 이메일 서버
- CNAME : Canonical name, CNAME에 기록된 도메인은 해당 Zone file에 기술된 도메인과 같은 IP를 참조하도록 함.
- CNAME : Canonical name, CNAME에 기록된 도메인은 해당 Zone file에 기술된 도메인과 같은 IP를 참조하도록 함
- NS : Name server, Authoritative name server 정보
- PTR : 역방향 DNS에 사용, IP 주소를 도메인에 매핑
- TXT : 이메일 인증을 위한 발신자 정책 프레임워크 레코드
- TXT : 아무 텍스트나 입력 가능
### SOA Record
### 4.2.1. SOA Record
```
NAME [TTL] IN SOA DNS-address admin-email-address (
@ -93,7 +93,7 @@ NAME [TTL] IN SOA DNS-address admin-email-address (
- expire : 마스터가 응답하지 않는 경우 2차 DNS가 이 영역에 대한 요청 응답을 중지해야 하는 시간(초)
- minimum : Negative TTL 값, 존재하지 않는 도메인에 대해 호스트가 존재하지 않는다는 답변을 캐싱하는 최소 시간
## Wildcard
## 4.3. Wildcard
DNS Zone의 모든 subdomain을 가리키려면 DNS record에 wildcard를 추가하면 된다.

View File

@ -1,44 +1,44 @@
# 도메인 (도메인 네임)
# 1. 도메인 (도메인 네임)
숫자로 이루어진 IP 주소를 문자로 이루어진 것으로 바꿔 기억하기 쉽게 만들어주는 인터넷 호스트 네임
좁은 의미로는 도메인 레지스트리에 등록된 이름을 말한다.
계층 구조에 따라서 도메인 네임이 결정된다.
도메인은 개인의 자산으로 간주된다.
# 호스트 네임 (호스트명)
# 2. 호스트 네임 (호스트명)
네트워크에 연결된 장치에 부여되는 고유한 이름
---
# 도메인 관리 체계
# 3. 도메인 관리 체계
## ICANN
## 3.1. ICANN
root DNS 관리, 신규 TLD 할당, IP 주소 관리, 레지스트리 및 레지스트라 인가, 도메인에 적용되는 공통 정책 제정 등의 일을 하는 미국 비영리기구.
두 글자로 이루어진 국가 코드 TLD(ccTLD) 관리 및 정책 제정은 각 국가에 위임한다.
세 글자 이상으로 이루어진 TLD는 gTLD(generic TLD)라고 칭하며 ICANN에서 정한 정책을 준수해야 한다.
`.gov`, `.mil`, `.edu`는 미국 정부에서 관리하며 미국에서만 사용할 수 있다.
## 레지스트리 (Registry)
## 3.2. 레지스트리 (Registry)
각 TLD와 해당 TLD에 속한 DNS 레코드를 관리하는 기관
## 레지스트라 (Registrar)
## 3.3. 레지스트라 (Registrar)
도메인 등록대행업체
도메인 레지스트리의 위임을 받아 도메인 레지스트런트에게서 일정한 비용을 받고 도메인 등록을 대행해준다.
## 레지스트런트 (Registrant)
## 3.4. 레지스트런트 (Registrant)
도메인 소유자, 도메인 사용자
---
# 계층 구조
# 4. 계층 구조
도메인은 계층 구조로 이루어져 있으며 보통 3단계로 구분한다.
## TLD
## 4.1. TLD
Top-Level Domain, 최상위 도메인
도메인의 제일 마지막 점 뒤에 붙은 문자열을 가리킨다.
`foo.com` 이라는 도메인이 있다면 `.com`이 TLD
레지스트리에서 관리
## 2단계 도메인
## 4.2. 2단계 도메인
SLD, Second-Level Domain
TLD 앞에 붙는 도메인
@ -46,14 +46,14 @@ TLD 앞에 붙는 도메인
- 2단계 도메인을 레지스트런트가 사용하는 경우 (`foo.com`)
- 2단계 도메인까지 레지스트리가 관리하는 경우 (`foo.co.kr`), 이 경우도 TLD로 부르기도 함
## 3단계 도메인
## 4.3. 3단계 도메인
2단계 도메인 앞에 붙는 도메인
# 도메인 구성
## root 도메인
# 5. 도메인 구성
## 5.1. root 도메인
1. TLD + 레지스트런트가 사용하는 도메인 (`naver.com`)
2. DNS에서 TLD에 관한 정보를 제공하는 DNS
## sub 도메인
## 5.2. sub 도메인
root 도메인이 필요에 따라 하위에 생성하는 도메인 (`blog.naver.com`, `news.naver.com`)
www 역시 여기에 포함되며, 도메인을 웹에서 주로 사용하게 됨에 따라 www를 생략하는 경우가 많아졌음

View File

@ -1,7 +1,7 @@
[[DNS/CoreDNS|CoreDNS]]를 설정한 뒤 진행했음
# Install using docker
## Directory structure
# 1. Install using docker
## 1.1. Directory structure
```dirtree
- /mnt/md0/infra
- /coredns
@ -16,13 +16,13 @@
- compose.yml
```
## dotenv file
## 1.2. dotenv file
/.env
```
BASE_PATH=/mnt/md0/infra
```
## Docker compose
## 1.3. Docker compose
/compose.yml
```yml
name: infrastructure
@ -46,11 +46,11 @@ networks:
driver: bridge
```
# nginx configuration
## /nginx/nginx.conf
# 2. nginx configuration
## 2.1. /nginx/nginx.conf
기본 설정 파일을 그대로 사용함
## /nginx/conf.d/default.conf
## 2.2. /nginx/conf.d/default.conf
```nginx
server {
@ -66,7 +66,7 @@ server {
}
```
## subdomain
## 2.3. subdomain
```nginx
server {
@ -85,7 +85,7 @@ server {
}
```
## reload
## 2.4. reload
```shell
docker exec -it nginx-reverse-proxy nginx -s reload

View File

@ -1,16 +1,16 @@
# Samba 설치
# 1. Samba 설치
```shell
sudo apt -y install samba
```
# Samba user group 추가
# 2. Samba user group 추가
[[../linux/Group#groupadd|Linux group add]]를 사용해 리눅스 유저 그룹을 추가한다.
# User 추가
## Linux user 추가
# 3. User 추가
## 3.1. Linux user 추가
[[../linux/User#useradd|Linux user add]]를 사용해 리눅스 유저를 먼저 추가해야 한다. 이 때 유저 그룹은 samba를 지정한다.
## smbpasswd
## 3.2. smbpasswd
```shell
sudo smbpasswd -a [username]
```
@ -21,14 +21,14 @@ Retype new SMB password:
Added user tuska.
```
# Samba 폴더 생성
# 4. Samba 폴더 생성
```shell
sudo mkdir -p /mnt/md0/share/guest
sudo chown tuska:samba /mnt/md0/share
sudo chmod 775 /mnt/md0/share
```
# Samba 설정
# 5. Samba 설정
```shell
sudo vim /etc/samba/smb.conf
```
@ -45,10 +45,10 @@ sudo vim /etc/samba/smb.conf
force group = samba
```
# Samba service 재시작
# 6. Samba service 재시작
```shell
sudo service smbd restart
```
# 공유 폴더 접속
# 7. 공유 폴더 접속
`\\[server-ip]\[section 이름]`

View File

@ -4,10 +4,10 @@ tags:
- sbc
- odroid
---
# 개요
# 1. 개요
한국의 하드커널에서 제작 및 판매하는 인텔 x86 기반 [[ODROID]] SBC 제품
# Spec
# 2. Spec
- Intel 12세대 프로세서 N97 사용 (하스웰 노트북용 i7, 데스크탑용 i5급, 4C4T, TDP 12W)
- DDR5-4800, MAX 48GB, Single Channel
- HDMI 1port, DP 2Port
@ -17,7 +17,7 @@ tags:
- SATA III 4 port
- 19만원
# 구매 목록
# 3. 구매 목록
| 품목 | 가격 |
| ------------------------------- | ------- |
| ODROID-H4+ | 187,700 |
@ -28,7 +28,7 @@ tags:
| 92x92x25mm DC Cooling Fan | 6,800 |
| TOTAL | 304,800 |
# 추가 부품
# 4. 추가 부품
| 품목 | 가격 |
| -------------------------------------------------- | ------- |
| 삼성 DDR5-4800 16GB | 64,590 |
@ -36,7 +36,7 @@ tags:
| WD Ultrastar HC310 4TB<br/>7200RPM 256MB package x 2ea | 378,000 |
| TOTAL | 513,590 |
# 언박싱
# 5. 언박싱
![[SBC(Single-Board Computer)/resources/ODROID H4+/01-구성품/01-택배.jpg]]
![[SBC(Single-Board Computer)/resources/ODROID H4+/01-구성품/02-언박싱.jpg]]
![[SBC(Single-Board Computer)/resources/ODROID H4+/01-구성품/03-구성품.jpg]]
@ -44,12 +44,12 @@ tags:
![[SBC(Single-Board Computer)/resources/ODROID H4+/01-구성품/05-본체실물.jpg]]
![[SBC(Single-Board Computer)/resources/ODROID H4+/01-구성품/06-케이스.jpg]]
# 구매 시 유의사항
# 6. 구매 시 유의사항
1. 케이스에 쿨러가 동봉되어 있으므로 추가 쿨러 구매는 하지 않아도 됨
2. 하드디스크 사용을 위해 19V/7A 파워를 산다면 전기 공급을 위한 플러그는 별도로 구매해야 한다.
3. 하드디스크 연결용 SATA 케이블은 같이 구매하면 편하다. 남는 것이 있다면 구매하지 않아도 된다.
# 조립
# 7. 조립
![](https://www.youtube.com/watch?v=kxi5lZ67P8Y)
1. 쿨링 팬을 케이스에 부착. 이 때 나사는 3개만 사용 (좌하, 우상하).
![[SBC(Single-Board Computer)/resources/ODROID H4+/02-조립/01-쿨러.jpg]]
@ -70,10 +70,10 @@ tags:
![[SBC(Single-Board Computer)/resources/ODROID H4+/02-조립/07-조립전면부.jpg]]
![[SBC(Single-Board Computer)/resources/ODROID H4+/02-조립/08-조립후면부.jpg]]
# OS
# 8. OS
하드커널에서는 별도의 OS 설치 미디어를 제공하지 않음
권장하는 OS는 우분투이며 x86 CPU 특성상 Windows를 포함한 다른 OS를 설치하더라도 큰 문제가 없을 것
# 참조 링크
# 9. 참조 링크
- https://www.hardkernel.com/shop/odroid-h4-plus/
- https://wiki.odroid.com/odroid-h4/start

View File

@ -4,13 +4,13 @@ tags:
- sbc
- odroid
---
# 개요
# 1. 개요
한국의 하드커널에서 제작 및 판매하는 [[SBC]] 제품(군)
삼성 SoC를 이용한 안드로이드 개발 보드 제조가 그 시작이다.
현재는 삼성의 SoC가 단종되어 Amlogic, Rockchip 등의 Arm 기반 SoC와 인텔 x86 기반 프로세서를 사용한 SBC를 제작하고 있다.
배송은 우체국을 이용한다.
# 제품(군)
# 2. 제품(군)
- H Serise (x86)
- H4, H4+, H4 Ultra
- H3, H3+

View File

@ -4,11 +4,11 @@ tags:
- sbc
- raspberry_pi
---
# 개요
# 1. 개요
영국의 Raspberry Pi Foundation이 개발하는 [[SBC]] 제품(군)
저렴한 가격을 무기로 시장에서 제일 대중화된 SBC이다.
# 특징
# 2. 특징
- SBC의 특징 (소형, 저전력)
- Arm기반 브로드컴 SoC를 사용
- 전용 OS인 Raspberry Pi OS 존재 (Debian 기반 Linux 배포판)
@ -16,7 +16,7 @@ tags:
- 단 주변 기기 가격까지 더하다 보면 가성비가 나빠질 수 있음
- 수많은 사용자가 전 세계에 폭넓게 퍼져있음
- 이로 인해 다양한 사용방법을 손쉽게 검색할 수 있음
# 제품(군)
# 3. 제품(군)
- Raspberry Pi 5
- Raspberry Pi 4
- Raspberry Pi 3

View File

@ -3,16 +3,16 @@ tags:
- hardware
- sbc
---
# 정의
# 1. 정의
Single-Board Computer 의 약자로 번역하면 단일 기판(보드) 컴퓨터다.
하나의 기판 안에 프로세서, 메모리, 입출력 인터페이스 등이 모두 들어있는 컴퓨터다.
# 특징
# 2. 특징
- 하나의 기판에 컴퓨터가 동작하기 위한 모든 요소가 들어있다.
- 크기가 작다.
- 전력을 적게 소모한다.
- 확장성이 낮다.
# 종류
# 3. 종류
- [[Raspberry Pi]]
- ODroid

View File

@ -1,10 +1,10 @@
# create
## groupadd
# 1. create
## 1.1. groupadd
```shell
sudo groupadd [groupname]
```
# read
# 2. read
`/etc/group` 파일 확인
```shell
cat /etc/group

View File

@ -1,4 +1,7 @@
# Get network interface information
# 1. ifconfig
deprecated
# 2. ip
```shell
ip a
@ -37,9 +40,9 @@ ip a
valid_lft forever preferred_lft forever
```
# Change IP settings
## netplan
### 파일 확인
# 3. Change IP settings
## 3.1. netplan
### 3.1.1. 파일 확인
```shell
ls /etc/netplan
@ -49,7 +52,7 @@ ls /etc/netplan
50-cloud-init.yaml
```
### 내용 수정
### 3.1.2. 내용 수정
```shell
sudo vim /etc/netplan/50-cloud-init.yaml
@ -83,7 +86,7 @@ network:
version: 2
```
## /etc/systemd/resolved.conf
## 3.2. /etc/systemd/resolved.conf
DNS의 경우 /etc/systemd/resolved.conf 파일 수정이 필요할 수 있음
```

View File

@ -5,9 +5,9 @@ tags:
- hardware
- linux
---
# 디스크 구성 확인
## 마운트 리스트 및 용량 확인
### df
# 1. 디스크 구성 확인
## 1.1. 마운트 리스트 및 용량 확인
### 1.1.1. df
```shell
df -h
```
@ -25,7 +25,7 @@ tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.6G 12K 1.6G 1% /run/user/1000
```
### lsblk
### 1.1.2. lsblk
```shell
sudo lsblk
```
@ -42,7 +42,7 @@ nvme0n1 259:0 0 465.8G 0 disk
└─ubuntu--vg-ubuntu--lv 252:0 0 100G 0 lvm /
```
## system file 확인
## 1.2. system file 확인
```shell
cat /proc/partitions
```
@ -60,7 +60,7 @@ major minor #blocks name
252 0 104857600 dm-0
```
## fdisk
## 1.3. fdisk
```shell
sudo fdisk -l
@ -101,7 +101,7 @@ Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
```
# RAID용 Hard Disk partition 생성
# 2. RAID용 Hard Disk partition 생성
```shell
sudo fdisk /dev/sda
```
@ -159,13 +159,13 @@ Calling ioctl() to re-read partition table.
Syncing disks.
```
# RAID 설정
## mdadm 설치
# 3. RAID 설정
## 3.1. mdadm 설치
```shell
sudo apt install mdadm
```
## RAID 생성
## 3.2. RAID 생성
```shell
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
# mdadm --create [raid경로/raid명칭] --level=[레이드 구분] --raid-devices=[레이드 구성할 하드 개수] [하드 1] [하드 2] ... [하드 n]
@ -183,7 +183,7 @@ mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
```
## format
## 3.3. format
```shell
sudo mkfs.ext4 /dev/md0
```
@ -203,11 +203,11 @@ Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
```
# RAID 구성 확인
# 4. RAID 구성 확인
[[#마운트 리스트 및 용량 확인]]
[[#system file 확인]]
## RAID 세부 정보 확인하기
## 4.1. RAID 세부 정보 확인하기
```shell
more /proc/mdstat
```
@ -222,7 +222,7 @@ md0 : active raid1 sdb[1] sda[0]
unused devices: <none>
```
## mdadm
## 4.2. mdadm
```shell
sudo mdadm --detail /dev/md0
```
@ -260,8 +260,8 @@ Consistency Policy : bitmap
1 8 17 1 active sync /dev/sdb1
```
# 재부팅 시 자동 마운트
## /etc/fstab
# 5. 재부팅 시 자동 마운트
## 5.1. /etc/fstab
/dev/md0 와 같이 device 파일 이름을 fstab 파일에 추가하라는 글을 쉽게 검색할 수 있다.
하지만 재부팅 시 리눅스에서 RAID 이름을 md127과 같이 바꿔버려 부팅 과정에서 오류가 발생하므로 UUID를 추가해 오류를 방지해야 한다.
@ -285,7 +285,7 @@ sudo vim /etc/fstab
UUID=c207facc-b75b-4041-9971-bb272b26b689 /mnt/md0 ext4 defaults 0 0
```
## mdadm conf
## 5.2. mdadm conf
```shell
sudo mdadm --detail --scan
```
@ -305,18 +305,18 @@ MAILADDR root
ARRAY /dev/md0 metadata=1.2 UUID=4c154399:14eb5dc6:7d9a9795:32654856
```
### 한 번에 실행
### 5.2.1. 한 번에 실행
```shell
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
```
## RAID 마운트
## 5.3. RAID 마운트
```shell
sudo mkdir /mnt/md0
sudo mount /dev/md0 /mnt/md0
```
## 마운트 확인
## 5.4. 마운트 확인
```shell
cd /mnt
ls -al

View File

@ -1,5 +1,5 @@
# create
## useradd
# 1. create
## 1.1. useradd
계정을 생성하고 기본 쉘인 sh를 연결해준다.
옵션으로 그룹, 패스워드 등을 지정할 수 있다.
옵션을 지정하지 않을 경우 그룹, 패스워드 등을 설정하지 않는다.
@ -18,7 +18,7 @@ sudo useradd [options] [username]
| -U | --user-group | 유저 아이디와 같은 그룹 생성 |
| -h | --help | 도움말 표시 |
## adduser
## 1.2. adduser
콘솔에서 대화식 입출력으로 계정을 생성한다.
```shell
sudo adduser [username]
@ -46,8 +46,8 @@ info: Adding new user `kolpi13' to supplemental / extra groups `users' ...
info: Adding user `kolpi13' to group `users' ...
```
# read
## id
# 2. read
## 2.1. id
유저 아이디를 생략할 경우 현재 콘솔에서 로그인한 계정의 계정 정보를 확인한다.
유저 아이디를 입력할 경우 입력한 유저의 계정 정보를 출력한다.
```shell
@ -65,7 +65,7 @@ uid=1000(tuska) gid=1000(tuska) groups=1000(tuska),4(adm),24(cdrom),27(sudo),30(
| -u | --user | uid 출력 |
| -n | --name | 숫자로 된 id 대신 이름 출력 (u\|g\|G 옵션과 같이 사용) |
## whoami
## 2.2. whoami
현재 콘솔에서 로그인한 계정명을 확인한다.
```shell
whoami
@ -75,7 +75,7 @@ whoami
tuska
```
## users
## 2.3. users
현재 로그인 중인 계정 목록을 확인한다.
```shell
users
@ -85,7 +85,7 @@ users
tuska
```
## who
## 2.4. who
현재 로그인 중인 계정 목록을 자세히 확인한다.
```shell
who
@ -95,7 +95,7 @@ who
tuska pts/0 2024-08-16 14:21 (192.168.200.100)
```
## 환경 설정 파일
## 2.5. 환경 설정 파일
환경 설정 파일은 모두 `/etc`에 위치한다.
| 파일 | 설명 |
@ -108,13 +108,13 @@ tuska pts/0 2024-08-16 14:21 (192.168.200.100)
| `/etc/login.defs` | 로그인 수행 시 기본설정 |
| `/etc/skel` | 홈 디렉터리 생성 시 기본 제공 파일 |
# update
## passwd
# 3. update
## 3.1. passwd
비밀번호 설정
```shell
sudo passwd [username]
```
# delete
# 4. delete
```shell
sudo userdel [options] [username]
```

View File

@ -6,7 +6,7 @@ dig [@global-server] [domain] [q-type] [q-class] {q-opt}
[ host [@local-server] {local-d-opt} [...]]
```
# basic
# 1. basic
```shell
dig host
@ -40,7 +40,7 @@ naver.com. 25 IN A 223.130.200.219
;; MSG SIZE rcvd: 102
```
# +short
# 2. +short
답변을 간단하게 볼 때 사용
```shell
@ -58,7 +58,7 @@ dig naver.com +short
223.130.192.248
```
# record 지정
# 3. record 지정
```shell
dig host record
@ -68,7 +68,7 @@ dig host record
dig naver.com a
```
# dns 지정
# 4. dns 지정
```shell
dig @dns-address host
@ -78,7 +78,7 @@ dig @dns-address host
dig @8.8.8.8 google.com
```
# Using DoH (DNS over Https)
# 5. Using DoH (DNS over Https)
```shell
dig +https @dns-address host

View File

@ -1,14 +1,14 @@
# netstat
# 1. netstat
deprecated
# ss
# 2. ss
socket statistics
```shell
ss [options] [filter]
```
## basic
## 2.1. basic
listening 소켓을 제외하고 연결중인 모든 소켓 표시
```shell
ss
@ -24,14 +24,14 @@ tcp ESTAB 0 0
tcp ESTAB 0 52 [::ffff:192.168.200.10]:ssh [::ffff:192.168.200.100]:49173
```
## all
## 2.2. all
모든 소켓 표시
```shell
ss -a
```
## numeric
## 2.3. numeric
서비스 이름 대신 숫자로 표기
```shell
@ -48,7 +48,7 @@ ss -n
[::ffff:192.168.200.10]:22
```
## process
## 2.4. process
관리자 권한 필요
```shell

View File

@ -5,6 +5,7 @@ tags:
---
# 1. root 유저 패스워드 설정
```shell
sudo passwd root
```
@ -15,6 +16,7 @@ Retype new password: [type root user password before you type]
passwd: password updated successfully
```
# 2. root 로그인
```
$ su -
Password: [type root user password]

View File

@ -6,7 +6,7 @@ tags:
- network
- ssh
---
0. 기존에 만든 키가 있는지 확인
# 1. 기존에 만든 키가 있는지 확인
```powershell
# 키 저장 위치로 이동
cd ~/.ssh
@ -22,7 +22,7 @@ dir
# 키가 없다면 다음 1번부터 진행
```
1. 공개키-개인키 생성
# 2. 공개키-개인키 생성
- 커맨드라인
```powershell
ssh-keygen
@ -53,12 +53,12 @@ dir
+----[SHA256]-----+
```
2. 생성한 공개키 Server로 전송하기
# 3. 생성한 공개키 Server로 전송하기
```powershell
type $env:[public key path] | ssh [username]@[remote-host] "cat >> .ssh/authorized_keys"
```
3. ssh 접속
# 4. ssh 접속
```shell
ssh [username]@[remote-host]
```