Ubuntu Server 18.04에서 고정 IP를 설정하는 방법


29

정적 ip를 설정하는 파일이 여전히 있다고 말하는 사람들이 있습니다. /etc/network/interfaces

그리고 다른 사람들이 18.04 년에 이제는 /etc/netplan(사람들이 불행 해 보인다)

나는 이것을 넣어 보았습니다.

version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.9/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

저 /etc/netplan/50-cloud-init.yaml와 그 일 sudo netplan apply에서 인터넷에 대한 서버 연결이 끊어집니다.


데스크탑입니까 아니면 서버입니까?
— user68186

다른 버전에서 새로 설치 또는 업그레이드 했습니까?
— WinEunuuchs2Unix

죄송합니다. 18.04 서버를 새로 설치 한 텍스트로이 내용을 말씀 드렸습니다.
— final20

가장 간단한 해결책은 설치하는 동안 고정 서브넷 IPv4 주소를 지정하는 것입니다 (서브넷, 게이트웨이 등). 구성 파일을 망칠 필요없이 일부 마법사 필드를 작성하기 만하면됩니다.
— Uwe Keim

라우터에서도이 작업을 수행 할 수 있습니다. 라우터 구성에서 단계는 설명이 필요 없습니다.
— EODCraft 직원

답변:


13

이것은 Ubuntu-Server 18.04 에서 고정 IP 명령으로 설정되었습니다.

$ sudo nano /etc/netplan/50-cloud-init.yaml

그런 다음 구성을 바꾸십시오 (예 : 다음 줄).

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens160:
     dhcp4: no
     addresses: [192.168.1.137/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,8.8.4.4]

변경 승인:

$ sudo netplan apply

몇 가지 문제가 발생하면 다음을 실행하십시오.

$ sudo netplan --debug apply

[ 참고 ] :

  • /24 와 동등하다 255.255.255.0
  • ens160 당신의 이더넷 이름입니다, 당신은 그것을 사용하여 얻을 수 있습니다 $ ifconfig
  • Ubuntu 16.04 및 14.04 네트워크 인터페이스 구성 에는 다른 방법이 있습니다.
  • 파일은 YAML 형식입니다 . 공백없이 탭을 사용하십시오.

고정 IP 주소를 할당 한 후 핑할 수 없음
— user2763554

OK ....하고 난 후에 핑을 할 수 있습니다service networking restart
— user2763554

1
그 파일은 CloudInit에 의해 생성되기 때문에 그렇게하지 않을 것입니다
— Ludovic Kuty

13

/etc/netplan/50-cloud-init.yamlCloudInit을 사용하고 해당 파일을 생성하므로 직접 편집하라는 모든 답변 이 잘못되었습니다. Ubuntu 18.04.2에서는 파일 안에 명확하게 기록되어 있습니다.

$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        eno1:
            dhcp4: true
    version: 2

따라서 /etc/cloud/cloud.cfg.d/CloudInit을 계속 사용 하려면 해당 파일을 편집하지 말고 아래 파일을 편집해야합니다 .

