Ubuntuで静的IPを設定するにはどうすればよいですか?


56

私はLinuxの初心者で、Windowsサーバー/デスクトップで長年の経験があり、静的IPの設定に問題があります。Ubuntuの以前のバージョンで使用されている方法を使用していますが、16.04では機能しないようです

コマンドsudo nano /etc/network/interfaceを使用して、次を追加しました

iface enp0s25 inet static
address 10.10.8.2
netmask 255.255.0.0
gateway 10.10.1.1
dns-nameservers 8.8.8.8 8.8.4.4

システムを再起動しましたが、イーサネットはほとんど機能していません。pingはまったく機能しません。変更/etc/NetworkManager/NetworkManager.confを試みて、次の変更を行いました

#dns=dnsmasq (comment out the dnsmasq)
[ifupdown]
managed=true (changed from false)

これにより、イーサネットを散発的に動作させることができますが、最終的には失敗します。

他の2台のマシンと仮想マシンでもこの構成を試しましたが、すべて同じ結果になります。これらのマシンにWindowsをインストールすると、これらの設定が正常に機能することを確認できます。同様に、DHCPを自動構成させると、すべてが問題なく機能します。

ここで何かが欠けていると思いますが、静的IPの設定はまったく難しくないはずです。


唯一のことは私が気づくと、それだけで誤植ここにいたかもしれませんが、私は変化するであろうDns-nameserversdns-nameservers、おそらくこの問題を解決するために何かをするつもりはないが、起こってから、他の問題を停止することがあります
ジョン・オリオンを

1
Dns-nameserversは構文上許容される構文なので、問題になることはありません。DHCPを使用していたときにifconfig、インターフェイス名を確認するためにを実行しましたか、それともenp0s25で​​あると想定しましたか?また、構成auto enp0s25ファイルの先頭にありますか?起動時にインターフェイスが起動しない可能性がない場合。
アンドリュー

質問を編集して、/etc/network/interfacesファイルの正確な内容を投稿してください。メッセージの編集中に、このファイルのテキストをハイライトし{}、メッセージエディターの上部にあるコードリンクをクリックして、テキストを適切にフォーマットしてコンテンツを読みやすくします。また、このコマンドip addressを実行し、{}その出力に対して(コードフォーマット)同じ手順を実行します。
LDジェームズ

回答:


83

私は同じ問題を抱えており、これが私の解決策でした:

sudo nano /etc/network/interfaces

これを以下に貼り付けます(ネットワークの変更)# The primary network interface

auto enp0s25
iface enp0s25 inet static
address 192.168.0.16
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.4.4 8.8.8.8

ifconfig -aubuntu 16.04またはip address18.04+でターミナルコマンドを使用して正しいインターフェイス名を取得できます。

仮想マシンをシャットダウンしてから!!! ネットワーク設定に移動し、[MACアドレスの更新]ボタンを数回クリックします:)

ここに画像の説明を入力してください

VMを起動すると、インターネットにアクセスできるはずです!

2019年2月20日更新

ubuntu 18.04+の場合、このファイルを編集する必要があります

/etc/netplan/50-cloud-init.yaml

network:
    ethernets:
        enp0s3:
            addresses: [192.168.0.55/24]
            gateway4: 192.168.0.1
            dhcp4: no
            nameservers:
              addresses: [1.1.1.1,8.8.8.8]
            optional: true
    version: 2

2
感謝します。問題なく動作するようになりました。今はとてもしっかりしています!
-TeeStar

dns-nameservers修正に加えて、私はこの修正を使用する必要がありました:askubuntu.com/questions/574569/…私のISPはmonkeybrains.netです。
BSalita

56

ここで受け入れられた回答で上記のように静的IPアドレスを設定しても機能しますが、古いIPアドレス設定をフラッシュしてからnetworking.serviceを再起動する必要があります。

sudo ip addr flush enp0s25
sudo systemctl restart networking.service

次に、それが正しいことを確認します。

ip add

