Deskripsi masalah
Saat Anda mencoba menghubungkan ke instans Elastic Compute Service (ECS) pada port tertentu, koneksi gagal. Klien melaporkan error Connection timed out atau Connection refused.
Penyebab
Diblokir oleh kebijakan network access control: Permintaan diam-diam di-drop oleh security group atau kebijakan firewall internal instans sebelum mencapai aplikasi. Klien tidak menerima respons apa pun, sehingga menyebabkan error
Connection timed out.Port tujuan tidak dalam status listening: Permintaan mencapai sistem operasi instans, tetapi tidak ada aplikasi yang sedang listening pada port tujuan. Sistem operasi menolak permintaan tersebut, sehingga menyebabkan error
Connection refused.
Metode 1: Gunakan alat pemecahan masalah mandiri
Tool troubleshooting self-service Alibaba Cloud membantu Anda memeriksa konfigurasi security group, firewall internal instans, dan status listening port aplikasi umum secara cepat. Tool ini memberikan laporan diagnostik yang jelas.
Klik untuk menuju halaman troubleshooting self-service, lalu alihkan ke wilayah target.
Jika tool troubleshooting self-service tidak dapat mengidentifikasi masalahnya, lanjutkan dengan langkah-langkah berikut.
Metode 2: Troubleshooting manual
Skenario 1: Connection timed out
Periksa aturan security group. Pastikan terdapat aturan inbound yang mengizinkan akses ke port tujuan dan tidak ditimpa oleh aturan deny berprioritas lebih tinggi.
Buka halaman ECS console - Instances, lalu klik ID instans tujuan untuk membuka halaman detailnya.
Pada halaman detail instans, alihkan ke tab Security Groups, lalu klik ID security group target untuk membuka halaman detailnya.
Pada tab Inbound Rules, tinjau daftar aturan.
Periksa aturan deny: Pastikan tidak ada aturan deny berprioritas tinggi yang memblokir akses.
Periksa aturan allow: Pastikan terdapat aturan allow untuk IP sumber dan port tujuan.
Periksa firewall internal instans.
Alibaba Cloud Linux
Login ke instans ECS.
Buka ECS console - Instances. Pada bilah navigasi atas, pilih wilayah dan kelompok sumber daya yang dituju.
Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk pada halaman untuk login ke terminal.
Jalankan perintah berikut untuk melihat port yang terbuka di firewall.
firewall-cmd --list-allJika port tujuan tidak ada dalam daftar, tambahkan aturan firewall. Untuk membuka port TCP tertentu secara permanen dan mengizinkan akses eksternal, ganti
<PORT>dengan nomor port sebenarnya.firewall-cmd --zone=public --add-port=<PORT>/tcp --permanentJalankan perintah berikut untuk restart firewall agar aturan baru berlaku.
firewall-cmd --reload
Ubuntu
Login ke instans ECS.
Buka ECS console - Instances. Pada bilah navigasi atas, pilih wilayah dan kelompok sumber daya target.
Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk pada halaman untuk login ke terminal.
Jalankan perintah berikut untuk memeriksa status UFW dan aturan yang dikonfigurasi.
sudo ufw statusJika port tujuan tidak ada dalam daftar, jalankan perintah berikut untuk menambahkan aturan firewall. Ganti
<PORT>dengan nomor port tujuan.sudo ufw allow <PORT>/tcpJalankan perintah berikut untuk restart firewall agar aturan baru berlaku.
sudo ufw reload
Windows
Login ke instans ECS.
Buka ECS console - Instances. Pada bilah navigasi atas, pilih wilayah dan kelompok sumber daya yang dituju.
Buka halaman detail instans target, klik Connect, lalu pilih Workbench. Atur metode koneksi ke Terminal, masukkan username dan password, lalu login ke halaman terminal grafis.
Buka Windows Defender Firewall with Advanced Security.
Masukkan Server Manager di kotak pencarian taskbar, lalu buka.
Di pojok kanan atas Server Manager, pilih .
Periksa dan aktifkan aturan inbound yang diperlukan.
Periksa status firewall. Jika firewall dinonaktifkan, tidak perlu tindakan lebih lanjut.
Jika firewall diaktifkan, klik Inbound Rules di panel kiri.
Temukan Windows Remote Management - Compatibility Mode (HTTP-In) dalam daftar aturan.
Jika aturan ini belum diaktifkan, klik kanan lalu pilih Enable Rule.
Verifikasi bahwa port dapat diakses. Jalankan perintah dari klien lokal, bukan dari instans ECS itu sendiri.
telnet <Public IP address> <Port number>Jika output mencakup
Connected to ..., maka jaringan dan port tersebut dapat diakses.
Skenario 2: Connection refused
Linux
Login ke instans ECS.
Buka ECS console - Instances. Pada bilah navigasi atas, pilih wilayah dan kelompok sumber daya target.
Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk pada halaman untuk login ke terminal.
Jalankan perintah berikut untuk memeriksa status listening port. Ganti
<PORT>dengan nomor port sebenarnya.netstat -an | grep <PORT>Analisis hasilnya.
Listening: Jika nilai pada kolom State adalah
LISTEN, port tersebut sedang listening secara normal.PentingJika alamat listening-nya adalah 127.0.0.1, layanan hanya menerima koneksi lokal. Periksa file konfigurasi layanan, misalnya `nginx.conf` untuk Nginx atau `sshd_config` untuk layanan Secure Shell Protocol (SSH), lalu ubah alamat listening menjadi `0.0.0.0` atau Alamat IP publik instans agar mengizinkan koneksi eksternal.
Tidak listening: Jika tidak ada output yang dikembalikan, atau output tidak mengandung status
LISTEN, layanan belum dijalankan. Anda harus menjalankan layanan tersebut.
Windows
Login ke instans ECS.
Buka ECS console - Instances. Pada bilah navigasi atas, pilih wilayah dan kelompok sumber daya target.
Buka halaman detail instans target, klik Connect, lalu pilih Workbench. Atur metode koneksi ke Terminal, masukkan username dan password, lalu login ke halaman terminal grafis.
Gunakan PowerShell untuk memeriksa port.
Pada kotak pencarian taskbar, ketik PowerShell lalu buka.
Jalankan perintah berikut untuk memeriksa status listening port. Ganti
<PORT>dengan nomor port sebenarnya.netstat -ano | findstr "<PORT>"Analisis hasilnya.
Listening: Jika output mengandung status
LISTEN, port tersebut sedang listening secara normal. Jika alamat listening-nya adalah127.0.0.1, layanan hanya menerima koneksi lokal. Anda harus mengubah file konfigurasi layanan untuk mengganti alamat listening dari127.0.0.1menjadi0.0.0.0atau Alamat IP publik instans agar mengizinkan koneksi eksternal.Tidak listening: Jika tidak ada output yang dikembalikan, atau output tidak mengandung status
LISTEN, layanan belum dijalankan. Anda harus menjalankan layanan tersebut.