Ubuntu Server 18.04 名前解決の一時的な失敗

Ubuntu Server 18.04 名前解決の一時的な失敗

Ubuntu Server 18.04 をインストールし、デスクトップ経由で構成を続行できるように SSH をセットアップしたのですが、解決できない問題がいくつか発生しました。

私は逃げようとしていた

sudo apt-get update

しかし、常にエラーが発生していました:

archive.ubuntu.com の解決中に一時的にエラーが発生しました

取得に失敗しましたhttp://archive.ubuntu........

インターネット接続が正常かどうかを確認するために、

ping 8.8.8.8

そして返事が来たので、すべてOKでした。

DNSが正しく設定されていないのではないかと疑ったので、試してみました

ping www.google.com

エラーが発生しました:

名前解決の一時的な失敗

わかりました。実際、これは何らかの DNS の問題であると判断しましたが、私が試したすべての「答え」は機能しませんでした。

/etc/resolv.confシンボリックリンクのように見えるので、編集を試みましたがうまくいきませんでした。

ここで、ルートから実行した場合にのみ機能する回答を見つけました。

sudo bash

ただし、後で変更を元に戻すには、次のように指示します。

rm /etc/resolv.conf
ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

ただし、そうすると、再び接続が失われます。

  • そのままにしておくべきでしょうか、それとも何か他の方法があるのでしょうか?
  • これは永続的な解決策となり得るでしょうか?
  • そして、問題の原因は、/run/resolvconf/resolv.conf実際には存在しないという事実なのでしょうか?

答え1

Ubuntu サーバー 18-04 では、xorg lightdm lightdm-gtk-greeter および xfce4 GUI がインストールされており、システムを起動するときに、有線ネットワークを起動する唯一の方法は次のとおりです。

    sudo dhclient -v -4

うまく機能しますが、これは起動後やネットワークの切断/再接続のたびに手動で実行する必要があるため、機能しますが手動のソリューションであり、永続的なソリューションではありません。

ワイヤレス ネットワークを自動的に開始するには、次の手順に従います。

    sudo apt-get install nm-tray network-manager

おそらく再起動する必要があります。その後、コントロール パネルの通知領域に表示されるワイヤレス ネットワーク アイコン (通知領域がパネルに追加されていることを確認してください) を使用してワイヤレス ネットワークを選択できるようになります。その後、自動的に再接続されます。

ただし、有線ネットワークを自動的に再接続するために、avahi-daemon と avahi-autoipd をインストールしてみましたが、どうやら役に立たないようです。次のことを試しても、

    sudo systemctl start NetworkManager
    sudo systemctl enable NetworkManager

基本的に、Xubuntu デスクトップなどのディストリビューションをインストールすると、適切なツール/デーモン/構成がインストールされ、ユーザーが設定しなくても、接続するとネットワークが自動的に検出されます。どのツール/デーモン/構成/設定がそれを実行するかを知っておくとよいでしょう。

答え2

18.04リリースではresolv.confをnetplanに変更しました

する

man netplan

dir の場所 /etc/netplan 内に次のようなファイルがあります:50-cloud-init.yaml

次のように編集します。

network:
    ethernets:
        ens160:
            addresses:
            - 10.10.10.100/24
            dhcp4: false
            gateway4: 10.10.10.1
            nameservers:
                addresses:
                - 8.8.4.4
                - 8.8.8.8
                search:
                - domain.local
    version: 2

ファイルを保存するときに

sudo netplan apply

google.com に ping できるかどうかを確認します。

答え3

QEMU イメージのときにこのエラーが発生しましたdebootstrap

