Compare commits

...

10 Commits

21 changed files with 6251 additions and 4820 deletions

View File

@@ -4,17 +4,24 @@
"type": "split",
"children": [
{
"id": "2c95ff44e043a31b",
"id": "014eb71b35a6fc9a",
"type": "tabs",
"children": [
{
"id": "f8c44291f33a3b1e",
"id": "c4aa9111db111ae3",
"type": "leaf",
"state": {
"type": "empty",
"state": {},
"icon": "lucide-file",
"title": "새 탭"
"type": "canvas",
"state": {
"file": "2026년 월력형 메모형 일정(2월).canvas",
"viewState": {
"x": 843.7926950945887,
"y": 35711.92111633504,
"zoom": 0.2133333333333335
}
},
"icon": "lucide-layout-dashboard",
"title": "2026년 월력형 메모형 일정(2월)"
}
}
]
@@ -45,7 +52,7 @@
"state": {
"type": "search",
"state": {
"query": "File:당직",
"query": "file:당직",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
@@ -96,7 +103,7 @@
}
}
],
"currentTab": 0
"currentTab": 1
},
"right": {
"id": "082cc3168c91951e",
@@ -108,7 +115,7 @@
"state": {
"type": "backlink",
"state": {
"file": "inbox/당직근무간 특이사항.md",
"file": "2026년 월력형 메모형 일정(2월).canvas",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@@ -163,38 +170,45 @@
"remotely-save:Remotely Save": false
}
},
"active": "f8c44291f33a3b1e",
"active": "c4aa9111db111ae3",
"lastOpenFiles": [
"01071921116.md",
"2026년 월력형 메모형 일정(2월).canvas",
"2026-03-04_계량기견적서.md",
"temp_1771983504814.-1331654701_423627128632719.png",
"2026-03-04 케어원 방역업체 서류.md",
"1772583797342.png",
"리눅스에 도커 설치 참고 홈페이지 2026. 3.1.기준.md",
"inbox/당직근무간 특이사항.md",
"inbox/위임보수.md",
"30연대 26년도 예산.md",
"에어컨 재산수입조치.md",
"일일결산.md",
"01028286846.md",
"Resized_20260220_172030(1).jpeg",
"Resized_20260223_114529.jpeg",
"Resized_20260223_114553.jpeg",
"Resized_20260223_114612.jpeg",
"Resized_20260223_114735 1.jpeg",
"Resized_20260223_114735.jpeg",
"예산.md",
"inbox/비밀번호-1.md",
"desktop_hp_obsidian/inbox/비밀번호.md",
"inbox/비밀번호.md",
"탄약.md",
"inbox/사이버 보안 진단의 날 시행.md",
"inbox/사이버보안진단의날.md",
"일일 무기,탄약결산.md",
"gemini_mikrotik_dns_내부접속방법.md",
"육규 471 장비관리 규정.md",
"2025년 월력형 메모형 일정.canvas",
"inbox/당직근무간 특이사항.md",
"점호.md",
"2026년 월력형 메모형 일정(2월).canvas",
"inbox/당직근무간 특이사항-1.md",
"30연대 26년도 예산.md",
"desktop_hp_obsidian/inbox/당직근무간 특이사항.md",
"가스검침 직원 전화, 01051901708.md",
"일일결산.md",
"일일 무기,탄약결산.md",
"훼손처리 총기.md",
"가스 계량기 교체 협조, 중부 가스 통화.md",
"주유취급소 및 유류탱크저장소 화재사고 예방 점검.md",
"지원과 환경개선.md",
"전투조키(부수기재포함) 수령.md",
"재해재난대비계획.md",
"일일 무기/#.md",
"일일 무기",
"일일 무기.md",
"일일 무기,탄약 결산.md",
"무제 5.md",
"무제 2.canvas",
"감찰.md",
"ㄴ.md",
"gitea 첫 동기화 방법.md",
"git 사용법에 대해 자주 사용하는 명령어 위주로 상세옵션까지 포함 설명.md",
"gemini_mikrotik_wireguard_commend.md",
"gemini_mikrotik_wireguard_.md",
"gemini_git_생활코딩_강의_정리.md",
"Excalidraw/Scripts/Downloaded/Mindmap format.svg",
"Excalidraw/Scripts/Downloaded",
"Excalidraw/Scripts",
@@ -203,7 +217,6 @@
"새로운 7.txt",
"temp_1764374020200.-1440744867.png",
"새로운 6.txt",
"temp_1763986624781.-1344914328.jpeg",
"예정공정표-육훈소 영내 누수 보수 (변경)25.11.13_20251113124700 (1).pdf",
"출입인원 보고서.pdf",
"Taskido/view.css",
@@ -212,14 +225,7 @@
"무제 파일 2.canvas",
"무제 1.canvas",
"캔버스 월력.canvas",
"Resized_20251127_141040.jpeg",
"temp_1763983212319.144536212.jpeg",
"캔버스월력.canvas",
"files/synology_webdav_server_settings-1.png",
"files/aaee.png",
"files/synology_webdav_server_settings.png",
"files/Screenshot_20250813_065654_KakaoTalk.jpg",
"files/Resized_20250619_180304_1750323802883.jpeg",
"무제 파일 8.canvas"
]
}

