# NextCloud 내부망 접속 문제 해결 가이드
## 문제 상황
- **증상**: 내부망에서 `http://192.168.55.90:9090/` 접속 불가
- **환경**:
- NextCloud: Docker 컨테이너로 실행
- 외부 도메인: `https://www.example.duckdns.org/nextcloud` (정상 작동)
- 내부망: WiFi (192.168.55.0/24)
- 서버: Ubuntu, Docker
## 진단 과정
### 1단계: 기본 연결 확인
```bash
# 서버 ping 테스트
ping 192.168.55.90
# ✅ 정상 응답
# Docker 컨테이너 상태 확인
sudo docker ps | grep nextcloud
# ✅ 컨테이너 실행 중
# 포트 리스닝 확인
sudo ss -tlnp | grep 9090
# ✅ 9090 포트 정상 리스닝
# 방화벽 확인
sudo ufw status
# ✅ 9090/tcp 허용됨
```
### 2단계: NextCloud 로그 분석
```bash
sudo docker logs --tail 50 nextcloud_nextcloud_1
```
**발견된 문제:**
- 내부 IP(192.168.55.100)에서 접속 시 **302 리다이렉트 루프** 발생
- HTTPS 요청이 HTTP 포트로 들어와 **400 에러**
- 외부 도메인(`www.example.duckdns.org`)으로 강제 리다이렉트
### 3단계: 설정 파일 확인
```bash
sudo docker exec nextcloud_nextcloud_1 cat /var/www/html/config/config.php
```
**문제 원인 발견:**
```php
'overwrite.cli.url' => 'https://www.example.duckdns.org/nextcloud',
'overwritewebroot' => '/nextcloud',
'overwriteprotocol' => 'https',
'overwritehost' => 'www.example.duckdns.org',
```
NextCloud가 모든 접속을 외부 HTTPS 도메인으로 리다이렉트하도록 설정됨.
## 시도했던 해결 방법들
### 방법 1: overwritecondaddr 설정 (실패)
내부망 IP 대역에서는 overwrite 설정을 무시하도록 시도:
```bash
sudo docker exec -u www-data nextcloud_nextcloud_1 php occ config:system:set overwritecondaddr --value='^192\.168\.55\.'
```
**실패 원인:**
- 설정 위치가 잘못됨 (파일 맨 아래)
- 설정이 중복 추가됨
- NextCloud의 리다이렉트 로직이 복잡하여 제대로 작동 안 함
### 방법 2: Docker 설정 수정 시도 (실패)
컨테이너 내부 설정 직접 수정 시도:
```bash
sudo docker exec -it nextcloud_nextcloud_1 bash
cd /var/www/html/config
```
**문제:**
- `nano`, `vi` 에디터 모두 설치 안 됨
- `sed` 명령으로 수정했으나 설정 순서 문제로 작동 안 함
- 외부 접속까지 망가짐
## 최종 해결 방법: /etc/hosts 수정 ✅
NextCloud 설정을 건드리지 않고, **클라이언트 측에서 DNS 우회**
### 구현
**내부 PC (192.168.55.100)에서:**
```bash
sudo nano /etc/hosts
```
**파일 맨 아래 추가:**
```
192.168.55.90 www.example.duckdns.org example.duckdns.org
```
### 검증
```bash
ping www.example.duckdns.org
# PING www.example.duckdns.org (192.168.55.90) 56(84) bytes of data.
# 64 bytes from www.example.duckdns.org (192.168.55.90): icmp_seq=1 ttl=64 time=1.99 ms
```
### 접속
브라우저에서:
```
https://www.example.duckdns.org/nextcloud
```
**✅ 정상 접속!**
## 작동 원리
```
┌─────────────────────────────────────────────────────────┐
│ 외부 접속 (LTE) │
│ www.example.duckdns.org │
│ ↓ │
│ DNS 서버 → 공인 IP (58.224.12.87) │
│ ↓ │
│ 포트 포워딩 → 서버 (192.168.55.90:9090) │
│ ↓ │
│ NextCloud (HTTPS) │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 내부 접속 (WiFi) │
│ www.example.duckdns.org │
│ ↓ │
│ /etc/hosts → 192.168.55.90 (내부 IP) │
│ ↓ │
│ 직접 연결 → 서버 (192.168.55.90:9090) │
│ ↓ │
│ NextCloud (HTTPS) │
└─────────────────────────────────────────────────────────┘
```
## 주의사항
### HTTPS 인증서 경고
내부망에서 접속 시 SSL/TLS 인증서 경고가 발생할 수 있음:
**원인:**
- Let's Encrypt 인증서는 공인 IP용으로 발급됨
- 내부 IP로 접속하면 도메인 불일치
**해결:**
1. 브라우저에서 "위험을 무릅쓰고 계속" 클릭
2. 또는 "예외 추가"
3. **보안상 문제 없음** (내부망이므로)
### 다른 내부 PC에도 적용
각 클라이언트 PC의 `/etc/hosts`에 동일하게 추가 필요:
```bash
# 각 PC에서 실행
sudo nano /etc/hosts
# 추가
192.168.55.90 www.example.duckdns.org example.duckdns.org
```
## 최종 결과
| 접속 위치 | URL | 상태 |
|----------|-----|------|
| 외부 (LTE) | `https://www.example.duckdns.org/nextcloud` | ✅ 정상 |
| 내부 (WiFi) | `https://www.example.duckdns.org/nextcloud` | ✅ 정상 |
| 내부 (WiFi) | `http://192.168.55.90:9090/` | ❌ 사용 안 함 |
## 참고: 왜 9090 포트 직접 접속이 안 되는가?
```bash
# NextCloud 설정 확인
sudo docker exec nextcloud_nextcloud_1 cat /var/www/html/config/config.php
```
```php
'overwrite.cli.url' => 'https://www.example.duckdns.org/nextcloud',
'overwritewebroot' => '/nextcloud', // ← 서브 경로 설정
```
- Docker 컨테이너는 루트(`/`)에서 NextCloud 실행
- 하지만 설정은 `/nextcloud` 서브경로를 요구
- 따라서 `http://192.168.55.90:9090/nextcloud`는 404 에러
- `http://192.168.55.90:9090/`는 리다이렉트 루프
**해결책:** 도메인으로만 접속 (hosts 파일 수정 활용)
## 교훈
1. **NextCloud의 overwrite 설정은 복잡함**
- `overwritecondaddr`가 항상 작동하는 것은 아님
- 설정 순서와 위치가 중요
2. **NAT Loopback(헤어핀 NAT) 문제**
- 내부망에서 공인 IP로 접속 불가능한 라우터 존재
- `/etc/hosts`가 가장 간단하고 확실한 해결책
3. **Docker 컨테이너 내부 편집 어려움**
- 최소 이미지는 에디터 미포함
- 호스트에서 `docker exec` 명령 활용 필요
## 추가 최적화 (선택사항)
### 내부망 전용 도메인 설정
로컬 DNS 서버(Pi-hole, dnsmasq 등) 사용 시:
```
# DNS 서버에 등록
www.example.duckdns.org → 192.168.55.90
```
모든 내부 PC에서 자동 적용됨 (개별 hosts 수정 불필요)
---
**작성일:** 2026-03-20
**해결 시간:** 약 1시간
**난이도:** 중급
2026년 3월 20일 금요일
NextCloud 내부망 접속 문제 해결 가이드
피드 구독하기:
댓글 (Atom)
NextCloud 내부망 접속 문제 해결 가이드
# NextCloud 내부망 접속 문제 해결 가이드 ## 문제 상황 - **증상**: 내부망에서 `http://192.168.55.90:9090/` 접속 불가 - **환경**: - NextCloud: Docker 컨테이너로 실행 - 외부 도...
-
몇 일전부터 컴퓨터 사용 중 갑자기 꺼지는 현상이 발생했다 . 계속해서 켜다보니 화면에 나타난 에러 메시지 CPU over voltage error Press F1 to Resume fan 들은 정상적으로 돌아갑니다 . 쿨러도 흔들...
-
[ 증상 ] 몇 일전부터 컴퓨터가 이상하더니 오늘은 컴퓨터 사용 몇 분 만에 갑자기 모니터가 흑백으로 바뀌었다 . 모니터 전원은 정상적인 상태였다 . 백신으로 검사를 하는 과정에 모니터가 흑백으로 바뀌면서 내용이 보이지 않으...
-
크롬(chrome)의 반응속도에 매료되어 웹서핑의 대부분을 크롬으로 사용하였다. 끝임없이 추가되는 확장프로그램 사용도 나름 재미가 솔솔하였다. 그런데 언제부터인가 인쇄 미리보기 기능이 추가되었다. 왜 이 기능이 추가되었는지 정확히 알 수 없었지만, 단...
댓글 없음:
댓글 쓰기