DEV Community

Aisalkyn Aidarova
Aisalkyn Aidarova

Posted on

Networking for DevOps (Senior-Level, Production-Focused)

🔥 DEVOPS NETWORKING PROJECT

“Service Is UP but NOT Reachable” (AWS EC2 – Ubuntu)


🎯 PROJECT GOAL

  1. Run a real service on EC2
  2. Break network access in real ways
  3. Learn exactly what to check and in what order
  4. Be able to answer the interview question confidently

🧠 ONE RULE (MEMORIZE)

App → Port → Binding → Local Test → Linux Firewall → Routing → Cloud Firewall → DNS
Enter fullscreen mode Exit fullscreen mode

STEP 0 — CONNECT TO EC2

ssh ubuntu@<EC2_PUBLIC_IP>
Enter fullscreen mode Exit fullscreen mode

STEP 1 — CREATE A REAL SERVICE (APP LAYER)

echo "Hello DevOps Networking" > index.html
python3 -m http.server 8080
Enter fullscreen mode Exit fullscreen mode

✅ TEST 1 — IS THE SERVICE RUNNING?

curl http://localhost:8080
Enter fullscreen mode Exit fullscreen mode

Expected

Hello DevOps Networking
Enter fullscreen mode Exit fullscreen mode

Meaning

  • App is running
  • App responds
  • NOT a code problem

STEP 2 — CHECK PORT & PROCESS

ss -tulnp | grep 8080
Enter fullscreen mode Exit fullscreen mode

Expected

tcp LISTEN 0.0.0.0:8080 python3
Enter fullscreen mode Exit fullscreen mode

What you check here

  • Port number
  • LISTEN state
  • Process name

Meaning

  • Port is open
  • No conflict
  • Service accepts traffic

STEP 3 — CHECK IP & ROUTING

CHECK INTERFACES

ip a
Enter fullscreen mode Exit fullscreen mode

Find:

inet 172.31.x.x
Enter fullscreen mode Exit fullscreen mode

CHECK ROUTES

ip r
Enter fullscreen mode Exit fullscreen mode

Find:

default via 172.31.x.1
Enter fullscreen mode Exit fullscreen mode

Meaning

  • Server has IP
  • Server knows how to send traffic

STEP 4 — TEST USING SERVER IP (LOCAL NETWORK)

curl http://<PRIVATE_IP>:8080
Enter fullscreen mode Exit fullscreen mode

Expected

Hello DevOps Networking
Enter fullscreen mode Exit fullscreen mode

Meaning

  • Linux networking is OK

STEP 5 — CHECK LINUX FIREWALLS

CHECK UFW

sudo ufw status
Enter fullscreen mode Exit fullscreen mode

Expected:

Status: inactive
Enter fullscreen mode Exit fullscreen mode

CHECK IPTABLES

sudo iptables -L -n
Enter fullscreen mode Exit fullscreen mode

Expected:

policy ACCEPT
Enter fullscreen mode Exit fullscreen mode

Meaning

  • Linux is NOT blocking traffic

STEP 6 — TEST PORT OWNERSHIP (PORT TROUBLESHOOTING)

lsof -i :8080
Enter fullscreen mode Exit fullscreen mode

Expected

python3
Enter fullscreen mode Exit fullscreen mode

Meaning

  • Correct app owns the port

STEP 7 — TEST FROM OUTSIDE (REAL PROBLEM)

Open in browser:

http://<EC2_PUBLIC_IP>:8080
Enter fullscreen mode Exit fullscreen mode

Result
❌ Page does NOT open


🚨 WHY IT FAILS (THIS IS THE LESSON)

AWS blocks traffic before it reaches Linux.


STEP 8 — FIX CLOUD FIREWALL (AWS SECURITY GROUP)

In AWS Console → Security Group → Inbound Rules

Add:

Type Port Source
TCP 8080 Your IP or 0.0.0.0/0

Save.


STEP 9 — TEST AGAIN

Open:

http://<EC2_PUBLIC_IP>:8080
Enter fullscreen mode Exit fullscreen mode

Expected

Hello DevOps Networking
Enter fullscreen mode Exit fullscreen mode

🎉 SUCCESS


STEP 10 — DNS TEST (OPTIONAL BUT IMPORTANT)

Test IP works

curl http://<EC2_PUBLIC_IP>:8080
Enter fullscreen mode Exit fullscreen mode

Test domain

curl http://myapp.example.com:8080
Enter fullscreen mode Exit fullscreen mode

Check DNS

nslookup myapp.example.com
Enter fullscreen mode Exit fullscreen mode

Meaning

  • DNS maps name → IP

🔍 ERROR TYPES & WHAT THEY MEAN

Error Meaning
Timeout Firewall / SG
Connection refused App down
Works on localhost only Wrong binding
Works with IP only DNS issue

🎤 INTERVIEW ANSWER (MEMORIZE)

“I check layer by layer.
First I verify the service locally.
Then I check port and binding.
After that I check Linux firewall and routing.
If Linux is open, I check cloud firewalls like Security Groups and DNS.”


✅ WHAT THIS PROJECT COVERS

✔ IP, ports, routing
ip a, ip r
ss, netstat
curl, wget
ufw, iptables
lsof -i
✔ Interview question

Top comments (0)