All Products
Search
Document Center

:Perbaiki alamat IP yang hilang pada CentOS 7 dan Windows

Last Updated:Jun 22, 2026

Gejala

Setelah Instance ECS berjalan dalam periode panjang tanpa restart, Anda mungkin mengalami masalah konektivitas jaringan, seperti gangguan total atau ketidakmampuan untuk melakukan ping ke Alamat IP publik maupun Alamat IP pribadi instans tersebut.

Penyebab

Saat Instance ECS pertama kali diluncurkan, sistem menggunakan Dynamic Host Configuration Protocol (DHCP) untuk secara otomatis menetapkan alamat IP ke antarmuka jaringan elastisnya dan mendapatkan waktu kedaluwarsa sewa (lease). Dalam kondisi normal, proses dhclient pada sistem Linux dan layanan DHCP Client pada sistem Windows secara berkala memperbarui sewa ini dengan server DHCP guna memastikan alamat IP tetap valid. Namun, pada instans yang dibuat dari beberapa gambar CentOS 7 tertentu, proses dhclient dapat berhenti secara tak terduga. Selain itu, terdapat isu yang diketahui pada layanan DHCP Client di beberapa sistem operasi Windows Server. Akibatnya, instans tidak dapat memperbarui sewa alamat IP-nya secara otomatis. Ketika sewa awal berakhir, Alamat IP pribadi instans dilepaskan, menyebabkan kegagalan jaringan.

Lingkup

Artikel ini berlaku untuk Instance ECS yang memenuhi kriteria berikut dan menggunakan DHCP untuk secara otomatis menetapkan alamat IP ke antarmuka jaringan elastis. Tidak diperlukan tindakan apa pun untuk instans yang dikonfigurasi dengan alamat IP statis.

  • Instans jenis apa pun yang dibuat dari gambar publik CentOS 7 berikut sebelum 31 Mei 2018 dan belum direstart sejak 15 November 2018:

    • centos_7_04_64_20G_alibase_20180419.vhd

    • centos_7_04_64_20G_alibase_20180326.vhd

    • centos_7_04_64_20G_alibase_201701015.vhd

    • centos_7_03_64_20G_alibase_20170818.vhd

    • centos_7_02_64_20G_alibase_20170818.vhd

    • centos_7_03_64_40G_alibase_20170710.vhd

    • centos_7_03_64_40G_alibase_20170625.vhd

    • centos_7_03_64_40G_alibase_20170523.vhd

    • centos_7_03_64_40G_alibase_20170503.vhd

  • Instans yang menjalankan sistem operasi Windows Server berikut yang dibuat sebelum 15 November 2018 dan belum direstart sejak saat itu:

    • Windows Server 2008 R2

    • Windows Server 2012 R2

    • Windows Server 2016

    • Windows Server Version 1709

Solusi

Catatan
  • Sebelum melakukan operasi berisiko tinggi, seperti memodifikasi instans atau datanya, pastikan Anda telah menerapkan langkah-langkah disaster recovery dan fault tolerance.

  • Sebelum memodifikasi konfigurasi atau data instans seperti ECS dan RDS, buat Snapshot atau aktifkan fitur seperti cadangan log RDS.

  • Jika Anda telah mengirimkan informasi sensitif seperti Username dan Password di platform Alibaba Cloud, segera ganti informasi tersebut.

Pilih salah satu dari empat metode berikut sesuai kebutuhan Anda.

  • Metode 1: Perbaikan massal menggunakan Cloud Assistant. Metode ini cocok untuk mengelola banyak instans dan mudah dilakukan dari Konsol ECS.

  • Metode 2: Perbaikan massal menggunakan skrip Python SDK. Metode ini memeriksa status instans dan melakukan perbaikan otomatis di seluruh Wilayah. Metode ini ditujukan bagi pengguna yang terbiasa dengan skrip.

  • Metode 3: Perbaikan menggunakan skrip Shell dan PowerShell. Metode ini mengharuskan Anda login ke setiap Instance ECS untuk menerapkan perbaikan secara manual. Metode ini cocok untuk pengujian atau pembaruan sejumlah kecil instans. Skrip yang digunakan identik dengan yang dipakai pada Metode 1.

  • Metode 4: Periksa kartu antarmuka jaringan secara manual. Metode ini cocok untuk sejumlah kecil instans.

