IT/리눅스

LXD 네트워크 설정 쉘파일

천진난만한 블로거 2025. 3. 8. 17:01
반응형
#!/bin/bash

CONTAINER_NAME="mycontainer"
BRIDGE_NAME="lxdbr1"

echo "Starting network fix for $CONTAINER_NAME..."

# 인터페이스 설정
echo "Configuring network interfaces..."
lxc exec $CONTAINER_NAME -- bash -c "echo -e 'auto eth0\niface eth0 inet dhcp' > /etc/network/interfaces"

# DHCP 클라이언트 설치
echo "Installing DHCP client..."
lxc exec $CONTAINER_NAME -- apt update
lxc exec $CONTAINER_NAME -- apt install -y isc-dhcp-client

# DNS 설정
echo "Setting up DNS..."
lxc exec $CONTAINER_NAME -- bash -c "rm -f /etc/resolv.conf && echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
lxc exec $CONTAINER_NAME -- bash -c "echo 'nameserver 1.1.1.1' >> /etc/resolv.conf"
lxc exec $CONTAINER_NAME -- chattr +i /etc/resolv.conf

# LXD 브릿지 설정
echo "Configuring LXD bridge $BRIDGE_NAME..."
lxc network set $BRIDGE_NAME ipv4.nat true
lxc network set $BRIDGE_NAME ipv4.dhcp true
lxc network detach $BRIDGE_NAME $CONTAINER_NAME
lxc network attach $BRIDGE_NAME $CONTAINER_NAME eth0

# 컨테이너 재시작 및 네트워크 활성화
echo "Restarting container and enabling network..."
lxc restart $CONTAINER_NAME
sleep 5  # 컨테이너가 완전히 시작될 때까지 대기
lxc exec $CONTAINER_NAME -- ip link set eth0 up
lxc exec $CONTAINER_NAME -- dhclient eth0

# 네트워크 테스트
echo "Testing network connectivity..."
lxc exec $CONTAINER_NAME -- ping -c 4 8.8.8.8
lxc exec $CONTAINER_NAME -- ping -c 4 google.com

echo "Network setup completed!"
반응형