決議では以下のことが求められました。

  1. ルートファイルシステムを作成してくださいrw。そうしないとdhclient失敗します。これを行うより良い方法は、 に を追加することです/etc/fstabただのダミー debootstrap:

    /dev/sda / ext4 errors=remount-ro,acl 0 1
    
    • Ubuntu 18.04 では、次のいずれかを実行できます。

      1. 適切なタイミングでネットワークを初期化する systemd ユニットを作成します。

        cat << EOF | sudo tee "/etc/systemd/system/dhclient.service"
        [Unit]
        Description=DHCP Client
        Documentation=man:dhclient(8)
        Wants=network.target
        Before=network.target
        
        [Service]
        Type=forking
        PIDFile=/var/run/dhclient.pid
        ExecStart=/sbin/dhclient -4 -q
        
        [Install]
        WantedBy=multi-user.target
        EOF
        
        sudo ln -sf "/etc/systemd/system/dhclient.service" \
            "/etc/systemd/system/multi-user.target.wants/dhclient.service"
        

      に基づく:https://gist.github.com/corvax19/6230283#gistcomment-1940694

      1. を使用しますnetwork-manager。多くのグラフィカル ライブラリをダウンロードしますが、ハッキング感は少なくなります。

        sudo apt-get install network-manager
        cat << EOF | sudo tee "/etc/netplan/01-network-manager-all.yaml"
        # Let NetworkManager manage all devices on this system
        network:
          version: 2
          renderer: NetworkManager
        EOF
        

        私は、まず自分のホストの Debian から知っている最初のネットワーク設定ファイルを見て、これを見つけました。

        cat /etc/network/interfaces
        

        しかし、素晴らしい Ubuntu 開発者たちはそこにメッセージを残しました:

         # ifupdown has been replaced by netplan(5) on this system.  See
         # /etc/netplan for current configuration.
         # To re-enable ifupdown on this system, you can run:
         #    sudo apt install ifupdown
        

        そこで私は次のことをしました:

        cat /etc/network/interfaces
        

        Ubuntu ホストで、不足している設定を見つけました。

      Ubuntu の完全なdebootstrapセットアップはこちら:オンラインで事前に構築された QEMU Ubuntu イメージ (32 ビット) はありますか?

    • Debian 9 では、設定ファイルに正しいエントリを追加します/etc/network/interfaces。私の場合は次のとおりです:

      auto enp0s3
      iface enp0s3 inet dhcp
      

      は別の一般的な値eth0でありenp0s3、次のようにして調べることができます。

      ip link show
      

      完全なDebiandebootstrapセットアップhttps://unix.stackexchange.com/questions/275429/creating-bootable-debian-image-with-debootstrap/473256#473256

答え4

これには複数の理由が考えられますが、最も一般的な理由は、DNS サーバーが、入力したドメイン名に対応する IP アドレスを検索できないことです。

  1. できることは、次の場所にある設定ファイルを確認することです:

    sudo ナノ /etc/resolv.conf

そこにネームサーバーが指定されている場合は問題ありません。指定されていない場合は、ネームサーバーを 1 つ手動で追加できます。Google が所有する一般的なネームサーバーは次のとおりです。

8.8.8.8
4.4.4.4

したがって、次のように設定ファイルに追加するだけで済みます。

nameserver 8.8.8.8

または

nameserver 8.8.4.4

または

nameserver <IP_Address_for_DNS_Server>

次に、ネットワーク設定を再起動して、いくつかの Web サイトに ping を実行します。

sudo systemctl restart systemd-resolved.service
ping google.com
  1. 問題がまだ存在する場合、このファイルの権限エラーがある可能性があります。次の操作を実行できます: 次のコマンドを使用してファイルの所有権を変更します。

    sudo chown root:root /etc/resolv.conf

ファイルの権限を変更します:

sudo chmod 644 /etc/resolv.conf

次のコマンドを使用して再度確認できます:

ping google.com
  1. もう 1 つの可能性は、ファイアウォールが一部のポートからのアクセスをブロックしていることです。次の操作をお勧めします:

    ファイアウォールが有効になっていない場合は、sudo ufw allow 43/tcp sudo ufw allow 53/tcp を実行します。

    sudo ufw enable

変更を適用できるようにリロードする必要があります。

sudo ufw reload

関連情報