Metode 1: Perbaikan massal menggunakan Cloud Assistant

Pada contoh ini, Cloud Assistant digunakan untuk memeriksa dan memperbaiki Instance ECS secara otomatis. Pastikan instans Anda telah menginstal Cloud Assistant Agent. Cloud Assistant Agent telah dipra-instal secara default pada Instance ECS yang dibuat setelah 1 Desember 2017. Untuk informasi lebih lanjut, lihat Cloud Assistant Agent Install Cloud Assistant Agent.

  1. Buat perintah Cloud Assistant. Untuk petunjuk lengkap, lihat Create a Cloud Assistant command.

  2. Unduh skrip Shell atau PowerShell yang sesuai dan tempel isinya ke bidang Command Content di Konsol ECS.

  3. Pilih Instance ECS target dan jalankan perintah tersebut. Untuk petunjuk lengkap, lihat Run a command.

  4. Konfirmasi bahwa perintah berhasil dijalankan. Untuk petunjuk lengkap, lihat View the command result and status. Contoh berikut menunjukkan output perintah untuk instans CentOS dan Windows.

    [INFO] [2019-04-28 11:13:00] start check and fix
    [INFO] [2019-04-28 11:13:00] log file /tmp/dhcp_fix_20190428-11:13:00.log
    [INFO] [2019-04-28 11:13:00] start checking eth0
    [INFO] [2019-04-28 11:13:00] eth0 state is up
    [INFO] [2019-04-28 11:13:00] ip a show dev eth0
    [INFO] [2019-04-28 11:13:00] eth0 valid_lft 315359644
    [INFO] [2019-04-28 11:13:00] no need fix, dhclient eth0 is running
    [1;32;40m[SUCCESS] [0m [2019-04-28 11:13:00] check and fix success
    [1;32;40m[SUCCESS] [0m [2019-04-28 11:13:00] return code: 0
    [1;33;40m[WARN] [0m [2019-04-28 11:14:17] need fixing eth0
    [INFO] [2019-04-28 11:14:17] start fixing eth0
    [INFO] [2019-04-28 11:14:17] ip a show dev eth0
    [INFO] [2019-04-28 11:14:17] ifup eth0
    RTNETLINK answers: File exists
    [INFO] [2019-04-28 11:14:19] ip a show dev eth0
    [INFO] [2019-04-28 11:14:19] ok, dhclient eth0 is running now
    [1;32;40m[SUCCESS] [0m [2019-04-28 11:14:19] check and fix success
    [1;32;40m[SUCCESS] [0m [2019-04-28 11:14:19] return code: 0
    No ip will expire in recent 500 days. Then no need fix.
    Nic info: \\E2ETesthxxx...xxxterConfiguration.Index=3
    Found one ip will expire in 500 days. We need fixing it!!!
    Fix it now...
    Nic info: \\E2ETesthxxx...xxxpterConfiguration.Index=3
    fix success.
    ]]]]]]]]]]

Metode 2: Perbaikan massal menggunakan skrip Python SDK

Metode ini menggunakan skrip Python berbasis API Cloud Assistant untuk memeriksa dan memperbaiki semua instans yang terdampak dalam suatu Wilayah Alibaba Cloud. Untuk petunjuk instalasi ECS SDK, lihat panduan instalasi di repositori GitHub Alibaba Cloud.

Prasyarat

Jalankan perintah berikut untuk menginstal dependensi SDK Python yang diperlukan di mesin lokal Anda atau Instance ECS.

pip install alibabacloud_ecs20140526