다른 방법은 먼저 빈 파일 /etc/cloud/cloud-init.disabled( https://cloudinit.readthedocs.io/en/latest/topics/boot.html 참조 ) 을 만들어 CloudInit을 완전히 비활성화 한 다음 다른 답변은 괜찮습니다. 우분투 18.04.2 dpkg-reconfigure cloud-init에서는 파일을 고려하기 위해 사용해야 했습니다 /etc/cloud/cloud-init.disabled. 나는 이것이 조금 이상하다고 생각합니다.

파일 이름을 바꾸는 것이 좋습니다 ( 50-cloud-init.yamlGoogle CloudInit을 계속 사용한다고 생각하기 때문에 올바른 이름이 아님).

그런 다음 /etc/netplan/01-netcfg.yaml아래 구성이 포함 된 파일 이름으로 끝날 수 있습니다. 구성이 서버에 있기 때문에 networkd대신 렌더러를 사용하십시오 NetworkManager.

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
      addresses: [192.168.1.246/24]
      gateway4: 192.168.1.1
      nameservers:
         addresses: [192.168.1.1]

2
잘 작동합니다. 이것이 가장 좋은 대답이어야합니다. 명시된대로 50-cloud-init.yaml을 수정해서는 안됩니다.
— 유물

2
여전히 CloudInit을 사용하는 경우 sudo cloud-init clean -rveperr의 답변에 따라 변경 사항을 적용해야합니다 (적어도 Ubuntu Server 18.04.3의 경우).
— 스튜어트 Rossiter

1
... 그리고 그 renderer줄은 더 이상 유효하지 않은 것 같습니다 (그리고 편집하는 파일의 기본 버전에는 없습니다).
— 스튜어트 Rossiter

6

Ubuntu 18.04는 이제 Netplan을 사용하여 네트워크 인터페이스를 구성하므로 파일에서 구성을 수행해야하므로 /etc/netplan/50-cloud-init.yaml설명서에서 더 이상 이전 파일을 엉망으로 만들지 말 것을 권장 합니다 /etc/network/interfaces. 이 구성을 Ubuntu Server 가상 머신에서 사용했으며 지금까지는 정보가 올바른지 확인하십시오. 이 optional: true설정은 인터페이스가 연결되어 있는지 여부를 확인하지 않음으로써 부팅 시간을 단축시키는 것으로 추정되며, 기본값이며, DHCP와 같이 사용되지 않는 값을 선언하지 않아도 사용할 수없는 것으로 간주됩니다. 우분투 서버의 기본 렌더러는 networkd선언 할 필요가 없습니다. 게시물에서 정보를 가져 오면 다음과 같아야합니다.

network:
    ethernets:
        eht0:
            addresses:
            - 192.168.1.9/24
            gateway4: 192.168.1.1
            nameservers:
                addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
            optional: true
    version: 2

파일을 저장하면 플래그를 실행 sudo netplan --debug apply하면 debug더 많은 정보가 출력되고 오류를 감지하는 데 도움이됩니다. 가상으로 VM 구성을 검토하는 경우 이더넷 케이블을 확인하십시오. WLAN을 사용하는 경우 설정이 약간 까다 롭지 만 아직이 서버 버전으로 WiFi에 연결된 컴퓨터를 설정하지 않았습니다.

Netplan에 대한 자세한 내용을 보려면 웹 사이트가 있으며 기본 구성 예제가 있습니다.

https://netplan.io/


5

구성 파일은 YAML 형식입니다 . 파일을 구성 할 때 TAB을 사용하지 마십시오 . SPACE 에서만 작동합니다 .

이것은 내 문제였다.


4

cloud-init를 사용하는 다른 방법을 찾았습니다.

  1. 파일을 편집하십시오 /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg-내용은 / etc / netplan에있는 것과 같은 것 같습니다.
  2. cloud-init다음 명령을 사용하여 정리, 재부팅 및 다시 초기화 하십시오.

    sudo cloud-init clean -r
    
  3. 그게 다야! 시스템이 재부팅되고, 변경 cloud-init을 다시 초기화하고 변경 한 /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg후 적용하여 적용하면됩니다 /etc/netplan/50-cloud-init.yaml. 로 확인하십시오 ifconfig.


0

이것이 작동하는 설정입니다.

$sudo nano /etc/netplan/50-cloud-init.yaml

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
  version: 2  

$sudo netplan apply

서버를 다시 시작

eth0을 어댑터로 변경하고 ifconfig를 사용하여 어댑터를 찾으십시오.


0

사용 가능한 이더넷 인터페이스를 찾으려면 ip link show

그런 다음 다음을 사용하여 50-cloud-init.yaml 파일을 편집하십시오. $sudo nano /etc/netplan/50-cloud-init.yaml

eth0 : 및 eth1과 같은 사용 가능한 인터페이스에 대한 구성을 추가하십시오.

network:
   ethernets:
     eth0:          
     addresses:
     - 192.168.1.9/24
     dhcp: false
     gateway4: 192.168.1.1
     nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
        - 8.8.4.4
        search: []
     eth0:
     addresses:
     - 192.168.1.9/24
     dhcp: false
  version: 2  

그런 다음 명령 $sudo netplan apply을 사용 하여 변경 사항을 적용하십시오.


0

Ubuntu Server 18.04에서 고정 IP를 설정하는 방법

그런 다음 다음을 사용하여 50-cloud-init.yaml 파일을 편집하십시오.$sudo vim /etc/netplan/50-cloud-init.yaml


network:
  ethernets:
    eno1:
        addresses:
        - 10.0.1.10/24
        dhcp4: false
        gateway4: 10.0.1.1
        nameservers:
            addresses:
            - 10.0.1.2
            search: []
version: 2

변경 승인:

$ sudo netplan apply


그 파일은 CloudInit에 의해 생성되므로 그렇게하지 않을 것입니다.
— Ludovic Kuty

왜 18.04에서 고정 IP를 설정하기위한 모든 가이드가 지속되지 않는 동적으로 생성 된 파일이라는 yaml 파일을 편집하라고 알려주 는가? 우분투 개발자의 또 다른 잔인한 농담은 기본적으로 문제를 해결하는 것이 좋다고 생각합니다.
— Bigtexun
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.