우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo

잡동사니

우분투에서 네트워크가 안잡히는 현상 해결 본문

IT/Linux

우분투에서 네트워크가 안잡히는 현상 해결

yeTi 2021. 2. 25. 11:50

안녕하세요. yeTi입니다.
오늘은 우분투 사용중에 갑자기 네트워크가 안되는 현상이 발생해서 이를 해결해보려고 합니다.

증상

우분투에서 무선 마우스를 연결하니 갑자기 UI가 다운되면서, 재부팅하니 네트워크가 잡히지 않는 이슈가 발생했습니다.

환경 확인

OS의 버전을 확인합니다.

$ lsb_release -a | grep Desc
Ubuntu 18.04.5 LTS

커널의 버전을 확인합니다.

$ uname -r
5.4.0-65-generic

랜카드 인식여부 확인

랜카드의 인식여부를 확인합니다.

$ lspci | grep -i Ethernet
Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8125

랜카드의 네트워트 상태를 확인합니다.

$ lshw -class network
*-network UNCLAIMED
  product: Realtek Semiconductor

여기까지 랜카드를 인식하고 있지만 네트워크에서 사용하지 못하는 상태를 확인할 수 있습니다.

드라이버 설치

lspci | grep -i Ethernet를 통하여 확인한 정보를 기반으로 드라이버를 설치합니다.

Realtek Software에서 r8125 버전의 드라이버를 다운받아서 설치했습니다.

네트워크의 인식여부를 확인합니다.

$ ip a
...
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default ...
...

네트워크 재설정

위 작업까지 진행하면 OS에서 네트워크를 사용할 수 있는 환경을 만들어졌습니다. 마지막으로 네트워크 설정만 해주면 되는데,

현재 nmtui라는 NetworkManager 데몬으로 네트워크설정이 되어있어 이를 ubuntu에서 인식하지 못하고 있는 상황이었습니다.

따라서 NetworkManager 데몬을 제거하고 /etc/network/interfaces를 수정하여 네트워크를 설정하는 작업을 진행했습니다.

NetworkManager 데몬 제거

Network Manager의 자동 시작을 제거합니다.

$ sudo update-rc.d -f NetworkManager remove

Network Interface 설정

Network interface를 설정합니다.

$ vi /etc/netplan/01-network-manager-all.yaml
network:
  version: 2
  ethernets:
    enp3s0:
      dhcp4: no
      addresses: [xxx.xxx.xxx.xxx] # IP 주소
      gateway4: xxx.xxx.xxx.xxx # Gateway 주소
      nameservers:
        addresses: [xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx] # DNS, 보조 DNS

안녕하세요. 이번 게시물에서는 네트워크 인터페이스 설정에 대해서 게시하도록 하겠습니다.

ubuntu 18.04부터 이전 버전과 가장 큰 차이점은 네트워크 설정방법의 변경입니다.

해당 바뀐 방식에 대해서 dhcp 방식과 static 방식에 대해서 설명드리겠습니다.

기준 : ubuntu 20.04

18.04 이전 네트워크 설정 파일 위치 : vi /etc/network/interfaces

