BM: Baca dalam Bahasa Melayu
World L3: Phone Lines · Boss challenge
Why can't the customer reach the shop?
You will learn: to climb the can't-connect ladder on your own and fix four rungs.
Checked with Linux (Debian 13) on 1 Nov 2026
The problem
Boss! Customers phone in: “menu.kedai won’t open!” You log in to kedai. Which rung do you check first?
Pick one answer.
Try it
Rung 1, the name. Ask getent hosts menu.kedai, read /etc/hosts, then fix it. kedai’s own number is 10.0.0.5.
You are you in /home/you. 0 things here. Services: cron running, ssh running, nginx running.
you@kedai:~$Folder ~
Empty folder
+ 3 hidden (ls -a)
Services
cronrunningstarts at bootsshrunningstarts at bootnginxrunningstarts at boot
Phone lines (network) Address 10.0.0.5
Listening ports
:22sshd:80nginx
Hint
Look closely at the last line of /etc/hosts.Watch
Rung 2, the door number. curl localhost is refused at once. Here is ss -tln. Tap where nginx answers now.
Tap the line for the web counter.
0 of 1 found
Try it
Move nginx back to port 80. Change the listen line, test with sudo nginx -t, then restart nginx.
You are you in /home/you. 0 things here. Services: cron running, ssh running, nginx running.
you@kedai:~$Folder ~
Empty folder
+ 3 hidden (ls -a)
Services
cronrunningstarts at bootsshrunningstarts at bootnginxrunningstarts at boot
Phone lines (network) Address 10.0.0.5
Listening ports
:22sshd:8080nginx
Watch
Rung 3. From a laptop outside, curl says Connection timed out after 5004 milliseconds. Plain words: a guard drops the call. Port 80 is not on the guard’s list.
Try it
Build the command that lets web customers in, and keeps the guard on duty.
Tap the pieces in the right order.
Try it
Rung 4. Last night kedai rebooted, and nginx stayed off. Start it now, and make it start at every boot.
You are you in /home/you. 0 things here. Services: cron running, ssh running, nginx stopped.
you@kedai:~$Folder ~
Empty folder
+ 3 hidden (ls -a)
Services
cronrunningstarts at bootsshrunningstarts at bootnginxstoppedoff at boot
Phone lines (network) Address 10.0.0.5
Listening ports
:22sshd
Check
Write the night’s report. Put the fixes in ladder order.
First fix at the top. Put these in order. Use the arrows, or drag.
- Allowed 80/tcp in ufw
- Enabled and started nginx
- Moved nginx back to port 80
- Added menu.kedai to /etc/hosts
You did it!
You can now find and fix why customers can’t reach a server, rung by rung.
Go deeper (optional)
Your ladder card: getent hosts (name), ping (road), curl -v --connect-timeout 5 (door), sudo ss -tlnp and systemctl status (staff), the status code and journalctl (answer).
Real mission
sudo systemctl stop nginxcurl -sv --connect-timeout 5 http://YOUR-VM-IPsudo systemctl start nginx
0 of 4 steps done · Your ticks are saved.
Bahasa Melayu
Boss! Pelanggan menelefon: “menu.kedai tak boleh dibuka!” Anda log masuk ke kedai. Anak tangga mana anda semak dahulu?
Anak tangga 1, nama. Tanya getent hosts menu.kedai, baca /etc/hosts, kemudian baikinya. Nombor kedai sendiri ialah 10.0.0.5.
Anak tangga 2, nombor pintu. curl localhost ditolak serta-merta. Ini ss -tln. Tekan di mana nginx menjawab sekarang.
Alihkan nginx kembali ke port 80. Tukar baris listen, uji dengan sudo nginx -t, kemudian mulakan semula nginx.
Anak tangga 3. Dari laptop di luar, curl kata Connection timed out after 5004 milliseconds. Maksudnya: pengawal buang panggilan itu. Port 80 tiada dalam senarai pengawal.
Bina arahan yang benarkan pelanggan web masuk, dan pengawal kekal bertugas.
Anak tangga 4. Semalam kedai dihidupkan semula, dan nginx kekal mati. Hidupkan sekarang, dan pastikan ia hidup setiap kali boot.
Tulis laporan malam ini. Susun pembaikan ikut tertib tangga.
Kini anda boleh baiki talian ke server, satu anak tangga demi satu.
You finished this before. Practice is always welcome!
Official docs: hosts(5) · nginx: listen · Debian: ufw(8) · systemctl(1)
You've learned for 25 minutes. A short break helps your brain.
Sprint done! Great focus. Stretch for a minute?