View File

@@ -29,17 +29,34 @@
"state": {
"file": "2026년 월력형 메모형 일정(2월).canvas",
"viewState": {
"x": 1029.9596099897924,
"y": 33354.46281727015,
"x": 998.2115889504284,
"y": 33335.41400464653,
"zoom": -0.6666666666666665
}
},
"icon": "lucide-layout-dashboard",
"title": "2026년 월력형 메모형 일정(2월)"
}
},
{
"id": "2e3d32a51f50a45f",
"type": "leaf",
"state": {
"type": "canvas",
"state": {
"file": "2026년 월력형 메모형 일정(2월).canvas",
"viewState": {
"x": 1182.7839038970546,
"y": 30589.27361135298,
"zoom": -0.9999999999999996
}
},
"icon": "lucide-layout-dashboard",
"title": "2026년 월력형 메모형 일정(2월)"
}
}
],
"currentTab": 1
"currentTab": 2
}
],
"direction": "vertical"
@@ -201,10 +218,11 @@
"bases:새 베이스 생성하기": false
}
},
"active": "5174113f97a638e5",
"active": "2e3d32a51f50a45f",
"lastOpenFiles": [
"2026년 월력형 메모형 일정(1월).canvas",
"gemini_mikrotik_dns_내부접속방법.md",
"2026년 월력형 메모형 일정(2월).canvas",
"2026년 월력형 메모형 일정(1월).canvas",
"git 일일단위 사용시 오류, 에러등 발생시 조치방법 정리.md",
"gemini_git_생활코딩_강의_정리.md",
"gitea 첫 동기화 방법.md",

1
01028286846.md Normal file
View File

@@ -0,0 +1 @@
![[Resized_20260220_172030(1).jpeg]]

1
01071921116.md Normal file
View File

@@ -0,0 +1 @@
![[Resized_20260223_114735.jpeg]]![[Resized_20260223_114612.jpeg]]![[Resized_20260223_114553.jpeg]]![[Resized_20260223_114529.jpeg]]

BIN
1772583797342.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

View File

@@ -0,0 +1,4 @@
![[1772583797342.png]]
30연대는 사업자번호
AM006
으로 들어가시면됩니다!

View File

@@ -0,0 +1 @@
![[temp_1771983504814.-1331654701_423627128632719.png]]

File diff suppressed because it is too large Load Diff

View File

@@ -24,3 +24,7 @@
# 보온대
1. 2300-2332-302-003-000-000-210-11
2. 26,996,720원
# 지역상생특식비
1. 46,098,000원
2.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

View File

@@ -0,0 +1,158 @@
# mikrotik을 운영하면서 내부 내트워크에 dns서버를 설치하고 운영하면서 npm을 추가하여 여러개의 도메인을 설정하여 사용하고있음. 그러나 외부에서 도메인으로 접속이 가능하지만 내부에서 도메인을 연결하려 하면 되지 않음. 그 원인을 모르겠고, 몇번 질의를 통해 시도하였으나, 지금까지 되지 않음. 해결할수 있을까?
마이크로틱(MikroTik) 환경에서 외부 접속은 되는데 내부에서 도메인으로 접속되지 않는 현상은 네트워크 엔지니어링에서 매우 전형적인 이슈입니다. 이 문제는 보통 **'Hairpin NAT'** 또는 **'NAT Loopback'**이라고 불리는 메커니즘이 설정되지 않았을 때 발생합니다.
원인과 해결 방법을 단계별로 명확하게 정리해 드릴게요.
---
## 1. 원인: 왜 내부에서는 안 될까?
1. **외부 접속 시:** 외부 사용자 → 공인 IP(MikroTik) → 포트 포워딩 → 내부 서버 (정상)
2. **내부 접속 시:** 내부 사용자 → 도메인 질의(내부 DNS 또는 외부 DNS) → **공인 IP 응답 받음** → 공유기(MikroTik)로 패킷 전송.
3. **문제 발생:** MikroTik은 내부에서 온 패킷이 다시 자신의 공인 IP를 향할 때, 이를 내부 서버로 다시 돌려보내야 한다는 것을 모릅니다. 패킷이 공유기에서 길을 잃거나 차단됩니다.
---
## 2. 해결 방법 1: Hairpin NAT 설정 (가장 확실한 방법)
MikroTik의 방화벽 설정에서 내부에서 공인 IP로 나가는 트래픽을 다시 내부 서버(Nginx Proxy Manager, NPM)로 돌려주는 규칙을 추가해야 합니다.
**터미널(Winbox -> New Terminal)에 아래 명령어를 복사해 넣으세요:**
_(단, `192.168.88.0/24`는 본인의 실제 내부 네트워크 대역으로, `192.168.88.2`는 NPM 서버의 IP로 수정하세요.)_
Bash
```
/ip firewall nat
add chain=srcnat src-address=192.168.88.0/24 dst-address=192.168.88.2 \
protocol=tcp dst-port=80,443 out-interface-list=LAN \
action=masquerade comment="Hairpin NAT for NPM"
```
- **src-address:** 내부 PC들이 속한 IP 대역
- **dst-address:** NPM(Nginx Proxy Manager) 서버의 내부 고정 IP
- **out-interface-list:** 내부 네트워크가 속한 인터페이스 리스트 (보통 `bridge` 또는 `LAN`)
---
## 3. 해결 방법 2: Split-Horizon DNS (내부 DNS 활용)
이미 내부 DNS 서버를 운영 중이시라면, **내부 네트워크 안에서만** 해당 도메인이 공인 IP가 아닌 **NPM 서버의 내부 IP(`192.168.x.x`)를 가리키도록** 설정하는 방법입니다.
1. **내부 DNS 서버(AD, Pi-hole, AdGuard 등) 설정:**
- `example.com`의 A 레코드를 공인 IP가 아닌 **NPM 서버의 내부 IP**로 등록합니다.
2. **장점:** 패킷이 공유기를 거치지 않고 바로 NPM으로 가기 때문에 속도가 빠르고 공유기 부하가 적습니다.
3. **주의사항:** 모든 도메인을 일일이 내부 DNS에 등록해줘야 하며, HTTPS 인증서(Let's Encrypt) 갱신 시 NPM이 포트 80을 통해 외부와 통신하는 데 지장이 없어야 합니다.
---
## 4. 해결 방법 3: MikroTik DNS Static 설정
만약 별도의 DNS 서버 설정이 번거롭다면 MikroTik 자체 DNS 기능을 이용할 수도 있습니다.
1. **IP > DNS > Static** 메뉴로 들어갑니다.
2. 사용 중인 도메인(`example.com`)을 추가하고, Address에 **NPM 서버의 내부 IP**를 적습니다.
3. 내부 PC들의 DNS 서버가 MikroTik IP로 설정되어 있어야 작동합니다.
---
### 추천하는 진행 순서
가장 깔끔한 해결책은 **방법 1(Hairpin NAT)**입니다. 도메인이 늘어나도 일일이 DNS를 수정할 필요가 없고, 외부/내부 어디서든 동일한 방식으로 동작하기 때문입니다.
**지금 바로 시도해 보시겠어요?**
사용 중인 **내부 네트워크 대역(예: 192.168.1.0/24)**과 **NPM 서버의 내부 IP**를 알려주시면, 귀하의 환경에 딱 맞는 스크립트를 짜 드릴 수 있습니다.
---
---
# 그래도 접속이 안되
Hairpin NAT 설정이나 DNS 설정을 시도했음에도 여전히 접속이 안 된다면, **MikroTik의 방화벽 규칙 순서**나 **Bridge 설정**, 또는 **NPM(Nginx Proxy Manager) 자체의 수신 차단** 문제일 가능성이 높습니다.
문제를 확실히 해결하기 위해 아래 **4가지 체크포인트**를 순서대로 점검해 보세요.
---
### 1. MikroTik NAT 규칙의 '순서' 확인 (매우 중요)
MikroTik에서 방화벽 규칙은 **위에서 아래로** 실행됩니다. 만약 일반적인 `masquerade` 규칙이 Hairpin NAT 규칙보다 위에 있으면 작동하지 않을 수 있습니다.
- **확인법:** `IP > Firewall > NAT` 탭에서 **Hairpin NAT 규칙을 맨 위(0번 또는 1번)**로 드래그해서 올려보세요.
- **이유:** 일반 인터넷 공유 규칙이 먼저 가로채기 전에 특정 내부 트래픽을 먼저 가로채서 처리해야 하기 때문입니다.
---
### 2. Bridge Settings에서 'Use IP Firewall' 체크
MikroTik은 기본적으로 브리지(내부 포트들) 간의 통신을 L2(레이어 2)에서 처리합니다. Hairpin NAT는 L3(IP 레벨) 규칙이므로, 브리지 통신도 방화벽을 거치게 설정해야 할 때가 있습니다.
- **설정 경로:** `Bridge` -> `Settings` -> **`Use IP Firewall`** 항목에 체크가 되어 있는지 확인하세요.
- (이미 체크되어 있다면 그대로 두시고, 안 되어 있다면 체크 후 테스트해 보세요.)
---
### 3. NPM 서버가 '게이트웨이'를 MikroTik으로 보고 있는가?
내부 서버(NPM)가 응답을 보낼 때, 요청이 들어온 경로로 되돌려 보내야 합니다.
- NPM 서버의 **기본 게이트웨이(Default Gateway)**가 MikroTik의 내부 IP(예: `192.168.88.1`)로 정확히 잡혀 있는지 확인하세요.
- NPM 서버 자체 방화벽(Ubuntu의 ufw 등)에서 내부 대역폭의 80, 443 포트 접근을 허용하고 있는지 확인하세요.
---
### 4. '가장 확실한' Hairpin NAT 스크립트 재적용
기존에 입력하신 규칙이 복잡하다면, 가장 단순하고 강력한 아래 방식을 터미널에 입력해 보세요. (IP 대역만 본인 환경에 맞게 수정하세요)
Bash
```
# 1. 내부에서 공인IP로 들어오는 요청을 NPM으로 토스 (DST-NAT)
/ip firewall nat
add chain=dstnat dst-address-type=local protocol=tcp dst-port=80,443 \
src-address=192.168.0.0/16 action=dst-nat to-addresses=NPM서버IP
# 2. 돌아가는 패킷이 길을 잃지 않게 주소 변환 (SRC-NAT)
add chain=srcnat src-address=192.168.0.0/16 dst-address=NPM서버IP \
protocol=tcp dst-port=80,443 action=masquerade
```
> **참고:** `192.168.0.0/16`은 `192.168.x.x` 전체 대역을 포함하므로 안전합니다.
---
### 마지막으로 확인해 주세요
지금 접속을 시도할 때 어떤 **에러 메시지**가 뜨나요?
1. **"연결 거부(Connection Refused)"**: 포트는 찾았으나 NPM에서 거절함 (NPM 설정 문제)
2. **"응답 시간 초과(Timeout)"**: 패킷이 아예 목적지를 못 찾음 (MikroTik NAT/방화벽 문제)
3. **"DNS를 찾을 수 없음"**: 도메인 자체가 IP로 변환이 안 됨 (DNS 서버 문제)
**에러 메시지나 현재 MikroTik의 `IP > Firewall > NAT` 설정 화면을 텍스트로 복사해 주시면 더 정확한 진단이 가능합니다.** 어떤 에러가 뜨나요?

View File

@@ -38,3 +38,5 @@
# 본부중대 여성편의시설 전기,수도 확인
상담관,행보관

View File

@@ -10,4 +10,27 @@
1. 12교육대 통합막사 기와 파손 보수,150,000천원
## 검토사업
1. 도로하부 유실 부분 보수 20,000천원
2.
# 2026.2.20
1. 1분기 위임보수 승인내역(설계중)
1. 30-1,3 교육대 오수배관 보수1200만원
1. 1,2(오수배관?)/9,10중대(주물오수배관) 화장실
2. 30연대 중대 행정반 화장실 보수(3개소)3천만원
1. 1,5,9중대 화징실
2. 자재비만 받아서? 우리가?
3. 재재비
3. 30-1교 외부지붕기와보수150만원(px근처)
2. 계획보수
1. 30연대 노후위생시설보수(24000만원)2작사 설계용역 계약 대기중
1. 측면화장실(1교)
# 참고자료
1. 화장실 대보수 화장실 리모델링 : 8개소
1. 1교:측면화장실 4개소 26년도 시공
2. 3교:측면화장실 4개소 27년도 시공
2. 안전관련 개선 소요: 임시,몰딩자재활용 상단프레임과 원형천장 연결부분 마감조치
1. 1교 중앙, 3교 중앙 화장실(천장, 상단프레임)
# 기타
1. 1교육대 자살시도자 발생으로 화장실 천정 시도 못하게 보완

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

View File

@@ -0,0 +1,25 @@
https://floor5th.tistory.com/100
https://www.scbyun.com/710766
https://buildabetterworld.tistory.com/179
https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script
https://velog.io/@agnusdei1207/Portainer-ce
https://betwe.tistory.com/entry/Docker-Portainer%EB%B3%B4%EB%8B%A4-%EC%98%88%EC%81%98%EB%8B%A4-Docker-Compose-%EA%B4%80%EB%A6%AC%EC%9D%98-%ED%98%81%EB%AA%85-Dockge-%EC%99%84%EB%B2%BD-%EB%B6%84%EC%84%9D
https://www.sangchul.kr/797
https://blog.jackerlab.com/2025-open-source-docker-self-hosted-projects-guide/
https://upsd.co.kr/%ec%8b%9c%eb%86%80%eb%a1%9c%ec%a7%80-%ec%bb%a4%eb%ae%a4%eb%8b%88%ed%8b%b0-%ec%95%b1-%ec%b6%94%ec%b2%9c-%ec%a1%b0%ed%95%a9%ea%b3%bc-%eb%8f%84%ec%bb%a4-%eb%b9%84%ea%b5%90/
https://news.hada.io/topic?id=25757
https://www.44bits.io/ko/post/easy-deploy-with-docker
https://gall.dcinside.com/mgallery/board/view/?id=svr&no=15053
https://dietpi.com/blog/?cat=41

View File

@@ -176,4 +176,8 @@
2. 어디있지?, 언제 받았지?
2. 설연휴전 무기고 자물쇠 봉인지 부착
3. 오늘 주임원사실, 연대장실 들어가서 온갖 애기를 들음, 주임원사실에서는 주임원사가 특별 참모이고, 지원과도 참보부다. 라고 애기함.연대장실에서는 그냥 무조건 실수하지 않고 더 열심히 하겠다고만 애기함.나도 모르게 몸이 경직되고, 군기가 바짝 들어지고 경직되었음.참 약자라고 생각하기는 싫지만 약자로 살기에는 세상이 너무 힘듬.
4.
# 2026.2.23.(월)
1. 한시인가 급식인원 소요끼니별 파악 하루종일했다.
2. 사무실 바닥 닦고, 코팅제 발랐다.
3. 카풀인원 추어탕 먹었다.(수송행보관님 박성록 원사님 이번주 직보반 가시기전 마지막 환송)