우분투 고정IP 설정 방법 – 서버 운영 필수 네트워크 세팅

우분투 설치 후 IP 설정 방법을 상세히 안내합니다. 고정IP 설정, 네트워크 설정 변경, DHCP 설정, 명령어 사용법까지 초보자도 따라할 수 있는 실전 가이드를 확인하세요.


우분투 IP 설정이 중요한 이유

우분투를 처음 설치하고 나면 많은 분들이 네트워크 연결 문제로 어려움을 겪습니다. 특히 서버 용도로 사용하거나 개발 환경을 구축할 때는 고정 IP 설정이 필수적입니다.

일반적으로 우분투는 설치 과정에서 DHCP를 통해 자동으로 IP를 할당받지만, 이 방식은 재부팅할 때마다 IP 주소가 바뀔 수 있어 불편합니다. SSH 접속, 웹 서버 운영, 파일 공유 등을 안정적으로 사용하려면 고정 IP 설정이 필요합니다.

2026년 현재 우분투 22.04 LTS와 24.04 LTS 버전에서는 Netplan이라는 네트워크 설정 도구를 기본으로 사용하고 있습니다. 예전 방식인 /etc/network/interfaces 파일 수정 방법과는 다르기 때문에 최신 방식을 정확히 알아두는 것이 중요합니다.


현재 네트워크 상태 확인하기

IP 설정을 변경하기 전에 먼저 현재 네트워크 상태를 확인해야 합니다. 터미널을 열고 아래 명령어를 입력하세요.

ip addr show

또는 간단하게

ip a

이 명령어를 실행하면 네트워크 인터페이스 이름과 현재 할당된 IP 주소를 확인할 수 있습니다. 일반적으로 유선 연결은 eth0, enp3s0, eno1 같은 이름을, 무선 연결은 wlan0, wlp2s0 같은 이름을 사용합니다.

게이트웨이와 DNS 정보를 확인하려면 다음 명령어를 사용하세요.

ip route show

현재 사용 중인 DNS 서버는 다음 파일에서 확인할 수 있습니다.

cat /etc/resolv.conf

이 정보들을 메모장에 정리해두면 고정 IP 설정할 때 유용합니다.


Netplan을 이용한 고정 IP 설정 방법

우분투 18.04 버전부터 도입된 Netplan은 YAML 형식의 설정 파일을 사용합니다. 설정 파일은 /etc/netplan/ 디렉토리에 위치하며, 보통 01-network-manager-all.yaml 또는 00-installer-config.yaml 같은 이름을 가지고 있습니다.

먼저 설정 파일을 확인해봅시다.

ls /etc/netplan/

파일이 확인되면 편집기로 열어줍니다. nano 편집기를 사용한다면:

sudo nano /etc/netplan/00-installer-config.yaml

고정 IP 설정 예시는 다음과 같습니다:

yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: no
      addresses:
        - 192.168.0.100/24
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
```

여기서 **주의해야 할 점**이 몇 가지 있습니다:

- `enp3s0` 부분은 앞서 확인한 본인의 네트워크 인터페이스 이름으로 변경해야 합니다
- `192.168.0.100/24`는 설정하고 싶은 고정 IP 주소입니다
- `192.168.0.1`은 게이트웨이 주소입니다 (공유기 IP)
- DNS는 구글 DNS(8.8.8.8)를 사용했지만 통신사 DNS나 다른 DNS로 변경 가능합니다
- **YAML 파일은 들여쓰기가 매우 중요**하므로 스페이스를 정확히 맞춰야 합니다

***

## 네트워크 설정 적용 및 확인

설정 파일을 저장했다면 먼저 **문법 오류를 확인**하는 것이 좋습니다:
```
sudo netplan try
```

이 명령어는 120초 동안 새 설정을 적용해보고, 문제가 없으면 엔터를 눌러 확정하거나 자동으로 이전 설정으로 되돌립니다. 네트워크 설정 실수로 SSH 연결이 끊기는 것을 방지할 수 있어 **서버 환경에서 매우 유용**합니다.

문제가 없다면 실제로 적용합니다:
```
sudo netplan apply
```

적용 후에는 다시 IP 주소를 확인해봅시다:
```
ip addr show
```

설정한 고정 IP가 제대로 표시되는지 확인하세요. 또한 인터넷 연결도 테스트해봅니다:
```
ping -c 4 google.com

정상적으로 응답이 오면 설정이 완료된 것입니다.


DHCP 자동 할당 설정하기

고정 IP가 아닌 **자동 IP 할당(DHCP)**을 사용하고 싶다면 설정 파일을 다음과 같이 수정하세요:

yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

이렇게 간단하게 설정하면 공유기나 DHCP 서버에서 자동으로 IP를 받아옵니다. 일반 가정용이나 IP 주소가 자주 바뀌어도 상관없는 환경에서는 DHCP 방식이 편리합니다.

DNS 서버를 수동으로 지정하고 싶다면:

yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
      nameservers:
        addresses:
          - 8.8.8.8
          - 1.1.1.1
```

이렇게 설정하면 IP는 자동으로 받되 **DNS만 원하는 서버를 사용**할 수 있습니다.

***

## NetworkManager를 사용하는 데스크톱 환경

우분투 데스크톱 버전을 사용한다면 **NetworkManager**가 네트워크를 관리합니다. GUI 환경에서 쉽게 설정할 수 있지만, 명령어로도 가능합니다.

NetworkManager 상태 확인:
```
systemctl status NetworkManager
```

명령어로 연결 목록 확인:
```
nmcli connection show
```

특정 연결의 IP를 고정으로 변경하려면:
```
nmcli connection modify "유선 연결 1" ipv4.addresses 192.168.0.100/24
nmcli connection modify "유선 연결 1" ipv4.gateway 192.168.0.1
nmcli connection modify "유선 연결 1" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "유선 연결 1" ipv4.method manual
```

설정 적용:
```
nmcli connection up "유선 연결 1"

GUI로 설정하려면 우측 상단 네트워크 아이콘을 클릭하고 설정 → 네트워크 → 톱니바퀴 아이콘 → IPv4 탭에서 수동으로 변경할 수 있습니다.


여러 IP 주소 설정하기

하나의 네트워크 인터페이스에 여러 개의 IP 주소를 할당해야 하는 경우도 있습니다. 가상 호스팅이나 특수한 네트워크 구성에서 필요합니다.

Netplan 설정 파일에서 다음과 같이 작성하면 됩니다:

yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: no
      addresses:
        - 192.168.0.100/24
        - 192.168.0.101/24
        - 192.168.0.102/24
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses:
          - 8.8.8.8

이렇게 하면 하나의 인터페이스에 세 개의 IP 주소가 동시에 할당됩니다. 각 IP로 접속 테스트를 해보면 모두 정상 작동하는 것을 확인할 수 있습니다.


무선 네트워크(WiFi) IP 설정

무선 네트워크 설정은 유선과 조금 다릅니다. WiFi 비밀번호를 함께 설정해야 하기 때문입니다.

yaml

network:
  version: 2
  renderer: networkd
  wifis:
    wlp2s0:
      dhcp4: no
      addresses:
        - 192.168.0.150/24
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses:
          - 8.8.8.8
      access-points:
        "WiFi_이름":
          password: "WiFi_비밀번호"
```

여기서 `wlp2s0`는 무선 인터페이스 이름이며, `WiFi_이름`과 `WiFi_비밀번호`는 실제 값으로 변경해야 합니다.

보안을 위해 비밀번호를 암호화하고 싶다면:
```
echo -n "WiFi_비밀번호" | iconv -t utf16le | openssl md4
```

출력된 해시값을 설정 파일에 사용할 수 있습니다.

***

## 네트워크 문제 해결 방법

IP 설정 후 인터넷이 안 되거나 연결에 문제가 생겼을 때 **점검해야 할 사항**들입니다.

**1. 네트워크 인터페이스 상태 확인**
```
ip link show
```

인터페이스가 DOWN 상태라면:
```
sudo ip link set enp3s0 up
```

**2. 게이트웨이 연결 테스트**
```
ping 192.168.0.1
```

게이트웨이까지 연결이 안 되면 IP 주소나 서브넷 설정이 잘못되었을 가능성이 큽니다.

**3. DNS 문제 확인**

게이트웨이는 연결되는데 인터넷이 안 되면 DNS 문제일 수 있습니다:
```
nslookup google.com
```

응답이 없다면 DNS 서버 주소를 확인하고 변경해보세요.

**4. 방화벽 확인**
```
sudo ufw status
```

방화벽이 활성화되어 있다면 필요한 포트를 열어줘야 할 수 있습니다.

**5. 로그 확인**
```
sudo journalctl -u systemd-networkd
```

상세한 오류 메시지를 확인할 수 있습니다.

***

## 클라우드 환경에서의 IP 설정

AWS, Azure, Google Cloud 같은 **클라우드 환경**에서 우분투를 사용할 때는 주의사항이 있습니다.

클라우드 인스턴스는 대부분 cloud-init이 네트워크를 관리합니다. Netplan 설정을 직접 수정하면 재부팅 시 초기화될 수 있으므로, `/etc/cloud/cloud.cfg.d/` 디렉토리에 설정 파일을 생성하거나 cloud-init 설정을 수정해야 합니다.

예를 들어 `/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg` 파일을 만들고:
```
network: {config: disabled}

이렇게 설정하면 cloud-init의 네트워크 자동 설정이 비활성화되어 수동 설정이 유지됩니다.

또한 클라우드 환경에서는 보안 그룹이나 방화벽 규칙도 함께 확인해야 합니다. 인스턴스 내부 설정이 완벽해도 클라우드 플랫폼의 방화벽에서 막혀있으면 연결이 안 됩니다.


