Ubuntu 18.04:/ etc / network / interfacesに戻る


44

Ubuntuの18.04ごろを開始し、Ubuntuの開発者は、古典的な使用を中止/etc/init.d/networkingし、/etc/network/interfacesネットワークを構成する方法を、いくつかに切り替えると呼ばれますnetplan。これは多くの人々を非常に怒らせ、広く悪い動きとみなされています。ネットワークを構成するためnetplanの正しい/etc/network/interfaces方法を削除して使用することは可能ですか?


2
ネットプランで設定するだけではどうですか?ほとんどの場合、それは非常に簡単です。
chili555

3
@ chili555変更を受け入れて、何か新しいことを学ばなければならないかもしれません。あるべき姿に戻るのが簡単かどうかを知りたいだけです。と同じようにsystemd、破壊的な変化は時には有益であり、受け入れられることを理解しています。ただし、これは変更が必要または有益だった時代の1つではありません。
jdgregson

1
それは簡単ではなく、エラーが発生した場合に簡単に元に戻すことはできません。危険な生活をしたいなら、私は喜んで答えを提案します。一方、数分でネットプランを構成できます。どっちがいい?PS-を除いて、ネットプラン/etc/network/interfacesがより大きなシステム化された画像にどのように適合するかを完全に理解するふりをしません。私ができることは、変更を導入した人が、なぜそれがより適切なのかを知っていると信頼することだけです。
chili555

1
または、単にネットプランを適切に構成して実行してください。
chili555

1
@ chili555 Netplanは仮想ネットワークインターフェイスをサポートしていません。こちらをご覧ください:askubuntu.com/questions/990825/virtual-interface-in-netplan
user3751385

回答:


43

次の手順は、Ubuntu 18.04(Bionic Beaver)で機能します

I. ifupdownパッケージを再インストールします。

# apt-get update
# apt-get install ifupdown

II。次のような構成スタンザを使用して/ etc / network / interfacesファイルを構成します。

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

allow-hotplug enp0s3
auto enp0s3
iface enp0s3 inet static
  address 192.168.1.133
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  # Only relevant if you make use of RESOLVCONF(8)
  # or similar...
  dns-nameservers 1.1.1.1 1.0.0.1

III。設定を有効にします(再起動は不要です):

# ifdown --force enp0s3 lo && ifup -a
# systemctl unmask networking
# systemctl enable networking
# systemctl restart networking

IV。不要なサービスを無効にして削除します。

# systemctl stop systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl disable systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl mask systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# apt-get --assume-yes purge nplan netplan.io

これで完了です。

注:あなたはしなければならない、もちろん、あなたのシステム(ネットワーク、インタフェース名...)に応じた値を適応させます。

V. DNSリゾルバー

systemdに-RESOLVED.SERVICE(8)によって提供されるDNSスタブリゾルバのUbuntuのバイオニックビーバー(18.04)メイクの使用は、あなたがするのでべきでも/etc/systemd/resolved.confファイルに連絡先にDNSを追加します。例えば:

....
DNS=1.1.1.1 1.0.0.1
....

その後、systemdで解決されたサービスを再起動します。

# systemctl restart systemd-resolved

上記のように、ifupdown INTERFACES(5)ファイルのDNSエントリは、RESOLVCONF(8)などを使用する場合にのみ関係します。


9
まあ、f ***それら。ただ、apt-get installあなたは何のネットワーク構成を得なかったら。なんて素晴らしいアイデアでしょう、Canonical。
ヴェルカン

1
@Velkanネットプランでネットワークを事前に設定してから、後でifupdownに切り替えることができます;)しかし、私はあなたに同意しました。どういうわけか正義は悪い決断を下します。たとえば、ネットワーク構成のためにifupdownに依存するソフトウェアを壊します(netplanのプロバイダーはありません)。これは、新しいネットワーク構成プロバイダーを追加したくないコントロールパネルソフトウェア(安定版)の場合です。
Nuxwin18年

