KVM 외부접속

인공능지연구소·2024년 11월 14일

아래는 읽기-쓰기 문제와 Arch Linux ARM에서 패키지 설치 오류 해결 방법을 추가하여 업데이트한 문서입니다.

# PikVM External Access Troubleshooting

이 문서는 PikVM에 외부에서 접속이 불가능할 때 문제 해결 과정을 정리한 것입니다.

---

## 1. 기본 포트 정보

PikVM은 기본적으로 다음 포트를 사용합니다:

- **443 (HTTPS)**: 웹 인터페이스 보안 접속.
- **80 (HTTP)**: 웹 인터페이스 비보안 접속 (선택적).
- **22 (SSH)**: SSH 원격 접속.

외부에서 접근할 때는 **443** 포트를 사용하는 HTTPS를 권장합니다.

---

## 2. 문제 해결 과정

### 2.1 읽기-쓰기 오류 해결

파일 시스템이 읽기 전용으로 마운트되어 패키지 설치나 설정 파일 변경이 불가한 경우, 다음 단계를 통해 문제를 해결할 수 있습니다.

1. **파일 시스템을 읽기-쓰기 모드로 마운트**합니다.

   ```bash
   mount -o remount,rw /
  1. 파일 시스템 상태 확인: dmesg 명령어로 파일 시스템 오류를 확인할 수 있습니다.

    dmesg | grep "EXT4-fs error"
  2. 파일 시스템 복구 (필요 시): 다른 컴퓨터에서 SD 카드를 연결해 fsck 명령으로 파일 시스템을 검사하고 복구합니다.

    sudo fsck -y /dev/sdX  # 'sdX'는 SD 카드의 장치 이름입니다.

2.2 Arch Linux ARM 패키지 설치 문제 해결

패키지 설치 시 "unable to lock database" 또는 "target not found" 오류가 발생하는 경우, 다음을 확인하세요.

  1. 패키지 데이터베이스 업데이트: 패키지 데이터베이스가 최신 상태인지 확인합니다.

    sudo pacman -Syu
  2. 미러 서버 설정 변경: mirrorlist 파일을 수정하여 다른 Arch Linux ARM 미러 서버를 우선 순위로 설정합니다.

    sudo nano /etc/pacman.d/mirrorlist

    mirror.archlinuxarm.org 대신 다른 미러 주소를 추가합니다. 예:

    Server = http://de4.mirror.archlinuxarm.org/$arch/$repo
  3. 패키지 재설치: 문제가 있는 패키지를 제거하고 다시 설치합니다.

    sudo pacman -R ufw        # 예: ufw 제거
    sudo pacman -S ufw        # ufw 재설치

3. 외부 접속을 위한 포트 포워딩 설정

3.1 라우터 포트 포워딩 확인

외부에서 PikVM에 접속하려면 라우터 포트 포워딩이 올바르게 설정되어야 합니다.

  1. 라우터에 접속 (192.168.1.1 또는 192.168.0.1).
  2. 포트 포워딩 설정:
    • 외부 포트: 443
    • 내부 IP: PikVM의 내부 IP (예: 192.168.1.100)
    • 내부 포트: 443
  3. 설정 저장 및 라우터 재부팅.

3.2 PikVM 서비스 상태 확인

PikVM 웹 서비스가 정상적으로 실행 중인지 확인합니다.

sudo systemctl status kvmd

서비스가 실행 중이 아니라면 다음 명령어로 재시작합니다.

sudo systemctl restart kvmd

3.3 방화벽 설정 확인 및 영구화

PikVM의 방화벽 설정에서 포트 443을 차단하고 있을 수 있습니다. iptables를 사용하여 포트를 열고 규칙을 영구적으로 저장합니다.

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables-save > /etc/iptables/iptables.rules
sudo systemctl enable iptables
sudo systemctl start iptables

이제 재부팅 후에도 iptables 규칙이 유지됩니다.

3.4 SSL 설정 확인 (HTTPS 접속 시)

SSL 인증서 설정에 문제가 있을 경우, HTTPS 접속이 불가할 수 있습니다. PikVM에서 Let's Encrypt 인증서를 설정하는 명령어를 사용하여 인증서를 재설정할 수 있습니다.

sudo kvmd-letsencrypt

4. 네트워크 문제 진단

접속 문제의 원인을 더 찾기 위해 네트워크 도구를 사용하여 진단할 수 있습니다.

  • ping 명령어로 PikVM에 접근 가능한지 확인합니다:

    ping <PikVM_IP>
  • traceroute 명령어로 라우터와 PikVM 간 경로에 문제가 없는지 확인합니다.

    traceroute <PikVM_IP>

5. 추가 참고

외부 접속이 계속 불가할 경우, 인터넷 서비스 제공업체(ISP)에서 포트 443을 제한하고 있을 수 있습니다. 이 경우, ISP에 문의하거나 VPN을 설정해 안전하게 외부 접속을 구성할 수도 있습니다.


6. 요약

위의 단계들을 순서대로 확인하고, 네트워크 설정을 재검토하여 외부 접속 문제를 해결할 수 있습니다. 네트워크 구성 문제나 방화벽 설정이 대부분의 원인이므로 이를 우선적으로 확인하세요.


이 파일을 `PikVM_External_Access_Troubleshooting.md`로 저장하여 문제 해결 과정을 문서화할 수 있습니다.
profile
내가 뭘 해봤는지는 시리즈 탭에 다 정리해뒀슈

0개의 댓글