유용한 네트워크 명령어 모음

우분투에서 자주 사용하는 네트워크 관련 명령어를 정리했습니다:

IP 정보 확인

  • ip addr show – 모든 네트워크 인터페이스 정보
  • hostname -I – 현재 IP 주소만 간단히 확인
  • ifconfig – 구 버전 명령어 (net-tools 패키지 필요)

라우팅 정보

  • ip route – 라우팅 테이블 확인
  • route -n – 구 버전 명령어

DNS 테스트

  • nslookup 도메인 – DNS 조회
  • dig 도메인 – 상세한 DNS 정보
  • host 도메인 – 간단한 DNS 조회

연결 테스트

  • ping 주소 – ICMP 테스트
  • traceroute 주소 – 경로 추적
  • netstat -tuln – 열려있는 포트 확인
  • ss -tuln – netstat의 최신 대체 명령어

네트워크 속도 테스트

  • speedtest-cli – 인터넷 속도 측정 (설치 필요)
  • iperf3 – 로컬 네트워크 성능 측정

고급 설정: VLAN 및 브리지

서버 환경이나 가상화를 사용한다면 VLAN이나 브리지 설정이 필요할 수 있습니다.

VLAN 설정 예시:

yaml

network:
  version: 2
  ethernets:
    enp3s0:
      dhcp4: no
  vlans:
    vlan10:
      id: 10
      link: enp3s0
      addresses:
        - 192.168.10.100/24

브리지 설정 예시:

yaml

network:
  version: 2
  ethernets:
    enp3s0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [enp3s0]
      dhcp4: no
      addresses:
        - 192.168.0.100/24
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses:
          - 8.8.8.8
```

브리지는 **가상머신이나 컨테이너를 호스트 네트워크에 직접 연결**할 때 유용합니다.

***

## 보안을 위한 네트워크 설정 팁

네트워크를 설정할 때는 **보안**도 함께 고려해야 합니다.

**1. 불필요한 서비스 비활성화**
```
sudo systemctl disable <서비스명>
```

**2. SSH 포트 변경**

기본 22번 포트 대신 다른 포트를 사용하면 자동화된 공격을 줄일 수 있습니다.

**3. 방화벽 활성화**
```
sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
```

**4. Fail2Ban 설치**

반복된 로그인 실패를 자동으로 차단합니다:
```
sudo apt install fail2ban

5. IPv6 비활성화 (필요한 경우)

IPv6를 사용하지 않는다면 보안을 위해 비활성화할 수 있습니다:

yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: yes
      dhcp6: no
```

***

## 실전 활용 사례

실제로 많이 사용하는 **시나리오별 설정 방법**을 소개합니다.

**웹 서버 운영**
- 고정 IP 필수
- 80, 443 포트 개방
- DNS A 레코드 설정
- SSL 인증서 설치 대비

**개발 환경 구축**
- 로컬 네트워크에서 고정 IP 사용
- SSH 접속 편의성
- Docker나 VM 사용 시 브리지 설정

**파일 서버**
- 삼바(Samba) 설정
- 고정 IP로 접근 경로 단순화
- 백업을 위한 네트워크 대역폭 고려

**미디어 서버**
- Plex, Jellyfin 등
- 포트 포워딩 설정
- DLNA 프로토콜 지원

***

## 네트워크 성능 최적화

IP 설정 후 **네트워크 성능을 향상**시킬 수 있는 방법들입니다.

**MTU 값 조정**
```
sudo ip link set enp3s0 mtu 9000
```

점보 프레임을 지원하는 네트워크에서 성능 향상이 가능합니다.

**TCP 설정 최적화**

`/etc/sysctl.conf` 파일에 다음 내용 추가:
```
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
```

적용:
```
sudo sysctl -p
```

**네트워크 카드 오프로드 기능 활용**
```
sudo ethtool -K enp3s0 tso on gso on

마치며

우분투에서 IP 설정은 처음에는 복잡해 보일 수 있지만, Netplan의 구조를 이해하고 나면 체계적으로 관리할 수 있습니다. 고정 IP든 DHCP든 본인의 환경에 맞는 설정을 선택하고, 문제가 생겼을 때 로그를 확인하는 습관을 들이면 대부분의 문제는 해결할 수 있습니다.

서버 운영이나 개발 환경에서는 네트워크가 모든 서비스의 기반이 되므로 초기 설정을 확실하게 해두는 것이 중요합니다. 이 글에서 소개한 방법들을 참고하여 안정적인 네트워크 환경을 구축하시기 바랍니다.

더 자세한 우분투 네트워크 설정 가이드는 공식 문서를 참고하세요: 우분투 공식 네트워크 문서: https://netplan.io/reference

궁금한 점이 있다면 우분투 한국 커뮤니티에서 도움을 받을 수 있습니다: 우분투 한국 커뮤니티: https://ubuntu-kr.org

댓글 남기기