2
古いアドレスがインターフェイスに存在することを回避するために、フラッシュが必要でした(に基づいてip addr)。けれどもsystemctlの再起動は、あまりにも動作しますifdownifup、より選択的に動作しますインターフェイスで。
-RichVel

2
thx @Grant。フラッシュを追加することでこの作業が行われました
パウェウ・マジェ

3
Ubuntu 16.04以降では、新しいフラッシュが必要です!
ディエゴドゥアルテ

5

sudo vim /etc/network/interfaces

    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address 192.168.1.10
    gateway 192.168.1.1
    netmask 255.255.255.0
    dns-nameservers 8.8.8.8

sudo ifdown eth0 && sudo ifup eth0


9
こんにちは@ lanni654321、多分あなたはあなたの答えを編集し、あなたがしていることとその理由を簡単に説明するいくつかの単語を追加する必要がありますか?それはあなたの答えがさらに役立つと思います、あなたはどう思いますか?
Tshilidziムーダウ

5
# interfaces(5) file used by ifup(8) and ifdown(8)
# auto lo
# iface lo inet loopback
auto enp2s0 
iface enp2s0 inet static
    address 172.16.9.124
    netmask 255.255.240.0
    gateway 172.16.0.9
dns-nameservers 8.8.8.8

1
ifcaceは5行目のifaceである必要があります
-twoleggedhorse

@twoleggedhorse:答えのタイプミスを修正しました#が、空白ではない少なくとも6つの変更された文字がないと編集できないため、最初の行にいくつかを追加する必要がありました
AndreiRînea17

3

私は同じ問題を抱えていて、解決策は単純に「...」でした...少なくとも私にとっては。

auto ens160
iface ens160 inet static
address 172.31.0.164/22
netmask 255.255.252.0
gateway 172.31.0.2
network 172.31.0.0
broadcast 172.31.3.255
dns-nameservers 172.31.0.21 172.31.0.18

#Add internal route
up route add -net 172.16.168.0/21 gw 172.31.0.20 dev ens160

そして、次の場所にあるネットワークインターフェイスの名前で空のファイルを作成します。

~$ touch /etc/network/interfaces.d/ens160

できます...


2

私は同じ問題を抱えていて、これが私の解決策でした:ファイルの最後にあるすべての空の行を削除します/etc/network/interface


0

Ubuntuマシンに静的IPを設定していたのですが、ルーターを使用してIPアドレスを割り当てることができることに気付きました。これが最も簡単なソリューションかもしれません。ルーターにログインして、接続されているデバイスを見つけ、そこにIPアドレスを割り当てるだけです。


0

サーバーが古いIPと新しい割り当てられたIPを表示している場合は、サーバーを再起動するだけです。古いIPが自動的にフラッシュされ、新しいIPが保持されます。
サーバーを再起動したくない場合は、次のコマンドを使用します。


sudo ip addr flush <your-interface-here>


0

この簡単なコマンドを実行して、マシンの起動/再起動時にネットワークインターフェイスが起動するように設定されているかどうかを確認します。

grep "auto" /etc/network/interfaces

標準出力に行が印刷されない場合は/etc/network/interfaces、テキストエディター(vi、nano、sed)で開くと、下の画像のようなものが表示されます。

デフォルトの/ etc / network / interfacesファイル

明らかgrepに、端末ウィンドウに行を返さなかった場合、/ etc / network / interfacesの形式はまったく似たものにはなりません。:-)ただし、自動行の形式に従ってください。

auto lo
(Loopback configuration follows)
.
.
.

auto enp0s3
(primary interface configuration follows)
.
.
.

=====================

さて、あなたのマシンで

auto yourInteraceNameHere
(your interface configuration follows)
.
.
.

どのインターフェース名が利用可能か分からないのですか?このコマンドを実行します。

ifconfig -a

次のコマンドは、ネットワークインターフェイスの名前のみを返します。

ifconfig -a | grep encap | awk {'print $1'}

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.