18.04(포함) 이후 네트워크 설정 파일 위치 : vi /etc/netplan/*.yaml

현재 ip가 정상적으로 세팅되어있는지 확인 및 네트워크 인터페이스 이름 확인하는 방법은 아래의 두 가지 방법입니다.

#방법1
ifconfig

#방법2
ip a

* 주의사항

  • 대문자 및 소문자를 구분해줘야합니다.
  • 각 줄마다 들여쓰기가 틀리면 apply가 안됩니다. 

네트워크 인터페이스 이름 : eth0

dhcp 방식

network:
  ethernets:
     eth0:
       dhcp4: true
       nameservers:
         addresses: ["네임서버 주소"]
  version: 2

static 방식

network:
  ethernets:
     eth0:
       dhcp4: no
       addresses: ["서버 주소"]
       gateway4: "게이트웨이 주소"
       nameservers:
         addresses: ["네임서버 주소"]
  version: 2

위의 dhcp 또는 static으로 본인이 설정을 완료하셨다면, 밑의 명령어를 통해서 적용을 해주면 ipconfig 또는 ip a명령어를 통해서 확인할 수 있습니다.

sudo netplan apply

Ubuntu server 를 설치하고 나서 이번에는 고정 IP 설정을 해보려한다.

Ubuntu 18 LTS 부터는 Netplan 이 적용되어 설정방식이 바뀌었다고 한다.

간단하게 netplan 에 대해 자료를 찾아 보니 Netplan 은 17.10 버전부터 네트워크 설정 관리하기 위해서 사용되었으며, Netplan 은 기존의 우분투 네트워크 인터페이스를 관리하기 위해서 사용되는 파일들(/etc/network/interfaces)를 대체하기 위한 툴이다.

우분투 18.04LTS 부터는 /etc/netplan/*.yaml 을 사용해야 한다.

우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
Ubuntu netplan

nic 인터페이스 설정파일은 /etc/netplan 디렉토리에 존재하며, 리눅스 커널의 networkd 와 network manager 로 renderer 값을 갖는다.

network manager : 데스크탑 컴퓨터에서 사용. 이 값이 randerer 로 사용되는 경우 GUI를 통해서 설정 및 관리

networkd : 주로 서버에서 사용되는 renderer

1. 인터페이스 확인

먼저 고정 ip를 설정할 인터페이스를 확인합니다.

ls /sys/class/net 또는 ip link 명령어로 인터페이스를 확인.
우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
ubuntu nic 인터페이스 확인

본딩을 위해 두개의 인터페이스를 생성하였으며, ens160에 고정 ip를 설정합니다.

2. netplan 파일 설정

이제 netplan 파일을 설정합니다. 파일 경로는 /etc/netplan/00-installer-config.yaml 입니다.

sudo nano /etc/netplan/00-installer-config.yaml
우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
netplan 파일 수정

파일을 열어서 ens160 인터페이스에 ip를 설정해야 합니다.

" 야믈(yaml,yml)은 편집 시 줄간격에 엄청 신경써야 하는걸 알았습니다. 가독성을 위해서라며 괄호({})를 없애고 들여쓰기로 구분하게 했지만 이 때문에 더 혼란스럽고 헷갈리며 어디서 오류가 났는지 찾기가 어렵습니다.

설정을 다하고 저장을 해보면 설정 문장은 맞더라도 줄간격이 맞지않아 계속 오류가 났었습니다.

개인적으로 yaml은 잘못 만든 파일 포맷으로 보입니다."

콜론(:) 뒤에는 반드시 공백이 있어야 했으며, TAB 을 이용한 들여쓰기를 한 경우 오류가 났었습니다.

일단 설정을 완료하도록 하겠습니다.

network:
 version: 2
  ethernets:
      ens160:  //인터페이스 name
             addresses:
             - 134.74.109.250/24   //ip address
             gateway4: 134.75.109.254                 // gateway IP
             nameservers:
                addresses:
                   [168.126.63.1,8.8.8.8]             //dns 서버 IP
우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
netpaln  고정 ip 설정
3. 설정저장 및 적용

설정 저장 후 적용시키도록 하겠습니다.

sudo netplan apply 
우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
netplan 설정 적용 후 ip확인

외부와의 통신 상태 확인

구글 DNS 로 PING 체크

우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
구글 DNS 로 통신상태 확인

예전버전과 같이 interfaces 를 사용하여 ip 설정을 하려면 아래와 같이 진행하면 된다.

1. ifupdown 설치
sudo apt-get install ifupdown 
우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
ubuntu ifupdown 설치
2. interfaces ip 설정
sudo nano /etc/network/interfaces

auto lo
iface lo inet loopback

auto ens160  //부팅시 인터페이스 활성화 , 인터페이스 name
iface ens160 inet static  //고정 ip 설정
address 134.75.109.250 // ip address
netmask 255.255.255.0  // 넷마스크
gateway 134.75.109.254  // 게이트웨이 ip 설정
dns-nameservers 8.8.8.8  //도메인서버 IP 설정

우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
Ubuntu interfaces 고정 ip 설정
3. 설정 적용
sudo systemctl restart networking.service
우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
networking service restart

4. 설정 확인 및 통신상태 확인

ifconfig 
ping 8.8.8.8
우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
ubuntu 고정ip 확인

구글 dns ip 로 외부 통신상태 확인

ping 8.8.8.8

우분투 인터페이스 경로 - ubuntu inteopeiseu gyeonglo
외부 통신상태 확인