Bagaimana cara menetapkan IP statis di Ubuntu?

56

Saya baru mengenal Linux, memiliki pengalaman bertahun-tahun dengan server / desktop Windows dan saya mengalami masalah pengaturan IP statis. Saya menggunakan metode yang digunakan untuk versi Ubuntu sebelumnya, yang sepertinya tidak berfungsi dengan 16.04

Saya telah menggunakan perintah sudo nano /etc/network/interfacedan menambahkan yang berikut ini

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

Saya telah mem-boot ulang sistem dan Ethernet sudah hampir mati, ping tidak berfungsi sama sekali. Saya sudah mencoba memodifikasi /etc/NetworkManager/NetworkManager.confdan membuat perubahan berikut

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

Dengan ini saya bisa membuat Ethernet bekerja secara sporadis, namun akhirnya gagal.

Saya telah mencoba konfigurasi ini pada dua mesin lain plus mesin virtual juga dan semua memiliki hasil yang sama. Saya dapat mengkonfirmasi pengaturan ini berfungsi dengan baik ketika saya menginstal Windows di salah satu mesin ini. Seperti halnya ketika saya membiarkan DHCP mengkonfigurasi otomatis, semuanya berfungsi dengan baik tanpa masalah.

Saya pikir saya kehilangan sesuatu di sini, menyiapkan IP statis seharusnya tidak sulit sama sekali.

TeeStar
sumber
satu-satunya hal yang saya perhatikan dan mungkin hanya salah ketik di sini, tetapi saya akan mengubah Dns-nameserversagar dns-nameserverstidak akan melakukan apa pun untuk menyelesaikan masalah ini, tetapi dapat menghentikan masalah lainnya agar tidak terjadi
John Orion
1
Server-nameserver Dns adalah sintaks yang dapat diterima sehingga tidak seharusnya menjadi masalah. Ketika itu bekerja dengan DHCP, apakah Anda menjalankan ifconfiguntuk memeriksa nama antarmuka atau apakah Anda menganggap itu enp0s25? Anda juga punya auto enp0s25file konfigurasi di bagian atas? Jika Anda tidak memungkinkan antarmuka tidak muncul saat boot.
Andrew
Harap edit pertanyaan Anda dan poskan konten persis /etc/network/interfacesfile Anda . Saat mengedit pesan Anda, sorot teks file ini, lalu klik {}tautan kode di bagian atas editor pesan sehingga akan memformat teks dengan benar sehingga memudahkan kita untuk membaca konten. Jalankan juga perintah ini ip addressdan lakukan langkah-langkah yang sama untuk {}(format kode) yang dihasilkan.
LD James

Jawaban:

83

Saya memiliki masalah yang sama dan ini solusi saya:

sudo nano /etc/network/interfaces

dan tempel (ubah untuk jaringan Anda) di bawah ini # 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

Anda bisa mendapatkan nama antarmuka yang benar menggunakan perintah Terminal ifconfig -adi ubuntu 16.04 atau ip addresspada 18.04+

Matikan Mesin Virtual Anda lalu !!! Buka pengaturan jaringan dan klik tombol refresh MAC address beberapa kali :)

masukkan deskripsi gambar di sini

dan mulai VM Anda dan Anda harus mendapatkan internet!

PEMBARUAN 20.02.2019

Untuk ubuntu 18.04+ Anda perlu mengedit file ini

/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
lewis4u
sumber
2
Terima kasih, saya hargai. Tampaknya berfungsi sekarang, tanpa masalah. Sangat solid sekarang!
TeeStar
Selain dns-nameserversperbaikan, saya harus menggunakan perbaikan ini: askubuntu.com/questions/574569/... ISP saya adalah monkeybrains.net.
BSalita
56

Mengatur alamat IP statis seperti di atas dalam jawaban yang diterima di sini berfungsi, tetapi kita harus menyiram pengaturan addr IP lama dan kemudian restart networking.service:

sudo ip addr flush enp0s25
sudo systemctl restart networking.service

Kemudian verifikasi itu benar:

ip add
Hibah
sumber
2
Siram itu diperlukan untuk menghindari alamat lama hadir di antarmuka (berdasarkan ip addr). Restart systemctl berfungsi juga, meskipun ifdowndan ifuppada antarmuka akan bekerja lebih selektif.
RichVel
2
thx @Grant. menambahkan flush membuat karya ini
Paweł Madej
3
Di Ubuntu 16.04 dan flush yang lebih baru diperlukan!
Diego Duarte
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

lanni654321
sumber
9
Hai @ lanni654321, mungkin Anda harus mengedit jawaban Anda dan menambahkan beberapa kata, menjelaskan secara singkat apa yang Anda lakukan dan mengapa? Saya pikir itu akan membuat jawaban Anda lebih bermanfaat, bagaimana menurut Anda?
Tshilidzi Mudau
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
rajan
sumber
1
ifcace seharusnya iface pada jalur 5
twoleggedhorse
@twoleggedhorse: Memperbaiki kesalahan ketik untuk jawabannya, tetapi saya harus menambahkan beberapa #di baris pertama karena Anda tidak dapat memiliki pengeditan tanpa setidaknya 6 karakter berubah yang bukan spasi
Andrei Rînea
3

Saya memiliki masalah yang sama dan solusinya "adalah" sederhana ... bagi saya, setidaknya.

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

Dan, buat file kosong dengan nama antarmuka jaringan di:

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

Berhasil...

Manu
sumber
2

Saya memiliki masalah yang sama dan ini adalah solusi saya: Hapus semua baris kosong di akhir file /etc/network/interface.

AkYu
sumber
0

Saya biasa mengatur IP statis pada mesin Ubuntu saya dan kemudian saya perhatikan bahwa saya bisa menetapkan alamat IP menggunakan router saya. Ini mungkin solusi paling sederhana. Cukup masuk ke router Anda, temukan perangkat yang terpasang, dan tetapkan alamat IP di sana.

Ole
sumber
0

Jika server Anda menunjukkan IP lama itu dan juga IP baru yang ditugaskan, cukup restart server Anda. Ini akan secara otomatis menyiram IP lama dan bertahan yang baru.
Dan jika Anda tidak ingin me-restart server Anda, gunakan perintah ini:


sudo ip addr flush <your-interface-here>

Sinar matahari
sumber
0

Jalankan perintah sederhana ini untuk melihat apakah antarmuka jaringan Anda diatur untuk muncul ketika mesin melakukan boot / restart.

grep "auto" /etc/network/interfaces

Jika tidak ada garis yang dicetak ke output standar, maka buka /etc/network/interfacesdengan editor teks (vi, nano, sed) dan semoga Anda akan melihat sesuatu yang mirip dengan gambar di bawah ini.

File default / etc / network / interfaces

Jelas, jika greptidak mengembalikan baris apa pun ke jendela terminal, format / etc / network / interfaces Anda tidak bisa sama sekali. :-) Namun, ikuti format jalur otomatis .

auto lo
(Loopback configuration follows)
.
.
.

auto enp0s3
(primary interface configuration follows)
.
.
.

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

Sekarang, di mesin Anda .

auto yourInteraceNameHere
(your interface configuration follows)
.
.
.

Tidak tahu nama antarmuka mana yang tersedia? Jalankan perintah ini.

ifconfig -a

Perintah berikut akan mengembalikan hanya nama-nama antarmuka jaringan.

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

masukkan deskripsi gambar di sini

Anthony Rutledge
sumber