Prosedur

  1. Unduh file autofix_dhclient.py ke Instance ECS Anda.

  2. Jalankan perintah berikut untuk mengeksekusi skrip.

    sudo python autofix_dhclient.py <AccessKeyID> <AccessKeySecret> <region-id>
    Catatan

    Anda harus mengganti <AccessKeyID>, <AccessKeySecret>, dan <region-id> dalam perintah tersebut.

    • AccessKey ID: AccessKey ID Akun Alibaba Cloud atau Pengguna RAM Anda.

    • AccessKey Secret: AccessKey Secret Akun Alibaba Cloud atau Pengguna RAM Anda.

    • ID wilayah: ID wilayah tempat instans Anda berada. Untuk daftar ID wilayah, lihat Regions and zones.

Hasil

Berikut ini adalah contoh output skrip.

Performing the scan and this will take some time, please wait...
Scan done.
Instance Status details:
+----------------------------+----------------+---------------+---------------+
|        InstanceID          | Cloud Assistant|    NeedFix    |   FixResult   |
+----------------------------+----------------+---------------+---------------+
|  i-uf639pxxxye4ldb         |   Installed    |      No       |   NoChange    |
+----------------------------+----------------+---------------+---------------+
|  i-uf69mdxxxk6sahw         |   Installed    |      Yes      |   Success     |
+----------------------------+----------------+---------------+---------------+
Summary:
================================
Total instances scanned: 2
Fixed: 1
Unknown: 0
Failed: 0

Deskripsi field output sebagai berikut:

  • Cloud Assistant: Pemeriksaan ini menentukan apakah Cloud Assistant Agent telah diinstal pada instans Anda.

    • Installed: Cloud Assistant Agent telah diinstal.

    • Not Installed: Cloud Assistant Agent tidak tersedia. Anda dapat Install Cloud Assistant Agent lalu menjalankan skrip lagi.

  • NeedFix: Pemeriksaan ini menentukan apakah proses dhclient atau layanan DHCP Client memerlukan perbaikan.

    • Yes: Perbaikan diperlukan. Skrip akan menyelesaikan tugas tersebut secara otomatis.

    • No: Tidak diperlukan perbaikan.

    • Unknown: Skrip tidak dapat menentukan statusnya. Anda harus melakukan pemeriksaan secara manual.

  • FixResult: Field ini menunjukkan hasil perbaikan.

    • Success: Proses dhclient atau layanan DHCP Client berhasil diperbaiki.

    • Failed: Perbaikan gagal.

    • NoChange: Tidak diperlukan perbaikan.

    • Unknown: Skrip tidak dapat menentukan hasilnya. Anda harus melakukan pemeriksaan secara manual.

Metode 3: Perbaikan menggunakan skrip Shell atau PowerShell

Metode ini mengharuskan Anda login ke setiap instans yang terdampak dan menjalankan skrip secara manual. Metode ini cocok untuk sejumlah kecil instans.

Prosedur untuk instans CentOS

  1. Login ke Instance ECS. Untuk informasi lebih lanjut, lihat Connection methods.

  2. Unduh skrip linux_fix_dhclient.sh ke direktori mana pun.

  3. Beralih ke direktori tempat skrip berada dan jalankan skrip sebagai pengguna root.

    sudo bash linux_fix_dhclient.sh
    Catatan
    • Kode return "0" menunjukkan bahwa skrip berhasil menyelesaikan pemeriksaan dan perbaikan.

    • Kode return lainnya menunjukkan bahwa perbaikan gagal.

Prosedur untuk instans Windows

  1. Login ke Instance ECS. Untuk informasi lebih lanjut, lihat Connection methods.

  2. Unduh skrip win_fix_dhclient.ps1 ke direktori mana pun.

  3. Buka PowerShell dengan hak administratif dan jalankan perintah berikut.

    powershell -executionpolicy bypass -file C:\win_fix_dhclient.ps1
    Catatan

    Catatan:

    • Anda perlu mengganti C:\win_fix_dhclient.ps1 dengan path file yang sebenarnya.

    • Output "No ip will expire in recent 500 days. Then no need fix." menunjukkan bahwa layanan DHCP Client berjalan normal dan tidak memerlukan perbaikan.

    • Output "Found one ip will expire in 500 days. We need fixing it!!! Fix it now... Fix success." menunjukkan bahwa layanan DHCP Client tidak berjalan dengan benar dan skrip telah memperbaiki masalah tersebut.

    • Output lainnya menunjukkan bahwa perbaikan gagal.

