IP, port, client và server: dữ liệu được gửi tới đâu
Từ bài này ta theo đường đi của dữ liệu trên mạng, từng bước một. Bạn sẽ đọc được hai đầu của một kết nối (ai gửi, ai nhận, qua IP và port nào), hiểu vì sao địa chỉ trong nhà khác địa chỉ ngoài Internet (NAT), tự xem các giá trị đó trên máy mình, và thấy điều này liên quan gì đến bảo mật.
Thời lượng: khoảng 1 giờ 50 phút (giảng và thực hành xen kẽ; 5 bài tập; nên chia hai buổi: phần 1–5 là khái niệm, phần 6–8 là thực hành trên máy)
Client và server: ai hỏi, ai trả lời
6 phútBắt đầu từ một câu hỏi quen thuộc: khi bạn gõ địa chỉ một website rồi nhấn Enter, chuyện gì xảy ra? Máy bạn "hỏi", một máy khác "trả lời". Bài này giải thích hai bên đó là ai, tìm nhau bằng cách nào, và dữ liệu đi qua những thiết bị nào. Ta đi từng bước, mỗi bước thêm đúng một khái niệm:
- Client và server: ai hỏi, ai trả lời.
- IP: tìm đúng máy.
- Port: tìm đúng chương trình trên máy đó.
- Router và gateway: dữ liệu rời khỏi nhà bằng lối nào.
- NAT: vì sao địa chỉ trong nhà khác địa chỉ ngoài Internet.
- Thực hành: xem tất cả những thứ này trên máy thật của bạn.
Bước đầu tiên: hai vai trò
Khi mở website, trình duyệt gửi một yêu cầu và chương trình web trả nội dung về. Bên hỏi là , bên chờ và trả lời là .
Hai chữ này chỉ vai trò của chương trình, không phải loại máy. Máy tính để bàn có thể là server, một chiếc máy chủ khổng lồ ở trung tâm dữ liệu cũng có lúc làm client (khi nó gọi một dịch vụ khác). Thậm chí client và server có thể chạy trên cùng một máy; ở phần 7 bạn sẽ tự làm như vậy.
Về bảo mật, điều này quan trọng vì mỗi chương trình đang chờ yêu cầu từ mạng là một điểm có thể bị người khác gửi yêu cầu tới. Ta gọi tổng các điểm đó là bề mặt tấn công (attack surface). Càng ít dịch vụ lắng nghe ra ngoài, bề mặt càng nhỏ.
IP: tìm đúng máy
12 phútTrên mạng có hàng tỉ máy. Để gửi dữ liệu đúng nơi, mỗi máy cần một địa chỉ, giống nhà nào cũng cần địa chỉ để bưu tá tìm đến. Địa chỉ đó là .
là bốn số, mỗi số từ 0 đến 255, ngăn cách bằng dấu chấm. Ví dụ: 192.168.1.10. Nó dài 32 bit, nên có khoảng 4,3 tỉ địa chỉ khác nhau.
Địa chỉ IP giống địa chỉ nhà
Một địa chỉ nhà có hai phần: tên phố và số nhà. Địa chỉ IP cũng vậy. Mọi thiết bị trong cùng một mạng nhà có chung "tên phố", chỉ khác "số nhà":
Làm sao biết đâu là tên phố, đâu là số nhà?
Máy biết nhờ một con số đi kèm địa chỉ, gọi là , viết dạng /24. Con số 24 nghĩa là 24 bit đầu là tên phố. Vì mỗi số trong địa chỉ chiếm 8 bit, 24 bit chính là ba số đầu. Số còn lại là số nhà.
Cùng thông tin đó còn được viết dưới dạng : 255.255.255.0. Cách đọc rất đơn giản: chỗ nào là 255 thì thuộc tên phố, chỗ nào là 0 thì thuộc số nhà. Vậy /24 và 255.255.255.0 là một, chỉ là hai cách viết.
192.168.1) thì ở cùng một mạng và nói chuyện trực tiếp được. Khác phần mạng thì phải nhờ router chuyển giúp (phần 4).Không phải mạng nào cũng là /24. Mạng công ty lớn có thể dùng /16 hay /8 (phần mạng ngắn hơn, chứa được nhiều máy hơn). Trong bài này ta dùng /24 cho dễ nhìn.
IPv6: vì sao có thêm một loại địa chỉ?
4,3 tỉ địa chỉ IPv4 không đủ cho mọi điện thoại, TV, camera trên thế giới. Vì vậy có , dài 128 bit, viết bằng nhóm số hệ 16 ngăn cách bởi dấu hai chấm (ví dụ fe80::1c2b:3d4e). Máy bạn thường có cả hai loại, thấy hai địa chỉ là bình thường. Bài này tập trung vào IPv4. Chuyện "thiếu địa chỉ" cũng chính là lý do phải có NAT ở phần 5.
Hai địa chỉ đặc biệt nên nhận ra ngay
| Địa chỉ | Nghĩa là gì | Thường gặp khi |
|---|---|---|
127.0.0.1 | "Chính tôi." Dữ liệu gửi tới đây không rời khỏi máy (). | Chạy thử website ngay trên máy mình. |
169.254.x.x | Máy tự đặt cho mình vì không xin được địa chỉ từ router. | Lỗi mạng: của router không trả lời. Kiểm tra Wi-Fi và router trước. |
Port: tìm đúng chương trình
12 phútBiết IP là tìm được đúng máy. Nhưng một máy chủ chạy nhiều chương trình cùng lúc: web, quản trị từ xa, cơ sở dữ liệu… Làm sao dữ liệu biết nên giao cho chương trình nào? Đó là việc của : một số từ 0 đến 65535.
IP giống địa chỉ tòa nhà, port giống số cửa của từng bộ phận trong tòa nhà.
Một số port quen thuộc
| Port | Dịch vụ | Ghi chú bảo mật |
|---|---|---|
80 | HTTP (web) | Dữ liệu đi chữ rõ, ai nhìn thấy đường truyền cũng đọc được. |
443 | HTTPS (web mã hóa) | Cổng chuẩn cho website nghiêm túc. |
22 | SSH (quản trị từ xa) | Cho người quản trị đăng nhập; chỉ mở khi cần, bảo vệ bằng khóa hoặc MFA. |
53 | DNS (tra tên miền) | Sẽ gặp ở bài 6 và 7. |
3306 | Cơ sở dữ liệu MySQL | Thường không nên mở ra Internet; chỉ website cùng máy cần gọi tới. |
Số port chỉ là quy ước. Ai cũng có thể chạy dịch vụ lạ trên port 443, nên thấy port 443 không bảo đảm phía sau là dịch vụ đúng loại hay đáng tin.
Một kết nối có hai đầu, mỗi đầu gồm IP và port
Server dùng port cố định để ai cũng biết đường tới (ví dụ 443). Còn client thì sao? Mỗi lần kết nối, hệ điều hành của client tự chọn một port tạm (thường là số lớn, như 51514) để làm "địa chỉ trả lời". Vì vậy một kết nối được ghi dạng IP:port cho cả hai đầu:
192.168.1.10:51514 → 203.0.113.10:443192.168.1.10: IP của máy khách trong mạng riêng giả định.51514: port nguồn tạm thời, hệ điều hành chọn cho kết nối này.203.0.113.10: IP máy chủ (dải địa chỉ dùng cho tài liệu, không phải máy thật).443: port đích, quy ước dùng cho HTTPS.
Phân biệt nhiều kết nối
| Kết nối | IP nguồn | Port nguồn | IP đích | Port đích |
|---|---|---|---|---|
| A (tab A) | 192.168.1.10 | 51514 | 203.0.113.10 | 443 |
| B (tab B) | 192.168.1.10 | 51515 | 203.0.113.10 | 443 |
Hai kết nối chỉ khác port nguồn, đủ để hệ điều hành phân biệt. Phản hồi cho A đi theo chiều ngược: 203.0.113.10:443 → 192.168.1.10:51514. Số kết nối không bằng số tab: trình duyệt có thể dùng lại hoặc mở thêm kết nối nền.
BÀI TẬP 1 · 4 PHÚT
Đọc một kết nối
Cho kết nối 10.0.0.7:49821 → 203.0.113.10:22. Hãy trả lời:
- Bên nào là client, bên nào là server?
- Port nào là port dịch vụ, port nào là port tạm?
- Dịch vụ phía server là gì? Vì sao quản trị viên nên cân nhắc trước khi mở nó ra cho cả Internet?
Xem đáp án
- Client là
10.0.0.7(bên gửi yêu cầu), server là203.0.113.10. - Port dịch vụ là
22(cố định, ai cũng biết). Port49821là port tạm do máy client chọn. - Port 22 là SSH, dùng để đăng nhập quản trị từ xa. Nếu mở cho mọi người, kẻ xấu có thể thử đoán mật khẩu hàng loạt; nên giới hạn nguồn truy cập và dùng khóa hoặc MFA.
Mạng nhà, router và gateway
12 phútTa đã biết một kết nối gồm hai đầu. Câu hỏi tiếp theo: dữ liệu rời khỏi nhà bằng lối nào? Hãy nhìn toàn cảnh một mạng gia đình:
là mạng nội bộ như mạng Wi-Fi ở nhà: laptop, điện thoại, TV đều nối vào đó. Để gửi dữ liệu ra ngoài LAN, các thiết bị gửi cho , thiết bị chuyển tiếp dữ liệu giữa các mạng. Router nhà bạn có hai mặt: mặt trong (nối với các thiết bị trong nhà, địa chỉ 192.168.1.1) và mặt ngoài (nối với nhà mạng, mang một địa chỉ công cộng).
Địa chỉ mặt trong của router, mà mọi máy trong nhà dùng làm lối ra mặc định, gọi là ("cổng ra"). Giống như cổng ra khỏi khu phố: muốn đi đâu xa, trước hết phải đi qua cổng đó.
Mỗi lần gửi, máy tự hỏi một câu
"Địa chỉ đích có cùng tên phố (phần mạng) với mình không?" Câu trả lời quyết định đường đi:
| Đích | So với 192.168.1.10/24 | Máy làm gì |
|---|---|---|
192.168.1.20 (máy in) | Cùng phần mạng 192.168.1 | Gửi thẳng tới máy in. |
203.0.113.10 (máy chủ web) | Khác phần mạng | Gửi cho gateway 192.168.1.1 và nhờ chuyển tiếp. |
Router chỉ là một điểm chuyển tiếp. Thực tế còn nhiều router trung gian giữa nhà bạn và máy chủ. Router, và những thiết bị trên đường đi, đều có thể nhìn thấy IP và port của gói dữ liệu, nên nội dung nhạy cảm phải được mã hóa (bài 6).
Ba dải IP riêng
Các địa chỉ trong nhà là . Có ba dải IPv4 dành riêng cho mạng nội bộ; chúng không được định tuyến thẳng ra Internet:
| Dải | Ví dụ | Hay gặp ở |
|---|---|---|
| 10.0.0.0/8 | 10.1.2.3 | Mạng công ty, trường học, một số hotspot |
| 172.16.0.0/12 | 172.20.1.5 | Mạng công ty; Docker hay dùng 172.17.x.x |
| 192.168.0.0/16 | 192.168.1.10 | Mạng gia đình (hầu hết router) |
Hai nhà có thể cùng dùng 192.168.1.10 trong hai mạng riêng độc lập mà không xung đột, giống hai thành phố đều có "đường Lê Lợi". Nhưng chính điều này đặt ra một vấn đề lớn khi ra Internet, và là lý do của phần tiếp theo.
Hai dải 198.51.100.0/24 và 203.0.113.0/24 trong bài là dải dành cho tài liệu, không phải máy để thử kết nối.
BÀI TẬP 2 · 5 PHÚT
Gửi thẳng hay qua gateway?
Máy A có địa chỉ 192.168.1.10/24 (gateway 192.168.1.1). Với mỗi đích sau, A gửi thẳng hay qua gateway?
192.168.1.77192.168.2.7710.0.0.5203.0.113.10
Xem đáp án
- Thẳng. Ba số đầu
192.168.1giống nhau, cùng mạng. - Qua gateway. Số thứ ba khác (
2so với1), nên khác mạng dù nhìn rất giống. - Qua gateway. Phần mạng hoàn toàn khác.
- Qua gateway. Khác mạng, là máy ở ngoài Internet.
NAT: vì sao địa chỉ trong nhà khác ngoài Internet
15 phútVấn đề cần giải quyết
Laptop của bạn có IP riêng 192.168.1.10. Nhưng hàng triệu nhà khác cũng dùng đúng địa chỉ đó. Nếu laptop gửi gói tin ra Internet với nguồn 192.168.1.10, máy chủ nhận được sẽ trả lời cho ai? Không có đường nào dẫn về nhà bạn, vì địa chỉ ấy ở đâu cũng có.
Giải pháp là (dịch địa chỉ mạng): router nhà bạn "đóng dấu" địa chỉ công cộng của nó lên mọi gói tin đi ra, và nhớ xem gói nào của máy nào để chuyển câu trả lời về đúng chỗ. Router là thiết bị duy nhất của cả nhà có .
Ví dụ đời thường: phòng thư của một tòa nhà
Một tòa nhà có 50 phòng. Mọi thư gửi đi đều ghi người gửi là "Tòa nhà ABC, hồ sơ số 1, 2, 3…" thay vì tên từng phòng. Phòng thư ghi vào sổ: "hồ sơ số 1 là của phòng 305". Khi thư trả lời về, ghi "hồ sơ số 1", nhân viên phòng thư tra sổ rồi mang đến phòng 305. Người gửi thư chỉ biết địa chỉ tòa nhà, không biết phòng nào. Router và NAT hoạt động đúng như vậy; "hồ sơ số" chính là port.
Chiều đi: ra Internet
Đọc hình theo thứ tự:
- Laptop gửi gói tin với nguồn là IP riêng và port tạm:
192.168.1.10:51514, đích203.0.113.10:443. - Router nhận gói. Nó thay nguồn bằng IP công cộng của chính nó cùng một port ngoài còn trống, ở đây là
198.51.100.25:62001. Đích không đổi. - Router ghi một dòng vào sổ ánh xạ (bảng NAT) để sau này tra ngược.
Vì sao phải đổi cả port, không chỉ IP? Vì nhiều thiết bị cùng dùng chung một IP công cộng. Nếu chỉ đổi IP, khi câu trả lời về, router không phân biệt được của laptop hay điện thoại. Việc đổi kèm port để tách các kết nối gọi là ; ngoài đời người ta vẫn gọi gộp là NAT. Hình 7 có điểm đáng chú ý: hai máy tình cờ chọn cùng port tạm 51514, vẫn được tách thành 62001 và 62002.
Chiều về: câu trả lời tìm đường vào nhà
- Máy chủ trả lời về IP công cộng : port ngoài (
198.51.100.25:62001). Nó chỉ biết địa chỉ này, không biết gì về192.168.1.10. - Router tra sổ, thấy 62001 tương ứng laptop, đổi đích thành
192.168.1.10:51514rồi chuyển vào mạng nhà.
Ai nhìn thấy địa chỉ nào?
| Bên nào | Thấy gì về laptop |
|---|---|
| Laptop, điện thoại trong nhà | Thấy địa chỉ riêng 192.168.1.10. |
| Máy chủ web ngoài Internet | Chỉ thấy 198.51.100.25:62001. Không thấy 192.168.1.10. |
Hệ quả hay gặp: nhật ký (log) của website ghi IP công cộng của nhà hoặc trường bạn, không ghi từng máy. Khi điều tra sự cố (bài 4), một IP có thể đại diện cho nhiều người.
100.64.x.x đến 100.127.x.x) khác IP mà website nhìn thấy. Bài 6 phần B2 mô phỏng sổ NAT và bàn kỹ hơn về bảo mật.BÀI TẬP 3 · 6 PHÚT
Điền sổ ánh xạ
Sổ NAT đang có hai dòng như Hình 7. Laptop 192.168.1.10 mở thêm một tab mới tới 203.0.113.10:443, hệ điều hành chọn port tạm 51600.
- Router sẽ ghi dòng mới nào vào sổ? (Chọn một port ngoài chưa dùng.)
- Máy chủ trả lời về địa chỉ nào? Router đổi nó thành gì trước khi chuyển vào nhà?
Xem đáp án
- Ví dụ:
192.168.1.10:51600 ⇄ 198.51.100.25:62003. Port ngoài có thể là bất kỳ số chưa dùng; quan trọng là không trùng 62001, 62002. - Máy chủ trả lời về
198.51.100.25:62003. Router tra sổ và đổi đích thành192.168.1.10:51600.
Xem địa chỉ trên máy của bạn
25 phútĐến đây bạn đã có đủ khái niệm. Phần này giúp bạn tìm đúng chỗ trên máy thật để đối chiếu với sơ đồ ở phần 4. Cần đọc ra ba thông tin:
| Cần tìm | Ví dụ trong bài | Dùng để làm gì |
|---|---|---|
| ① Địa chỉ IPv4 của máy | 192.168.1.10 | Địa chỉ của máy bạn trong mạng nhà (như laptop trong sơ đồ) |
| ② Subnet mask / prefix | 255.255.255.0 hay /24 | Cho biết bao nhiêu phần đầu của IP là "tên phố" |
| ③ Gateway (cổng ra) | 192.168.1.1 | Địa chỉ router, nơi máy gửi mọi dữ liệu đi ra ngoài |
%, $ hoặc > là dấu nhắc máy tự in, bạn không gõ nó. (4) Dùng nút Sao chép để khỏi gõ nhầm; gõ sai thì máy chỉ báo lỗi như command not found, gõ lại là được.Ngoài việc đọc ba giá trị, ta dùng thêm để kiểm tra máy mình có thật sự nói chuyện được với gateway hay không. Cách làm: chọn hệ điều hành của bạn ở tab dưới và làm theo từng bước. Phần tô vàng trong kết quả là dòng bạn cần đọc; phần còn lại có thể bỏ qua. Các kết quả dưới đây là ví dụ minh họa, số trên máy bạn sẽ khác.
Cách 1: bằng giao diện (không cần gõ lệnh)
- Bấm biểu tượng Apple ở góc trên trái → Cài đặt Hệ thống (System Settings).
- Chọn Wi-Fi ở cột trái (nếu cắm cáp mạng thì chọn Ethernet).
- Ở mạng đang kết nối (có chữ "Đã kết nối"), bấm Chi tiết… (Details).
- Chọn thẻ TCP/IP. Bạn thấy: Địa chỉ IPv4 (= ①), Mặt nạ mạng con / Subnet mask (= ②), Bộ định tuyến / Router (= ③, chính là gateway).
Tên mục có thể khác chút theo phiên bản macOS và ngôn ngữ, nhưng vị trí là: Wi-Fi → Chi tiết → TCP/IP.
Cách 2: bằng Terminal
BƯỚC 1Mở Terminal
Nhấn Cmd + Space để mở Spotlight, gõ Terminal, nhấn Enter. Một cửa sổ chữ hiện ra với con trỏ nhấp nháy sau dấu nhắc. Từ giờ, mỗi lệnh bạn gõ ở đây rồi nhấn Enter.
BƯỚC 2Lấy nhanh IP của máy: ipconfig getifaddr en0
ipconfig getifaddr en0| Phần | Ý nghĩa |
|---|---|
ipconfig | Công cụ hỏi cấu hình mạng của máy. |
getifaddr | Viết tắt của "get interface address": lấy địa chỉ của một giao diện mạng. |
en0 | Tên giao diện Wi-Fi trên hầu hết máy Mac. Cắm cáp thì thường là en1 hoặc tên khác. |
192.168.1.10Nếu không in gì, máy bạn đang dùng giao diện khác. Hãy thử en1, hoặc làm bước 3 để xem đầy đủ.
BƯỚC 3Xem đầy đủ: ifconfig
ifconfigLệnh này không cần thêm tham số. Kết quả rất dài, gồm nhiều khối, mỗi khối bắt đầu bằng tên giao diện (lo0, en0…). Hãy tìm khối có dòng status: active (thường là en0) và bỏ qua khối lo0 (đó là loopback 127.0.0.1, chỉ trỏ về chính máy).
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether aa:bb:cc:dd:ee:ff
inet6 fe80::1c2b:3d4e:5f6a:7b8c%en0 prefixlen 64 scopeid 0xe
inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
status: active| Phần | Ý nghĩa |
|---|---|
inet 192.168.1.10 | ① Địa chỉ IPv4 của máy. Dòng inet6 ngay trên là IPv6, đừng nhầm. |
netmask 0xffffff00 | ② Subnet mask viết hệ 16. Mỗi cặp ff là 255 và 00 là 0, nên 0xffffff00 = 255.255.255.0 = /24. |
status: active | Khối này đang được dùng. Khối status: inactive là giao diện không kết nối. |
ether … | Địa chỉ phần cứng (MAC). Che đi khi chụp màn hình gửi người khác. |
BƯỚC 4Tìm gateway: route -n get default
route -n get default| Phần | Ý nghĩa |
|---|---|
route | Công cụ xem (và sửa) bảng đường đi của máy. Ta chỉ xem. |
-n | Hiện số IP thay vì cố dịch ra tên, cho nhanh và dễ đọc. |
get | Hỏi đường đi tới một đích cụ thể. |
default | Đích đặc biệt nghĩa là "mọi nơi không có đường riêng", tức lối ra Internet. |
route to: default
destination: default
mask: default
gateway: 192.168.1.1
interface: en0Dòng gateway là ③. Dòng interface: en0 cho biết gateway này đi qua giao diện nào, nên bạn biết khối nào ở bước 3 là khối cần đọc.
BƯỚC 5Kiểm tra thông mạng: ping -c 4 192.168.1.1
192.168.1.1 bằng gateway ③ của bạn.ping -c 4 192.168.1.1| Phần | Ý nghĩa |
|---|---|
ping | Gửi gói nhỏ rồi đo thời gian đối phương trả lời, giống "gõ cửa xem có ai ở nhà". |
-c 4 | "count": gửi đúng 4 lần rồi dừng. Không có tham số này, macOS ping mãi cho tới khi bạn nhấn Ctrl + C. |
192.168.1.1 | Địa chỉ cần gõ cửa, ở đây là gateway. |
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=2.914 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=3.207 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=2.655 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=3.011 ms
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.655/2.947/3.207/0.199 mstime=2.9 ms là thời gian đi và về (mili giây); trong nhà thường vài ms. 0.0% packet loss nghĩa là không mất gói nào: kết nối tốt. Nếu thấy 100% packet loss, hoặc máy không tới được gateway, hoặc gateway cố ý không trả lời ping (một số thiết bị chặn), nên chưa đủ để kết luận có lỗi.Cách 1: bằng giao diện
- Bấm Start → Settings → Network & internet.
- Chọn Wi-Fi (hoặc Ethernet nếu cắm cáp) → bấm vào tên mạng đang kết nối, hoặc mục Hardware properties / Properties.
- Kéo xuống tìm dòng IPv4 address (= ①).
Giao diện này không phải bản nào cũng hiện gateway, nên cách 2 đầy đủ và ổn định hơn.
Cách 2: bằng Command Prompt hoặc PowerShell
BƯỚC 1Mở cửa sổ lệnh
Nhấn phím Windows, gõ cmd (hoặc PowerShell), nhấn Enter. Không cần chạy bằng quyền quản trị. Cửa sổ chữ hiện ra với dấu nhắc kết thúc bằng >.
BƯỚC 2Xem cấu hình mạng: ipconfig
ipconfig| Phần | Ý nghĩa |
|---|---|
ipconfig | Công cụ in cấu hình IP của máy. Gõ riêng một mình là in bản tóm tắt; thêm /all sẽ in chi tiết hơn (cả địa chỉ MAC). |
Kết quả chia theo từng adapter. Tìm adapter đang dùng: Wireless LAN adapter Wi-Fi nếu dùng Wi-Fi, hoặc Ethernet adapter Ethernet nếu dùng cáp. Bỏ qua adapter có dòng Media disconnected, và adapter tên vEthernet, VirtualBox, VMware (mạng ảo). Trong adapter đó, đọc ba dòng được tô vàng:
Wireless LAN adapter Wi-Fi:
Link-local IPv6 Address . . . . . : fe80::1c2b:3d4e:5f6a:7b8c%12
IPv4 Address. . . . . . . . . . . : 192.168.1.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1| Phần | Ý nghĩa |
|---|---|
IPv4 Address | ① Địa chỉ IPv4 của máy. |
Subnet Mask | ② Subnet mask. 255.255.255.0 tương ứng /24. |
Default Gateway | ③ Gateway, tức địa chỉ router. Dòng IPv6 (fe80…) cũng có thể hiện ở đây, đừng nhầm với IPv4. |
Nếu Windows của bạn dùng ngôn ngữ khác, tên dòng có thể được dịch. Hãy tìm dòng chứa IPv4, mask và gateway.
BƯỚC 3Kiểm tra thông mạng: ping -n 4 192.168.1.1
192.168.1.1 bằng Default Gateway ③ của bạn.ping -n 4 192.168.1.1| Phần | Ý nghĩa |
|---|---|
ping | Gửi gói nhỏ rồi đo thời gian đối phương trả lời, giống "gõ cửa xem có ai ở nhà". |
-n 4 | "number": gửi 4 lần rồi dừng. (Windows mặc định cũng gửi 4 lần.) |
192.168.1.1 | Địa chỉ cần gõ cửa, ở đây là gateway. |
Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time=3ms TTL=64
Reply from 192.168.1.1: bytes=32 time=3ms TTL=64
Reply from 192.168.1.1: bytes=32 time=3ms TTL=64
Reply from 192.168.1.1: bytes=32 time=3ms TTL=64
Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 3ms, Maximum = 3ms, Average = 3msReply from… là một lần gõ cửa có người đáp; time=3ms là thời gian đi và về. Lost = 0 (0% loss) nghĩa là không mất gói nào. Nếu thấy Request timed out hoặc Destination host unreachable, hoặc máy không tới được gateway, hoặc gateway cố ý không trả lời ping nên chưa đủ để kết luận có lỗi.Để xem đường ra theo kiểu "bảng đường đi", chạy thêm route print và tìm dòng có 0.0.0.0 ở cả hai cột đầu: cột Gateway của dòng đó chính là ③.
Cách 1: bằng giao diện (GNOME, Ubuntu)
- Mở Settings → Wi-Fi (hoặc Network nếu dùng cáp).
- Bấm biểu tượng bánh răng ⚙ cạnh mạng đang kết nối.
- Ở thẻ Details bạn thấy IPv4 Address (= ①) và Default Route (= ③, gateway).
Mỗi môi trường desktop đặt tên hơi khác nhau; nếu không thấy, dùng cách 2.
Cách 2: bằng Terminal
BƯỚC 1Mở Terminal
Thường là Ctrl + Alt + T, hoặc tìm "Terminal" trong menu ứng dụng. Cửa sổ chữ hiện ra với dấu nhắc kết thúc bằng $.
BƯỚC 2Xem địa chỉ IP: ip -4 addr
inet chứa luôn cả ① (IP) lẫn ② (prefix) trong một chỗ.ip -4 addr| Phần | Ý nghĩa |
|---|---|
ip | Công cụ chính để xem và cấu hình mạng trên Linux. |
-4 | Chỉ hiện IPv4, bỏ IPv6 cho gọn. |
addr | Đối tượng cần xem: địa chỉ (address) của các giao diện. |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
inet 127.0.0.1/8 scope host lo
2: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic wlp2s0| Phần | Ý nghĩa |
|---|---|
lo | Loopback, 127.0.0.1, chỉ trỏ về chính máy. Bỏ qua. |
wlp2s0 | Tên giao diện Wi-Fi (wlp…). Cáp mạng thường là enp… hoặc eth0. Tên của bạn sẽ khác. |
inet 192.168.1.10/24 | ① IP của máy và ② prefix /24 trong cùng một dòng. /24 = 255.255.255.0. |
BƯỚC 3Tìm gateway: ip route
default cho biết lối ra mặc định, tức gateway ③.ip route| Phần | Ý nghĩa |
|---|---|
ip route | Hiện bảng định tuyến (routing table): máy sẽ gửi dữ liệu tới từng đích qua đâu. |
default via 192.168.1.1 dev wlp2s0 proto dhcp metric 600
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.10Dòng default via 192.168.1.1 nghĩa là: "đích nào không có đường riêng thì gửi cho 192.168.1.1, qua giao diện wlp2s0". Dòng thứ hai cho biết mạng 192.168.1.0/24 là mạng nội bộ, máy nói chuyện trực tiếp với các máy trong dải này mà không qua gateway, đúng như bảng "gửi thẳng hay qua gateway" ở phần 4.
BƯỚC 4Kiểm tra thông mạng: ping -c 4 192.168.1.1
192.168.1.1 bằng gateway ③ của bạn.ping -c 4 192.168.1.1| Phần | Ý nghĩa |
|---|---|
ping | Gửi gói nhỏ rồi đo thời gian đối phương trả lời, giống "gõ cửa xem có ai ở nhà". |
-c 4 | "count": gửi đúng 4 lần rồi dừng. Không có tham số này, ping chạy mãi cho tới khi bạn nhấn Ctrl + C. |
192.168.1.1 | Địa chỉ cần gõ cửa, ở đây là gateway. |
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.81 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=3.12 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=2.74 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=2.95 ms
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 2.740/2.905/3.120/0.145 mstime=2.81 ms là thời gian đi và về; trong nhà thường vài ms. 0% packet loss nghĩa là không mất gói nào: kết nối tốt. Nếu thấy 100% packet loss, hoặc máy không tới được gateway, hoặc gateway cố ý không trả lời ping, nên chưa đủ để kết luận có lỗi.Tên gọi khác nhau trên từng hệ điều hành
| Thông tin | Windows | macOS | Linux |
|---|---|---|---|
| ① IP của máy | IPv4 Address | inet | inet |
| ② Subnet mask | Subnet Mask | netmask 0xffffff00 | /24 sau IP |
| ③ Gateway | Default Gateway | gateway (trong route -n get default) | default via (trong ip route) |
Đọc kết quả: những chỗ dễ nhầm
- Nhiều là bình thường. Máy có thể có Wi-Fi, cáp, Bluetooth, VPN, máy ảo, Docker. Adapter cần đọc là cái đang kết nối và có gateway. Adapter mạng ảo thường có IP riêng khác hẳn (ví dụ
172.17.0.1của Docker) và không có đường ra Internet. - IP bắt đầu bằng
169.254nghĩa là máy không nhận được địa chỉ từ router (lỗi DHCP). Mạng đang trục trặc, kiểm tra Wi-Fi hoặc router trước. - IP riêng khác IP công cộng. Những số bạn vừa đọc là địa chỉ trong mạng nhà. Địa chỉ mà website bên ngoài nhìn thấy là IP công cộng của router (phần NAT ở trên), xem ở trang quản trị router (mục WAN/Internet). Bài 6 có lab so sánh hai địa chỉ này.
- Cẩn thận khi chụp màn hình. Khi gửi ảnh kết quả cho người khác (hỏi bài, báo lỗi), che dòng
ether/Physical Address(địa chỉ MAC, định danh phần cứng) và tên máy. IP riêng ít nhạy cảm hơn, nhưng không cần chia sẻ.
BÀI TẬP 4 · 6 PHÚT
Đối chiếu máy của bạn với sơ đồ
Làm theo tab hệ điều hành của bạn, ghi lại ba thông tin: ① IP, ② prefix hoặc mask, ③ gateway, và kết quả ping tới gateway. Sau đó trả lời:
- IP của bạn thuộc dải riêng nào trong ba dải ở phần 4?
- Gateway và IP của máy có chung ba số đầu không? Vì sao?
- Có bao nhiêu adapter đang kết nối? Adapter nào có gateway?
Xem đáp án
- Hầu hết mạng nhà thuộc
192.168.0.0/16; một số mạng công ty hay hotspot dùng10.0.0.0/8hoặc172.16.0.0/12. - Với prefix
/24, ba số đầu là phần mạng và phải giống nhau thì máy mới gửi trực tiếp tới gateway được (ví dụ192.168.1.10và192.168.1.1). Nếu khác nhau, cấu hình mạng đang bất thường, hoặc prefix không phải /24. - Thường chỉ một adapter đang dùng (Wi-Fi hoặc cáp) có gateway. Adapter VPN hay máy ảo có thể có IP nhưng không có gateway mặc định.
Xem port: chương trình nào đang lắng nghe
20 phútỞ phần 6 ta xem "địa chỉ nhà" của máy. Bây giờ xem cửa nào đang mở: những port mà chương trình đang (chờ có người gõ cửa). Mỗi cửa mở là một phần của bề mặt tấn công, nên quản trị viên cần biết danh sách này.
Một dòng trong danh sách cho ta biết gì?
Mỗi dòng có một cột địa chỉ lắng nghe dạng địa-chỉ:port. Phần địa chỉ quyết định ai gõ cửa được:
| Hiện là | Nghĩa là | Mức tiếp xúc |
|---|---|---|
127.0.0.1:8080 | Chỉ chương trình trên chính máy này kết nối được. | Thấp |
192.168.1.10:8080 | Chỉ qua địa chỉ mạng nhà đó; máy trong cùng mạng kết nối được. | Trung bình |
*:8080 hoặc 0.0.0.0:8080 hoặc [::]:8080 | Nhận từ mọi địa chỉ của máy, tức cả mạng nhà (và Internet nếu router mở port). | Cao |
Thực hành: chụp ảnh "trước", bật một server nhỏ, chụp ảnh "sau"
Bài thực hành này làm trên một máy, hai cửa sổ lệnh. Gọi cửa sổ đầu là Terminal A, cửa sổ thứ hai là Terminal B. Bài 6 dùng port 8000; bài này dùng 8080 để hai bài không đụng nhau.
BƯỚC 1Chụp ảnh "trước" (Terminal A): lsof -iTCP -sTCP:LISTEN -n -P
lsof -iTCP -sTCP:LISTEN -n -P| Phần | Ý nghĩa |
|---|---|
lsof | "list open files": liệt kê file đang mở. Trên macOS/Linux, mỗi kết nối mạng cũng được coi là một "file mở". |
-iTCP | Chỉ lấy kết nối mạng giao thức TCP. |
-sTCP:LISTEN | Chỉ lấy những kết nối ở trạng thái LISTEN (đang chờ). |
-n | Không dịch IP ra tên máy, cho nhanh và đọc rõ số. |
-P | Hiện số port (443) thay vì tên dịch vụ (https). |
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rapportd 656 an 11u IPv4 0x1f2a 0t0 TCP *:49152 (LISTEN)
cupsd 312 root 6u IPv4 0x3c4b 0t0 TCP 127.0.0.1:631 (LISTEN)| Phần | Ý nghĩa |
|---|---|
COMMAND | Tên chương trình đang mở cửa. |
PID | Số hiệu tiến trình, dùng để tìm hoặc dừng nó. |
NAME | địa-chỉ:port (LISTEN). Dòng đầu *:49152 là mở cho cả mạng; dòng hai 127.0.0.1:631 chỉ trong máy. |
Không có dòng nào là bất thường: macOS có sẵn nhiều dịch vụ. Bạn chỉ cần ghi nhớ danh sách này và để ý dòng nào mở ra cả mạng.
BƯỚC 2Tạo thư mục thử (Terminal A)
mkdir thu-port
cd thu-port
echo '<h1>Xin chao tu may cua toi</h1>' > index.html| Phần | Ý nghĩa |
|---|---|
mkdir thu-port | "make directory": tạo thư mục tên thu-port. |
cd thu-port | "change directory": đi vào thư mục vừa tạo. |
echo '…' > index.html | echo in chuỗi ra; dấu > chuyển phần in ra đó vào file index.html thay vì màn hình. |
BƯỚC 3Bật server nhỏ (Terminal A): python3 -m http.server 8080 --bind 127.0.0.1
python3 -m http.server 8080 --bind 127.0.0.1| Phần | Ý nghĩa |
|---|---|
python3 -m http.server | Chạy module http.server có sẵn của Python: một web server trả về file trong thư mục hiện tại. |
8080 | Port mà server lắng nghe (cửa số 8080). |
--bind 127.0.0.1 | Chỉ nghe ở địa chỉ loopback, nên chỉ máy này truy cập được. Bỏ tham số này, server nghe ở mọi địa chỉ và máy khác cùng Wi-Fi cũng vào được. |
Nếu macOS hỏi cài "Command Line Developer Tools" khi chạy python3, hãy đồng ý cài rồi chạy lại lệnh. Kết quả mong đợi:
Serving HTTP on 127.0.0.1 port 8080 (http://127.0.0.1:8080/) ...Terminal A đứng yên, không trả về dấu nhắc. Đó là bình thường: server đang chạy và chờ. Đừng đóng cửa sổ này. Mở Terminal B bằng Cmd + T (tab mới).
BƯỚC 4Chụp ảnh "sau" (Terminal B): lsof -iTCP:8080 -sTCP:LISTEN -n -P
:8080 sau -iTCP để lọc theo port.lsof -iTCP:8080 -sTCP:LISTEN -n -PCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Python 48213 an 5u IPv4 0x7d1e 0t0 TCP 127.0.0.1:8080 (LISTEN)BƯỚC 1Chụp ảnh "trước" (cửa sổ A): netstat -ano | findstr LISTENING
netstat -ano | findstr LISTENING| Phần | Ý nghĩa |
|---|---|
netstat | Công cụ thống kê kết nối mạng của máy. |
-a | "all": hiện cả các cổng đang lắng nghe, không chỉ kết nối đang truyền dữ liệu. |
-n | Hiện số (IP, port) thay vì cố dịch ra tên. |
-o | "owner": thêm cột PID, số hiệu chương trình đang giữ cổng. |
| | "Ống dẫn": đưa kết quả của lệnh bên trái sang lệnh bên phải. |
findstr LISTENING | Chỉ giữ những dòng có chữ LISTENING. |
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1024
TCP 127.0.0.1:5432 0.0.0.0:0 LISTENING 4120| Phần | Ý nghĩa |
|---|---|
Local Address | địa-chỉ:port đang lắng nghe. 0.0.0.0:135 là mở cho cả mạng; 127.0.0.1:5432 chỉ trong máy. |
Foreign Address | Luôn là 0.0.0.0:0 với cổng đang chờ, vì chưa có ai kết nối. Bỏ qua. |
PID | Số hiệu tiến trình. Tra tên chương trình bằng tasklist /FI "PID eq 4120". |
BƯỚC 2Tạo thư mục thử (cửa sổ A, PowerShell)
mkdir thu-port
cd thu-port
Set-Content -Path index.html -Value '<h1>Xin chao tu may cua toi</h1>' -Encoding ascii| Phần | Ý nghĩa |
|---|---|
mkdir thu-port | Tạo thư mục tên thu-port. |
cd thu-port | "change directory": đi vào thư mục vừa tạo. |
Set-Content -Path … -Value … | Lệnh PowerShell ghi giá trị vào file. -Encoding ascii giữ file là chữ thường, không có ký tự lạ ở đầu file. |
BƯỚC 3Bật server nhỏ (cửa sổ A): py -m http.server 8080 --bind 127.0.0.1
py -m http.server 8080 --bind 127.0.0.1| Phần | Ý nghĩa |
|---|---|
py -m http.server | py là trình chạy Python trên Windows; -m http.server chạy module web server có sẵn, trả về file trong thư mục hiện tại. |
8080 | Port mà server lắng nghe (cửa số 8080). |
--bind 127.0.0.1 | Chỉ nghe ở địa chỉ loopback, nên chỉ máy này truy cập được. Bỏ tham số này, server nghe ở mọi địa chỉ và máy khác cùng Wi-Fi cũng vào được. |
Nếu Windows báo không tìm thấy py, cài Python từ python.org (tích chọn Add python.exe to PATH) rồi mở lại cửa sổ. Kết quả mong đợi:
Serving HTTP on 127.0.0.1 port 8080 (http://127.0.0.1:8080/) ...Cửa sổ A đứng yên, không trả về dấu nhắc. Đó là bình thường: server đang chạy và chờ. Đừng đóng cửa sổ này. Mở thêm một cửa sổ PowerShell nữa làm cửa sổ B.
BƯỚC 4Chụp ảnh "sau" (cửa sổ B): netstat -ano | findstr :8080
findstr :8080 chỉ giữ các dòng có :8080.netstat -ano | findstr :8080 TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING 9312Cột cuối là PID. Chạy tasklist /FI "PID eq 9312" (thay đúng PID của bạn) sẽ thấy tên chương trình là py.exe hoặc python.exe.
BƯỚC 1Chụp ảnh "trước" (Terminal A): ss -tln
ss -tln| Phần | Ý nghĩa |
|---|---|
ss | "socket statistics": công cụ xem các ổ cắm (kết nối) mạng của máy. |
-t | Chỉ TCP. |
-l | "listening": chỉ những cổng đang chờ. |
-n | Hiện số (IP, port) thay vì tên. |
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 4096 0.0.0.0:22 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:631 0.0.0.0:*| Phần | Ý nghĩa |
|---|---|
Local Address:Port | địa-chỉ:port đang lắng nghe. 0.0.0.0:22 là mở cho cả mạng; 127.0.0.1:631 chỉ trong máy. |
Peer Address:Port | Luôn trống (*) với cổng đang chờ, vì chưa có ai kết nối. Bỏ qua. |
Muốn biết chương trình nào giữ cổng, thêm -p và chạy bằng sudo: sudo ss -tlnp. Cột cuối sẽ có dạng users:(("sshd",pid=812,fd=3)).
BƯỚC 2Tạo thư mục thử (Terminal A)
mkdir thu-port
cd thu-port
echo '<h1>Xin chao tu may cua toi</h1>' > index.html| Phần | Ý nghĩa |
|---|---|
mkdir thu-port | "make directory": tạo thư mục tên thu-port. |
cd thu-port | "change directory": đi vào thư mục vừa tạo. |
echo '…' > index.html | echo in chuỗi ra; dấu > chuyển phần in ra đó vào file index.html thay vì màn hình. |
BƯỚC 3Bật server nhỏ (Terminal A): python3 -m http.server 8080 --bind 127.0.0.1
python3 -m http.server 8080 --bind 127.0.0.1| Phần | Ý nghĩa |
|---|---|
python3 -m http.server | Chạy module http.server có sẵn của Python: một web server trả về file trong thư mục hiện tại. |
8080 | Port mà server lắng nghe (cửa số 8080). |
--bind 127.0.0.1 | Chỉ nghe ở địa chỉ loopback, nên chỉ máy này truy cập được. Bỏ tham số này, server nghe ở mọi địa chỉ và máy khác cùng Wi-Fi cũng vào được. |
Serving HTTP on 127.0.0.1 port 8080 (http://127.0.0.1:8080/) ...Terminal A đứng yên, không trả về dấu nhắc. Đó là bình thường: server đang chạy và chờ. Đừng đóng cửa sổ này. Mở Terminal B bằng Ctrl + Shift + T (tab mới).
BƯỚC 4Chụp ảnh "sau" (Terminal B): ss -tln | grep 8080
grep 8080 chỉ giữ các dòng có chữ 8080.ss -tln | grep 8080LISTEN 0 5 127.0.0.1:8080 0.0.0.0:*Dòng mới 127.0.0.1:8080 chính là cánh cửa bạn vừa mở. Ở cột địa chỉ là 127.0.0.1 chứ không phải * hay 0.0.0.0, nhờ tham số --bind 127.0.0.1.
Bước 5. Làm client: mở trang bằng trình duyệt
Mở trình duyệt, vào http://127.0.0.1:8080. Bạn thấy dòng "Xin chao tu may cua toi". Lúc này:
http://127.0.0.1:8080, trình duyệt (client) và Python (server) đều ở trong máy bạn. Gói tin không rời máy.- Trình duyệt là client, dùng một port tạm do hệ điều hành chọn.
- Python là server, lắng nghe ở port 8080.
- Hai bên đều ở cùng một máy, nói chuyện qua địa chỉ loopback
127.0.0.1.
Quay lại Terminal A (hoặc cửa sổ A), server đã in nhật ký của lần truy cập:
127.0.0.1 - - [19/Oct/2026 20:05:38] "GET / HTTP/1.1" 200 -| Phần | Ý nghĩa |
|---|---|
127.0.0.1 | IP của client (ở đây là chính máy bạn). |
"GET / HTTP/1.1" | Client xin trang chủ / bằng phương thức GET. |
200 | Mã trả lời: thành công. (404 là không tìm thấy.) |
Nếu có dòng 404 cho /favicon.ico, đó là trình duyệt tự hỏi biểu tượng tab; bỏ qua.
Bước 6. Tắt server và xác nhận cửa đã đóng
Về Terminal A (cửa sổ A), nhấn Ctrl + C. Dấu nhắc lệnh quay lại. Chạy lại lệnh ở bước 4 trong Terminal B: lần này không còn dòng nào. Cửa 8080 đã đóng, bề mặt tấn công trở về như lúc đầu. Ngoài đời, đây là thói quen cần có: dịch vụ không dùng thì tắt.
--bind 127.0.0.1 khi chưa cầnKhông có tham số này, Python lắng nghe ở mọi địa chỉ. Khi đó bất kỳ ai cùng Wi-Fi gõ http://IP-của-bạn:8080 đều đọc được mọi file trong thư mục đó. Dịch vụ thử nghiệm nên giữ ở 127.0.0.1.BÀI TẬP 5 · 7 PHÚT
Đọc danh sách cổng đang mở của máy bạn
Chạy lại lệnh "trước" ở bước 1 trên máy của bạn (khi chưa bật server), rồi trả lời:
- Có bao nhiêu dòng lắng nghe ở mọi địa chỉ (
*,0.0.0.0hoặc[::]) và bao nhiêu dòng chỉ ở127.0.0.1? - Chọn một dòng mở cho cả mạng, tìm tên chương trình (cột COMMAND hoặc qua PID). Bạn có biết nó làm gì không?
- Vì sao server Python ở bước 3 không thể bị máy khác trong cùng Wi-Fi truy cập?
Xem đáp án
- Số liệu tùy máy. Máy cá nhân thường có vài dòng mở cho cả mạng (dịch vụ hệ điều hành, chia sẻ file/máy in) và nhiều dòng chỉ ở
127.0.0.1. - Nếu không biết chương trình làm gì, tra tên trên Internet trước khi kết luận gì. Một dịch vụ lạ mở cho cả mạng là đáng để hỏi người quản trị.
- Vì
--bind 127.0.0.1khiến Python chỉ lắng nghe ở địa chỉ loopback, địa chỉ này không tồn tại với máy khác (127.0.0.1 của họ là chính họ).
Ôn lại bằng một bảng
5 phútMỗi khái niệm trong bài đều có một hình ảnh đời thường đi kèm. Khi gặp từ lạ, hãy nhớ lại hình ảnh đó:
| Khái niệm | Giống như | Ví dụ trong bài |
|---|---|---|
| Client | Khách gọi món | Trình duyệt |
| Server | Nhà bếp chờ và làm món | Chương trình web, Python http.server |
| IP | Địa chỉ nhà | 192.168.1.10 |
| Prefix /24, mask | Tên phố (ba số đầu) và số nhà (số cuối) | 192.168.1 | .10; 255.255.255.0 |
| Port | Số cửa, số phòng | 443, 22, 8080 |
| Router, gateway | Cổng ra khỏi khu phố | 192.168.1.1 |
| IP riêng, IP công cộng | Số phòng nội bộ, địa chỉ tòa nhà | 192.168.1.10, 198.51.100.25 |
| NAT | Phòng thư đóng dấu địa chỉ tòa nhà và ghi sổ | 192.168.1.10:51514 ⇄ 198.51.100.25:62001 |
| Loopback | Tự nói chuyện với chính mình | 127.0.0.1 |
| Lắng nghe | Cửa đang mở chờ khách | 127.0.0.1:8080 (LISTEN) |
Về bảo mật, quản trị viên nên biết máy mình đang dùng giao diện nào, đang lắng nghe port nào và ở địa chỉ nào, và dịch vụ nào thật sự cần mở ra ngoài. Bài 6 nói về việc kiểm soát điều đó bằng tường lửa và mã hóa.
Tóm tắt
- gửi yêu cầu, xử lý. Đó là vai trò của chương trình, không phải loại máy.
- chọn máy, chọn chương trình. Một kết nối được xác định bằng IP và port nguồn, IP và port đích.
- Số port chỉ là quy ước; không chứng minh dịch vụ phía sau là gì.
- /24 (hay 255.255.255.0) cho biết ba số đầu là phần mạng. Cùng phần mạng thì gửi thẳng, khác thì qua .
- Dữ liệu ra khỏi qua ; các thiết bị trên đường có thể thấy IP và port.
- đổi IP riêng thành IP công cộng khi đi ra và tra sổ khi về; máy chủ ngoài Internet không thấy IP riêng của bạn. NAT không phải tường lửa.
- Dịch vụ nên ở 127.0.0.1 nếu chỉ dùng trong máy. Mỗi dịch vụ lắng nghe từ mạng làm tăng bề mặt tấn công; dịch vụ không dùng thì tắt.
Tự kiểm tra · 6 câu có giải thích +
Ghi chú cá nhân +
Tự lưu trên trình duyệt. Không nhập thông tin bí mật.