Proxmox LXC 컨테이너에서 Tailscale 실행하기

Proxmox LXC 컨테이너에서 Tailscale 실행하기

Summary Proxmox LXC 컨테이너에서 Tailscale VPN을 실행하기 위해 TUN 디바이스를 활성화하는 방법을 설명합니다. LXC 설정 파일을 수정하고 컨테이너를 재시작한 후, TUN 디바이스가 활성화되었는지 확인하고 tailscaled를 실행합니다. 또한, 컨테이너 재부팅 시 자동으로 Tailscale이 실행되도록 crontab을 설정하는 방법도 포함되어 있습니다.


Image

Proxmox LXC 컨테이너에서 Tailscale 실행하기

Proxmox에서 LXC 컨테이너를 사용하여 Tailscale VPN을 실행하려고 할 때, 기본적으로 TUN 디바이스가 비활성화되어 있어 tailscaled가 실행되지 않는 문제가 발생할 수 있습니다. 이 문서는 LXC 환경에서 Tailscale을 정상적으로 실행하기 위한 설정 방법을 안내합니다.


1. 문제 원인 분석

LXC 컨테이너 내부에서 tailscaled를 실행하면 다음과 같은 오류가 발생할 수 있습니다:

1
2
3
is CONFIG_TUN enabled in your kernel? `modprobe tun` failed with: modprobe: FATAL: Module tun not found in directory /lib/modules/...
tun module not loaded nor found on disk
wgengine.NewUserspaceEngine(tun "tailscale0") error: tstun.New("tailscale0"): CreateTUN("tailscale0") failed; /dev/net/tun does not exist

이 오류는 컨테이너에서 **TUN** 인터페이스를 사용할 수 없도록 설정되어 있기 때문입니다. 이를 해결하려면 Proxmox의 LXC 설정을 수정하고, 컨테이너 내부에서 TUN 디바이스를 활성화해야 합니다.


🔹 2. Proxmox 호스트에서 LXC 설정 수정

먼저 Proxmox 호스트에서 LXC 설정을 수정해야 합니다.

1) LXC 설정 파일 수정

Proxmox 호스트에서 컨테이너의 설정 파일을 엽니다: (컨테이너가 아닙니다)

1
nano /etc/pve/lxc/<컨테이너ID>.conf

예를 들어, 컨테이너 ID가 103이라면 다음과 같이 실행합니다:

1
nano /etc/pve/lxc/103.conf

아래 두 줄을 추가합니다:

1
2
lxc.cgroup.devices.allow = c 10:200 rwm
lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file

2) 컨테이너 재시작

설정을 적용하려면 컨테이너를 완전히 재시작해야 합니다.

1
2
pct stop <컨테이너ID>
pct start <컨테이너ID>

예시:

1
2
pct stop 103
pct start 103

🔹 3. 컨테이너 내부에서 **TUN** 디바이스 활성화

컨테이너가 재시작되면, 내부에서 TUN 디바이스가 활성화되었는지 확인해야 합니다.

1
ls -l /dev/net/tun

정상적인 경우 다음과 같은 출력이 나타납니다:

1
crw-rw-rw- 1 root root 10, 200 Feb  9 14:06 /dev/net/tun

**❗ 만약 ****/dev/net/tun**이 존재하지 않는다면? 아래 명령어를 실행하여 수동으로 생성합니다.

1
2
3
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 666 /dev/net/tun

이제 다시 ls -l /dev/net/tun을 실행하여 확인합니다.


🔹 4. Tailscale 실행

이제 lxc 컨테이너에서 tailscaled를 실행할 수 있습니다.

1
nohup /usr/sbin/tailscaled --tun=tailscale0 --verbose=1 > /var/log/tailscaled.log 2>&1 &

정상적으로 실행되었는지 확인합니다:

1
ps aux | grep tailscale

그다음 tailscale up을 실행하여 Tailscale 네트워크에 연결합니다:

1
tailscale up

🔹 5. 컨테이너 재부팅 시 자동 실행 설정

컨테이너가 재부팅될 때마다 tailscaled가 자동으로 실행되도록 설정하려면, crontab을 활용하면 됩니다.

1
crontab -e

아래 줄을 추가:

1
@reboot /usr/sbin/tailscaled --tun=tailscale0 --verbose=1

이제 컨테이너가 재부팅되더라도 Tailscale이 자동으로 실행됩니다.


🚀 결론

| 단계 | 설명 | | 1. LXC 설정 수정 | /etc/pve/lxc/<컨테이너ID>.conf 수정하여 TUN 활성화 | | 2. 컨테이너 재시작 | pct stop <ID> && pct start <ID> 실행 | | 3. **/dev/net/tun** 확인 | ls -l /dev/net/tun으로 확인, 없으면 mknod로 생성 | | 4. **tailscaled** 실행 | nohup /usr/sbin/tailscaled --tun=tailscale0 --verbose=1 & | | 5. Tailscale VPN 연결 | tailscale up 실행 | | 6. 자동 실행 설정 | crontab -e@reboot 명령 추가 |

이제 Proxmox LXC 컨테이너에서 Tailscale을 정상적으로 사용할 수 있습니다! 🚀

문제가 발생하면 journalctl -u tailscaled --no-pager --lines=50을 실행하여 로그를 확인하고 디버깅하세요.

💬 댓글

GitHub 계정으로 로그인하여 댓글을 남겨보세요. GitHub 로그인

🔧 댓글 시스템 설정이 필요합니다

GitHub Discussions 기반 댓글 시스템을 활성화하려면:

  1. Giscus 설정 페이지에서 설정 생성
  2. GISCUS_SETUP_GUIDE.md 파일의 안내를 따라 설정 완료
  3. Repository의 Discussions 기능 활성화

Repository 관리자만 설정할 수 있습니다. 설정이 완료되면 모든 방문자가 댓글을 남길 수 있습니다.