Metode 4: Periksa kartu antarmuka jaringan secara manual

Metode ini mengharuskan Anda memeriksa dan memperbaiki proses dhclient (untuk instans CentOS) atau waktu kedaluwarsa sewa alamat IP (untuk instans Windows) pada setiap kartu antarmuka jaringan secara manual.

Prosedur untuk instans CentOS

  1. Login ke Instance ECS. Untuk informasi lebih lanjut, lihat Connection methods.

  2. Jalankan perintah berikut untuk memeriksa semua kartu antarmuka jaringan pada instans.

    ls -al /sys/class/net/
  3. Jalankan perintah berikut untuk memeriksa apakah kartu antarmuka jaringan eth0 menggunakan DHCP guna memperoleh alamat IP-nya.

    cat /etc/sysconfig/network-scripts/ifcfg-eth0

    Sistem akan menampilkan output yang mirip dengan contoh berikut. BOOTPROTO=dhcp menunjukkan bahwa kartu antarmuka jaringan menggunakan DHCP untuk menetapkan alamat IP. Jika alamat IP tidak ditetapkan melalui DHCP, lanjutkan ke Langkah 7.

    [root@xxx ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    BOOTPROTO=dhcp
    ONBOOT=yes
    [root@xxx ~]#  grep 'BOOTPROTO=dhcp' /etc/sysconfig/network-scripts/ifcfg-eth0
    BOOTPROTO=dhcp
  4. Jalankan perintah berikut untuk memeriksa status proses dhclient untuk kartu antarmuka jaringan eth0.

    ps aux | grep dhclient | grep eth0
    • Output kosong menunjukkan bahwa proses dhclient tidak berjalan dengan benar.

    • Jika output mirip dengan berikut, proses berjalan normal. Dalam hal ini, lanjutkan ke langkah 7.

      root 15340 0.0 0.3 113372 12788 ? Ss 14:16 0:00 /sbin/dhclient -1 -q -lf /var/lib/dhclient/dhclient--eth0.lease -pf /var/run/dhclient-eth0.pid -H izuf****************** eth0
  5. Jalankan perintah berikut untuk me-restart proses dhclient.

    ifup eth0
    Catatan

    Contoh ini menggunakan eth0. Ganti eth0 dengan pengenal aktual kartu antarmuka jaringan Anda.

  6. Periksa kembali status proses dhclient untuk memastikan proses tersebut berjalan.

  7. Ulangi langkah 3 hingga 6 untuk memeriksa dan memperbaiki proses dhclient pada semua kartu antarmuka jaringan yang tersisa.

Prosedur untuk instans Windows

  1. Login ke Instance ECS. Untuk informasi lebih lanjut, lihat Connection methods.

  2. Buka Command Prompt (CMD) sebagai administrator.

  3. Jalankan perintah berikut untuk memeriksa apakah DHCP Enabled diatur ke Yes untuk kartu antarmuka jaringan yang dijelaskan sebagai Red Hat VirtIO Ethernet Adaptor dan untuk melihat waktu Lease Expires-nya.

    ipconfig /all
    Catatan

    Red Hat VirtIO Ethernet Adaptor berfungsi sebagai kartu antarmuka jaringan utama atau antarmuka jaringan elastis sekunder untuk Instance ECS. Konfigurasi khusus seperti VPN atau adapter loopback tidak terpengaruh. Kartu antarmuka jaringan yang tidak mengaktifkan layanan DHCP juga tidak terpengaruh.

  4. Jika sewa berakhir dalam waktu satu tahun, jalankan perintah berikut untuk memperbaruinya.

    ipconfig /renew
  5. Jalankan perintah ipconfig /all. Waktu kedaluwarsa sewa dalam sepuluh tahun menunjukkan bahwa perbaikan telah selesai.

Berlaku untuk

  • ECS