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.