Paksa alamat IPv4

15

Saya memutakhirkan Raspberry Pi saya ke Jessie, yang menggunakan systemd. Salah satu efek sampingnya adalah terhubung hanya menggunakan IPv6 dan tidak memiliki alamat IPv4. Bagaimana saya bisa memaksanya untuk mendapatkan alamat IPv4 dari server DHCP?

Salah satu solusi ad-hoc adalah perintah

sudo dhclient -4 -v eth0

tetapi ini hanya berlangsung untuk sesi saat ini.

John Smith
sumber
Tidak ada jawaban di bawah ini yang berfungsi untuk saya, alih-alih saya perlu sudo apt-get install isc-dhcp-clientsetelah menggunakannya sudo dhclient -4 -v eth0untuk online.
mrswadge
Beberapa konteks lebih jauh dari komentar saya sebelumnya. Dalam situasi saya, gejala saat menjalankan sudo ifup -v eth0panggilan ke dhclient gagal dan malah menampilkan informasi penggunaan.
mrswadge

Jawaban:

9

Raspbian Jessie tidak lagi memiliki file yang disebut /etc/sysctl.d- sekarang folder dengan nama yang sama.

Menurut file read-me dalam folder yang sama README.sysctl,, pada dasarnya mengatakan bahwa .conffile apa pun akan dibaca pada saat boot dan diproses. Setiap nama file legal akan berfungsi, tetapi mereka menyarankan local.conf, jadi itulah yang saya gunakan.

Saya membuat /etc/sysctl.d/local.confdan menambahkan satu baris dari jawaban lain:

net.ipv6.conf.all.disable_ipv6=1

Ini tampaknya berfungsi dengan baik.

Jim
sumber
Apa pun yang ada .ddi dalamnya /etctidak pernah apa-apa selain direktori. Saya tidak tahu apakah jawaban Joe Platano melibatkan kesalahan ketik atau apakah itu benar-benar akan berhasil, entah bagaimana saya meragukannya (walaupun tampaknya ada jawaban lain yang mengonfirmasinya akan salah).
goldilocks
2

Anda dapat memasukkan baris ke sysctl untuk menonaktifkan ipv6.

echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d

ini akan berfungsi setelah reboot berikutnya.

Joe Platano
sumber
Ini /etc/sysctl.conf sebagai file target. Ketahuilah bahwa> akan mengganti seluruh file!
David
2

Di Raspbian Jessie / Jessie Lite, cukup edit /etc/sysctl.conffile dan tambahkan sakelar untuk menonaktifkan ipv6, sebagai berikut:

sudo nano /etc/sysctl.conf

Masukkan teks:

net.ipv6.conf.all.disable_ipv6=1

Simpan file dengan Ctrl-O, Ctrl-Xdan reboot RPi.

guitarpicva
sumber
2

sudo nano /etc/sysctl.conf

tambahkan baris berikut untuk mematikan ipv6:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

jalankan sudo sysctl -puntuk menjalankan efek atau hanya reboot.

AlexOnLinux
sumber
1

cara termudah yang saya temukan juga mendapatkan alamat IPv4 untuk antarmuka berubah / etc / network / interfaces: mengatur manual ke dhcp ... yang juga memberi Anda alamat IPv4 pada eth0 ... mungkin hanya peretasan tapi tidak ada tempat ' t menemukan sesuatu yang lebih baik ...

    auto eth0
    allow-hotplug eth0
    # iface eth0 inet manual
    iface eth0 inet dhcp
Hantu
sumber
Raspbian Jessie tidak digunakan dhcp(kecuali jika pengguna benar-benar memainkannya) dan ini akan mencegah dukungan WiFi GUI dari bekerja.
Milliways
1

Menggabungkan, mengoreksi, dan menambahkan jawaban sebelumnya:

Untuk memperbaiki antarmuka (baik eth atau wlan) yang hanya menunjukkan alamat inet6 (IPV6) dan tidak ada alamat inet (IPV4), Anda dapat menambahkan file konfigurasi untuk menonaktifkan penugasan inet6 (IPV6), sehingga semua antarmuka diberi inet6 (IPV4) alamat. Jika file konfigurasi itu kemudian dihapus lagi, antarmuka kemudian akan diberi KEDUA inet (IPV4) dan alamat inet6 (IPV6), yaitu kembali ke keadaan default yang biasa.

Untuk menambahkan file:

sudo nano /etc/sysctl.d/local.conf

dan tambahkan satu baris:

net.ipv6.conf.all.disable_ipv6=1

Simpan dengan Ctrl-O, Y, [Kembali]. Mulai ulang dan masuk lagi.

sudo reboot

Periksa alamat menggunakan

ifconfig

Hapus file konfigurasi dan reboot:

cd /etc/sysctl.d
sudo rm local.conf
sudo reboot

Periksa lagi dengan ifconfig:

ifconfig

Lihat alamat inet (IPV4) dan inet6 (IPV6) untuk semua antarmuka:

eth0      Link encap:Ethernet  HWaddr 00:e0:4c:53:44:58
          inet addr:192.168.1.228  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::26a5:b629:f948:92c3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:62:b4:7a
          inet addr:192.168.1.229  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::254c:3f61:fdc:bc49/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Dan saya dapat sekali lagi SSH ke Pi Zero saya menggunakan eth0 atau wlan0, keduanya menggunakan alamat IPV4 atau IPV6.

ExperiMentor
sumber
1

Saya meningkatkan Raspberry Pi saya menjadi Stretch dan saya tidak berhasil dengan variasi net.ipv6.conf.all.disable_ipv6=1jawaban apa pun.

Berjalan secara manual sudo dhclient -4 -v eth0untuk mendapatkan konektivitas jaringan / internet saya kembali berfungsi, namun seperti yang dinyatakan oleh poster asli itu tidak selamat dari reboot.

Saya perhatikan bahwa sudo ifup -v eth0menelepon dhclient, tetapi gagal dan bukannya berfungsi dengan benar, itu menunjukkan informasi penggunaan untuk dhclientperintah.

Solusinya tampaknya pindah dari dhclientdan bukannya menginstal isc-dhcp-client. Setelah reboot, konektivitas saya tersedia secara otomatis setelah menginstal paket ini.

sudo apt-get install isc-dhcp-client
sudo reboot
mrswadge
sumber
0

Saya memiliki masalah yang sama dan mencoba solusi di bawah ini, ini berfungsi dengan baik setelah me-reboot Pi saya.

sudo nano  /etc/sysctl.d

Tipe

net.ipv6.conf.all.disable_ipv6=1

simpan dengan ^Okesysctl.d

sudo reboot

Sekarang saya melihat alamat ip4 saya di layar boot.

sns5400
sumber