개발/Develop

003. Ubuntu NetPlan으로 고정 IP 설정하기

봉자씨 2021. 2. 16. 14:39
반응형

ubuntu 17.10부터 NetPlan을 이용해서 편리하게 IP 설정이 가능해졌다.

설정방법

0. 네트워크 인터페이스 확인

ifconfig 명령으로 설정하고자하는 인터페이스 이름을 확인한다.

ifconfig 명령이 설치 되어 있지 않는 경우 ip -a addr로 확인이 가능하다.

보통 eth0, eno0, enp1s0 등의 이름으로 되어있다. 여기서는 enp1s0를 설정한다.

$ ifconfig -a
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet xxx.xxx.xxx.xxx  netmask 255.255.255.0  broadcast xxx.xxx.xxx.xxx
        inet6 xxxx::xxxx:xxxx:xxxx:xxxx  prefixlen 64  scopeid 0x20<link>
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 198200409  bytes 31461273396 (31.4 GB)
        RX errors 0  dropped 22  overruns 0  frame 0
        TX packets 12848589  bytes 3569833050 (3.5 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 8158517  bytes 3231646218 (3.2 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8158517  bytes 3231646218 (3.2 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ ip -a addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.xxx/24 brd xxx.xxx.xxx.xxx scope global noprefixroute enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::b62e:99ff:fe42:1638/64 scope link 
       valid_lft forever preferred_lft forever

1. netplan 설정파일 열기

/etc/netplan 폴더에 가면 yaml파일이 있다. 이름은 상관이 없으니 해당 파일을 수정하자.

$ sudo vim /etc/netplan/*.yaml

2. 설정파일 수정

다음과 같이 설정파일을 수정한다.

network:
  version: 2
  renderer: networkd
  ethernets:
    ens0p1:
      addresses: [10.0.1.2/24]
      gateway4: 10.0.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
  • version: netplan 버전이다. 2를 사용한다.
  • renderer: networkdNetworkdManager를 사용할 수 있다. 데스크탑모드를 사용하는 경우에만 NetworkManager를 사용한다.
  • ethernets: 이더넷 설정을하는 부분이다.
  • ens0p1: 설정하고자하는 네트워트 인터페이스 이름
  • addresses: IP주소서브넷마스크/로 구분해서 적는다. ,로 구분하여 여러개를 지정 할 수 있다.
  • gateway4: IPv4 gateway 주소를 적는다.
  • nameservers: DNS 서버를 설정하는 부분이다. addresses부분은 위와 마찬가지로 ,로 구분하여 여러개를 설정 할 수 있다. 예시에 적힌 DNS는 google의 DNS서버이다.

3. 설정 적용

아래 명령을 사용하여 설정을 적용한다.

$ sudo netplan apply

다시 ifconifg -a 혹은 ip -a addr로 인터페이스 정보를 확인하면 설정된 것을 볼 수 있다.

$ ifconfig -a
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.1.2  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 xxxx::xxxx:xxxx:xxxx:xxxx  prefixlen 64  scopeid 0x20<link>
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 198200409  bytes 31461273396 (31.4 GB)
        RX errors 0  dropped 22  overruns 0  frame 0
        TX packets 12848589  bytes 3569833050 (3.5 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 8158517  bytes 3231646218 (3.2 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8158517  bytes 3231646218 (3.2 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

설정이 안되는 경우 확인 할 것

  1. 올바른 네트워크 인터페이스 인지 확인
  2. 설정파일에 오타가 없는지 확인

유용한 명령어 sudo netplan --debug apply

반응형