3
@StephenBoston私はあなたに完全に同意します。ただし、Canonicalが新しいテクノロジーを導入して前進を試みたとしても、これをより侵襲性の低い方法で行うことができます。つまり、選択はエンドユーザーに任せる必要があります。ワークステーションの場合、ifupdownからnetplanへの変更は確かに大したことではありませんが、Ubuntuサーバーに対処する必要がある場合、ほとんどの安定したソフトウェアは必ずしもアダプターを提供しないので、それは別の話です... 私はDebianとUbuntuの両方を日常的に取り扱わなければなりません。Ubuntuの問題は、下位互換性をあまり気にしないことです。
Nuxwin

1
軽微な修正:# systemctl unmak networking-># systemctl unmask networking
サン

1
あなたが使用している場合も、dns-domaindns-searchinterfacesファイルに、あなたが設定する必要がありますDomainsresolved.confのパラメータを、私はと思いますか?とにかく、ここですべてをまとめるのは素晴らしい仕事でした。たぶん多くの時間を節約できました:)
OttoEisen

10

Netplanチームは、よくある質問に関する公式の回答をこちらに投稿しています

ifupdownに戻る方法

...

実行中のシステムでは、ifupdownをインストールし、ユーザーが以前に行ったように/ etc / network / interfacesを手動で構成することにより、ネットプランを削除できます。

インストール時に、ユーザーはnetcfg / do_not_use_netplan = trueをpreseedすることでifupdownの使用を選択できます。これは、インストールメディアの起動時にコマンドラインにpreseed行を追加することによって実行されます(つまり、インストールメディアのブートメニューでF6を押し、「e」と入力し、コマンドラインに追加します)。

詳細な手順については、Nuxwinの回答を参照してください。


9

Netplanとyamlは、せいぜいサーバーのみの環境では脆弱です(インデントの間違いはコストがかかります)。インターフェイスは、サーバー上のネットワーク設定の管理を非常に簡単にするほど十分に寛容でした。
Netplanは新しいレイヤーを導入します。しかし、本当の問題は、U18がifupdownを破壊し、NetPlanで仕事を終わらせないことです。DNSを管理するifupdownを再インストールして/ etc / network / interfacesに戻ると、interfacesファイルで機能しなくなります。dns-nameserversエントリはすべて無視されます。代わりに、dnsは/etc/resolv.confに設定されます。ただし、マシンを起動するたびに書き換えられるため、このファイルを編集することはできません。WTF?NetplanはGUIで管理されるように設計されているため、サーバーのみのキャンプにいる私たちは、つま先を動かさなければならない壊れやすいシステムを残しています。良くないUbuntu!
ネットプランの終了中に、ブートアップ時に/ etc / network / interfacesの設定をネットプランにリダイレクトする方法を教えてください。


1
これはどのように質問に答えますか?
Pierre.Vriens

