Port, TCP/UDP, Socket, dan Connection
Memahami port, perbedaan TCP dan UDP, konsep socket, status koneksi, serta cara memeriksa layanan yang mendengarkan.
IP address menemukan host, tetapi port menemukan layanan di host tersebut. Modul ini membahas port, TCP/UDP, socket, dan cara memeriksa koneksi di server Linux.
Port
Port adalah angka 0–65535 yang mengidentifikasi layanan.
| Rentang | Nama | Contoh |
|---|---|---|
| 0–1023 | Well-known | HTTP 80, HTTPS 443, SSH 22 |
| 1024–49151 | Registered | MySQL 3306, PostgreSQL 5432 |
| 49152–65535 | Dynamic/ephemeral | Port sementara untuk koneksi keluar |
Port umum
| Port | Protokol | Layanan |
|---|---|---|
| 22 | TCP | SSH |
| 25 | TCP | SMTP |
| 53 | TCP/UDP | DNS |
| 80 | TCP | HTTP |
| 443 | TCP | HTTPS |
| 3000 | TCP | Aplikasi Node.js (umum) |
| 3306 | TCP | MySQL/MariaDB |
| 5432 | TCP | PostgreSQL |
| 6379 | TCP | Redis |
| 8006 | TCP | Proxmox Web UI |
TCP vs UDP
| Aspek | TCP | UDP |
|---|---|---|
| Koneksi | Connection-oriented | Connectionless |
| Keandalan | Menjamin urutan dan retransmisi | Tidak menjamin |
| Kecepatan | Lebih lambat karena kontrol | Lebih cepat, overhead kecil |
| Contoh | HTTP, SSH, database | DNS, streaming, game, VoIP |
TCP three-way handshake
Client Server
│ ─── SYN ───────────────▶ │
│ ◀── SYN-ACK ──────────── │
│ ─── ACK ───────────────▶ │
│ Connection │Setelah terhubung, data dikirim dengan acknowledment dan retransmisi bila hilang.
Socket
Socket adalah kombinasi alamat IP dan port, misalnya 192.168.1.60:80. Sebuah koneksi TCP
diidentifikasi oleh pasangan socket:
192.168.1.10:54321 ←→ 192.168.1.60:80Server biasanya listen di port tertentu, sedangkan client memakai port ephemeral.
Status koneksi
ss -tulpn
ss -tan
ss -s| Status | Arti |
|---|---|
LISTEN | Menunggu koneksi masuk |
ESTABLISHED | Koneksi aktif |
TIME_WAIT | Menunggu penutupan selesai |
CLOSE_WAIT | Sisi aplikasi belum menutup |
SYN_SENT | Mencoba membuka koneksi |
Arti opsi ss:
| Opsi | Fungsi |
|---|---|
-t | TCP |
-u | UDP |
-l | Listening |
-p | Tampilkan proses |
-n | Tampilkan angka, bukan nama |
Port terbuka belum tentu aman
Layanan yang listen di 0.0.0.0 dapat diakses dari semua interface. Batasi ke 127.0.0.1 atau
IP internal bila layanan hanya dipakai lokal.
Praktik: menjalankan dan memeriksa server
Server HTTP sederhana
cd /srv/app
python3 -m http.server 8000Di terminal lain:
ss -tulpn | grep 8000
curl -I http://127.0.0.1:8000Uji port dengan nc
apt install -y netcat-openbsd
nc -zv 192.168.1.60 80
nc -zv 192.168.1.60 22-z hanya memindai port tanpa mengirim data; -v menampilkan detail.
Cek dari luar
curl -I http://192.168.1.60:8000
telnet 192.168.1.60 8000Jika dari localhost berhasil tetapi dari mesin lain gagal, periksa firewall dan alamat bind.
Hubungan dengan firewall
Firewall menentukan port mana yang boleh masuk. Contoh UFW:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw status verbosePastikan port aplikasi memang sengaja dibuka, dan tutup yang tidak diperlukan. Firewall dibahas lebih dalam di Modul E.
Ringkasan
- Port mengidentifikasi layanan; rentang well-known 0–1023.
- TCP andal dan connection-oriented; UDP ringan dan connectionless.
- Socket adalah kombinasi IP dan port; status koneksi dapat dilihat dengan
ss. - Layanan yang listen di semua interface perlu dilindungi firewall.
Selanjutnya
Pelajari penerjemahan nama ke alamat di DNS, Domain Resolution, dan HTTP/HTTPS.
Public IP, Private IP, NAT, Port Forwarding, dan CGNAT
Membedakan IP publik dan privat, memahami cara kerja NAT, port forwarding, serta keterbatasan CGNAT dan solusinya.
DNS, Domain Resolution, dan HTTP/HTTPS
Memahami cara DNS menerjemahkan domain, jenis record penting, alur request HTTP, dan cara kerja HTTPS/TLS.