@Dan Desjardins DNSリゾルバーの問題に関して受け入れられている回答を参照してください。基本的に、ifupdown INTERFACES(5)ファイルに入れたDNSエントリは、resolvconf(8)などを使用する場合にのみ関連します。SYSTEMD-RESOLVED.SERVICE(8で提供されるDNSスタブリゾルバーの場合、DNSを/etc/systemd/resolved.confファイルに追加する必要があります。これを行うと、永続化されます。SYSTEMD-RESOLVEDを無効にすることもできます。 SERVICE(8)サービスとインストール/セットアップresolvconf(8)。十分に明確であることを願って
Nuxwin

2

ネットプランで設定するだけではどうですか?

18.04-Desktopで構成されているので、NetworkManagerへのすべてのインターフェイスに制御を渡す1行です。

これはおそらく95%のユーザーに適していますが、NetworkManagerはセッションにログインして初めて実行されることに注意してください。

マシンをサーバー/デスクトップとして機能させたい場合、たとえば、ローカルマシンへのファイルの提供を開始したり、VNPサーバーとして機能したりするなど...オンにすると、標準の18.04-Desktopでの設定方法に問題が生じます。

もちろん、別の方法はサーバーネットプラン構成を使用することです。これは、読んだ限り(自分で確認していません)、代わりにsystemd-networkdに制御を渡します。この場合、古いSystem V initの代わりとしてsystemdがどのように動作するかを学習した方がよいでしょう。

このパスを使用する場合、デスクトップバージョンではNetworkManagerに制御が与えられるため、ネットプランyamlを変更する必要があります。


3
少なくとも1つの理由があります。Netplanはopenvswitchをサポートしていません。
カミリオン

5
netplanはIPエイリアス(eth0:0スタイル)をサポートしていません。このようなことがUbuntuサーバーにどのように組み込まれるのか信じられません!
ハミドファディシェイ

私のnetplanディレクトリが空だから!
dsgdfg

NetworkManagerサービスはかなり早く起動し、セッションやログインユーザーを必要としません。
thaller

1

重要なのは、それcloud.initが実際の制御プログラムであることを知ることです。
つまり、構成netplanファイルの行「optional:true」は必須です。
それを知ることで簡単になりました。

削除01-network-manager-all.yamlしてコピーしました/root/save/。次に、既知の適切な構成を代わりに配置します50-cloud-init.yaml。その内容は次のとおりです。

network:
  version: 2
  renderer: networkd
  ethernets:
    eports:
      match: 
        name: enp*
        optional: true
  bonds:
    bond0:
      interfaces: [eports]
      addresses: [192.168.2.5/24]
      gateway4: 192.168.2.1
      nameservers:
        addresses: [127.0.0.1, 8.8.4.4]          
      parameters:
        mode: 0          
        mii-monitor-interval: 100

次に再起動すると、正常に動作するはずです。

既知の良好な構成は、Ubuntu 18.04でnetplanを使用して構成された結合802.3adネットワークから取得されました


1
ここでの質問はifupdownに戻る方法です;)将来的には、最初の主題に固執することは必ずしも簡単ではありませんが、それらを汚染することなく質問に答えてみるべきです;)
Nuxwin

0

この答えによると、解決策は、すべての操作可能な.yamlファイルを削除することです。Ubuntu17.10はnetplanを無効にします

バックアップせずに何も削除しません。ファイルを脇に移動するだけで簡単にできます。まず、ファイルを見つけます:

sudo updatedb
locate netplan | grep yaml

18.04システムでは、唯一の操作ファイルは/etc/netplan/01-network-manager-all.yamlであるようです。動かしましょう:

mkdir ~/netplan
sudo mv /etc/netplan/01-network-manager-all.yaml  /home/user/netplan

... userはユーザー名です。

次に、ファイルが本当になくなったことを確認します。

ls /etc/netplan

ここで、必要に応じて/ etc / network / interfacesに追加します。

リブート。

改善はありますか?

脚注:これを行う正確なプロセスを見つけるのは困難です。進むにつれて、少し改良する必要があるかもしれません。


私はそれを試して、それがどうなるかを見なければなりません。他の唯一の質問は、再起動せずに変更を適用する方法です。過去には、あなたは使用することができますifup/ ifdown/etc/init.d/networking restartservice networking restart、などにsystemd方法、systemctl restart networkingsystemctl restart Network-Manager.serviceなど、これらのどれもがUbuntuの18.04をインストールした後、私のために可能ではなかったです。
-jdgregson

次の結果はどうなりますか?sudo ip link set eth0 downsudo ifup -v eth0もちろん、あなたのインターフェースを神話上のeth0に置き換えます。
chili555

ifupdownはデフォルトではインストールされないため、呼び出すifupとインストール方法が表示されます。ただし、sudo ip link set eth0 downその後に続いsudo ip link set eth0 upてインターフェイスをオフにしてから再びオンにします。
jdgregson

驚くばかり!あなたは解決され、すべてが設定されましたか?
chili555

すべての* .yamlファイルがnetplanに関連しているわけではないため、netplan関連のディレクトリにあるファイルのみを削除してください。
-JanC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.