❤️ AZDIGI chính thức cập nhật hệ thống blog mới hoàn chỉnh. Tuy nhiên có thể một số bài viết bị sai lệch hình ảnh, hãy ấn nút Báo cáo bài viết ở cuối bài để AZDIGI cập nhật trong thời gian nhanh nhất. Chân thành cám ơn.

VPS thực chất là một máy tính nối mạng. Gần như mọi thứ bạn làm trên VPS đều liên quan đến mạng: SSH vào server là qua mạng, truy cập website là qua mạng, cập nhật phần mềm cũng qua mạng. Nên nếu chưa nắm được networking cơ bản, trước sau gì bạn cũng gặp rắc rối.

linux b9 networking

Bài này mình sẽ đi qua những thứ thiết yếu: xem thông tin mạng, tra DNS, kiểm tra kết nối, dùng curlwget, kiểm tra ports, và cách xử lý khi mạng có vấn đề.

Hầu hết lệnh diagnostic (ping, curl, dig, ss…) chạy giống nhau trên mọi distro. Phần khác biệt chủ yếu là cách cấu hình network, mình sẽ ghi rõ Ubuntu hay AlmaLinux ở những chỗ đó.

Ba thứ cần hiểu: IP, DNS, Port

Trước khi vào lệnh, mình nói nhanh về 3 khái niệm nền tảng mà bạn sẽ gặp xuyên suốt bài:

  • IP address: Địa chỉ của máy trên mạng. VPS của bạn có ít nhất một IP public (để người ngoài truy cập) và một IP private/loopback (127.0.0.1). Tương tự như số nhà vậy.
  • DNS: Hệ thống phân giải tên miền thành IP. Khi bạn gõ google.com, DNS sẽ dịch nó thành IP như 142.250.199.46 để máy tính biết đường kết nối. Giống như danh bạ điện thoại.
  • Port: Mỗi dịch vụ trên server lắng nghe ở một port. SSH dùng port 22, HTTP dùng port 80, HTTPS dùng port 443. Nếu IP là số nhà, thì port là số phòng trong ngôi nhà đó.

Ba thứ này liên quan chặt chẽ với nhau. Khi ai đó truy cập website của bạn, luồng đi sẽ là: trình duyệt tra DNS để lấy IP, kết nối tới IP đó trên port 443 (HTTPS), rồi server trả về nội dung. Nắm được luồng này thì khi mạng có vấn đề, bạn biết chỗ nào cần kiểm tra.

Xem thông tin mạng

Việc đầu tiên khi làm việc với networking trên VPS là xem server đang có những IP nào, gateway là gì. Đây là những lệnh bạn sẽ dùng thường xuyên.

ip addr, xem IP addresses

Lệnh ip addr (hoặc viết tắt ip a) hiển thị tất cả network interfaces và IP gắn với chúng:

ip addr

Output sẽ trông kiểu này:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet 103.57.220.15/24 brd 103.57.220.255 scope global eth0

Giải thích nhanh:

  • lo là loopback interface, luôn có IP 127.0.0.1. Đây là interface “nói chuyện với chính mình”, không liên quan đến mạng bên ngoài.
  • eth0 (hoặc ens3, ens18… tùy provider) là card mạng chính. IP 103.57.220.15/24 là IP public của VPS bạn. Phần /24 là subnet mask, nghĩa là 256 IP trong cùng dải mạng.

Nếu bạn thấy hướng dẫn cũ dùng ifconfig, lệnh đó đã bị thay thế bởi ip từ lâu rồi. Một số distro mới không cài sẵn ifconfig nữa. Cứ dùng ip addr cho chắc.

ip route, xem routing table

Routing table cho biết traffic đi đâu. Quan trọng nhất là default gateway, cái cổng mà mọi traffic ra ngoài đều đi qua:

ip route

Output:

default via 103.57.220.1 dev eth0
103.57.220.0/24 dev eth0 proto kernel scope link src 103.57.220.15

Dòng default via 103.57.220.1 nói rằng: mọi traffic không biết đi đâu sẽ gửi qua gateway 103.57.220.1. Nếu dòng này thiếu hoặc sai, VPS sẽ không ra được internet.

hostname -I, xem IP nhanh

Khi chỉ cần biết IP mà không muốn đọc output dài của ip addr:

hostname -I

Lệnh này in ra tất cả IP (không bao gồm loopback), ngắn gọn trên một dòng. Tiện khi cần copy IP nhanh.

DNS, tra cứu tên miền

DNS là một trong những thứ hay gây rắc rối nhất trên server. Website không load, email không gửi được, SSL không cấp được… rất nhiều vấn đề có nguồn gốc từ DNS. Nên biết cách tra DNS là kỹ năng cần thiết.

/etc/resolv.conf, DNS server của VPS

File này cho biết VPS đang dùng DNS server nào để phân giải tên miền:

cat /etc/resolv.conf

Output thường trông như thế này:

nameserver 8.8.8.8
nameserver 8.8.4.4

Đây là DNS của Google. Bạn cũng có thể thấy 1.1.1.1 (Cloudflare) hoặc DNS riêng của nhà cung cấp VPS. Nếu DNS server bị chết hoặc không phản hồi, VPS sẽ không phân giải được tên miền, dù mạng vẫn hoạt động bình thường.

Trên nhiều VPS, file /etc/resolv.conf được quản lý tự động bởi systemd-resolved hoặc DHCP client. Nếu bạn sửa trực tiếp, nó có thể bị ghi đè khi restart. Cách cấu hình đúng mình sẽ nói ở phần Network config bên dưới.

dig, tra DNS chi tiết

dig là công cụ mạnh nhất để tra DNS. Nó cho bạn đầy đủ thông tin về record, TTL, DNS server nào trả lời:

dig azdigi.com

Output của dig khá dài, nhưng phần quan trọng nhất là ANSWER SECTION:

;; ANSWER SECTION:
azdigi.com.        300    IN    A    103.57.220.15

Dòng này nói: domain azdigi.com trỏ về IP 103.57.220.15, record type A, TTL 300 giây (5 phút).

Một số cách dùng hữu ích:

# Tra record MX (mail)
dig azdigi.com MX

# Tra record NS (nameserver) dig azdigi.com NS

# Tra qua DNS server cụ thể (ví dụ Cloudflare) dig @1.1.1.1 azdigi.com

# Chỉ lấy kết quả ngắn gọn dig +short azdigi.com

dig không cài sẵn trên mọi VPS. Nếu chạy mà báo command not found:

# Ubuntu/Debian
sudo apt install dnsutils
# AlmaLinux/Rocky
sudo dnf install bind-utils

nslookup, tra DNS đơn giản

nslookup cho kết quả đơn giản hơn dig, dễ đọc hơn khi chỉ cần biết domain trỏ về đâu:

nslookup azdigi.com

Output:

Server:     8.8.8.8
Address:    8.8.8.8#53
Non-authoritative answer:
Name:   azdigi.com
Address: 103.57.220.15

Ngắn gọn, dễ hiểu. Server: 8.8.8.8 là DNS server đã trả lời, Non-authoritative answer nghĩa là kết quả lấy từ cache chứ không phải từ nameserver gốc.

host, tra DNS ngắn nhất

Nếu chỉ cần biết IP mà không muốn đọc output dài:

host azdigi.com

Output:

azdigi.com has address 103.57.220.15
azdigi.com mail is handled by 10 mail.azdigi.com.

Một dòng, đủ thông tin. Tiện khi cần check nhanh domain đã trỏ đúng chưa.

Kiểm tra kết nối mạng

Khi mạng có vấn đề, bạn cần kiểm tra từng lớp: server có ra internet không, đường đi có bị nghẽn không, public IP là gì. Đây là bộ công cụ cho việc đó.

ping, test kết nối cơ bản

ping gửi gói tin ICMP tới đích và đo thời gian phản hồi. Đây là lệnh đầu tiên bạn nên chạy khi nghi mạng có vấn đề:

ping google.com

Output:

PING google.com (142.250.199.46) 56(84) bytes of data.
64 bytes from 142.250.199.46: icmp_seq=1 ttl=118 time=1.23 ms
64 bytes from 142.250.199.46: icmp_seq=2 ttl=118 time=1.18 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms

Chú ý mấy con số:

  • time=1.23 ms: thời gian phản hồi. Dưới 10ms là rất tốt, 50-100ms là bình thường, trên 200ms là đáng lo.
  • 0% packet loss: không mất gói tin nào. Nếu thấy packet loss > 0%, mạng đang có vấn đề.
  • ttl=118: Time To Live, số hop tối đa gói tin đi qua. Không cần quan tâm lắm trong thực tế.

Trên Linux, ping chạy liên tục cho đến khi bạn nhấn Ctrl+C. Nếu muốn ping chỉ 5 lần rồi dừng:

ping -c 5 google.com

Nếu ping google.com không được nhưng ping 8.8.8.8 được, vấn đề nằm ở DNS chứ không phải mạng. Server ra được internet nhưng không phân giải được tên miền.

traceroute, xem đường đi của gói tin

traceroute cho biết gói tin đi qua những router nào trước khi đến đích. Hữu ích khi muốn biết mạng chậm ở đoạn nào:

traceroute google.com

Output:

traceroute to google.com (142.250.199.46), 30 hops max
 1  103.57.220.1    0.5 ms   0.4 ms   0.3 ms
 2  10.0.0.1        1.2 ms   1.1 ms   1.0 ms
 3  203.162.4.1     2.5 ms   2.3 ms   2.4 ms
 ...
 8  142.250.199.46  1.5 ms   1.4 ms   1.3 ms

Mỗi dòng là một hop (router trung gian). Nếu thấy dòng nào có * * *, nghĩa là router đó không phản hồi (có thể do firewall chặn ICMP, không nhất thiết là lỗi). Nếu latency tăng đột biến từ hop nào đó, vấn đề nằm ở đoạn đường đó.

Cài đặt nếu chưa có:

# Ubuntu/Debian
sudo apt install traceroute
# AlmaLinux/Rocky
sudo dnf install traceroute

mtr, ping + traceroute kết hợp

mtr là sự kết hợp giữa pingtraceroute. Nó liên tục gửi gói tin và hiển thị realtime packet loss cùng latency ở từng hop:

mtr google.com

Nó sẽ mở giao diện realtime, cập nhật liên tục. Rất tiện khi cần monitor mạng trong một khoảng thời gian. Nhấn q để thoát.

Nếu muốn xuất kết quả dạng text (ví dụ để gửi cho support):

mtr --report -c 10 google.com

Lệnh này chạy 10 vòng rồi in báo cáo. Gửi output này khi liên hệ nhà cung cấp VPS về vấn đề mạng, họ sẽ biết ngay vấn đề ở đâu.

curl ifconfig.me, xem public IP

ip addr cho bạn IP gắn trên interface, nhưng nếu VPS nằm sau NAT, IP đó có thể là IP private. Để xem IP public (IP mà thế giới bên ngoài thấy):

curl ifconfig.me

Lệnh này gọi một dịch vụ bên ngoài, dịch vụ đó sẽ trả về IP mà nó nhận request từ đó. Ngoài ifconfig.me, bạn cũng có thể dùng:

curl icanhazip.com
curl ipinfo.io/ip
curl api.ipify.org

curl, con dao đa năng

curl (viết tắt của “Client URL”) là một trong những công cụ mình dùng nhiều nhất trên server. Nó gửi HTTP request, kiểu như trình duyệt nhưng trên terminal. Debug API, test website, download file… đều dùng curl được hết.

GET request cơ bản

Gọi một URL và xem nội dung trả về:

curl https://example.com

Lệnh này tương đương việc mở URL trong trình duyệt, nhưng thay vì render trang web thì nó in ra HTML source code. Hữu ích khi muốn kiểm tra website có phản hồi không mà không cần mở trình duyệt.

Chỉ xem headers

Nhiều khi bạn không cần nội dung trang, chỉ cần biết server trả về status code gì, dùng web server nào, có redirect không:

curl -I https://azdigi.com

Output:

HTTP/2 200
server: nginx
content-type: text/html; charset=UTF-8
cache-control: max-age=3600
...

Từ đây bạn biết: server trả 200 OK, dùng nginx, content type là HTML. Nếu thấy 301 hoặc 302, website đang redirect.

Download file

Dùng -o (chữ o nhỏ) để lưu output vào file:

# Lưu với tên tự chọn
curl -o wordpress.zip https://wordpress.org/latest.zip
# Lưu với tên gốc từ URL
curl -O https://wordpress.org/latest.zip

-o (chữ nhỏ) cho phép đặt tên file, -O (chữ hoa) tự lấy tên từ URL. Thêm -L nếu URL có redirect:

curl -L -O https://example.com/download

POST request

Gửi dữ liệu đến server, thường dùng khi test API:

# POST form data
curl -X POST -d "user=admin&pass=123456" https://example.com/login
# POST JSON data
curl -X POST -H "Content-Type: application/json" \
  -d '{"user":"admin","pass":"123456"}' \
  https://example.com/api/login

-X POST chỉ định method, -d là data gửi đi, -H thêm header. Đây là những thứ bạn sẽ dùng nhiều khi debug API hoặc webhook.

Xem status code

Khi cần biết website trả về mã gì mà không muốn xem hết nội dung:

curl -s -o /dev/null -w "%{http_code}" https://azdigi.com

Output chỉ là một con số: 200, 301, 404, 500… Giải thích:

  • -s: silent mode, không hiện progress bar
  • -o /dev/null: bỏ nội dung response (không in ra màn hình)
  • -w "%{http_code}": in ra status code

Cái này rất tiện khi viết script monitor website. Ví dụ check xem site có trả 200 không:

STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://azdigi.com)
if [ "$STATUS" != "200" ]; then
  echo "Website down! Status: $STATUS"
fi

wget, download chuyên dụng

wget chuyên về download. Nếu curl là con dao đa năng thì wget là cái kìm chuyên dụng cho việc tải file. Điểm mạnh của wget là hỗ trợ resume download và download recursive (tải cả thư mục).

Download file

wget https://wordpress.org/latest.zip

wget tự động lưu file với tên gốc từ URL và hiển thị progress bar. Không cần thêm option gì, cứ paste URL vào là xong.

Resume download

Đang tải file lớn mà bị đứt mạng? Dùng -c để tiếp tục từ chỗ đã tải:

wget -c https://example.com/large-file.tar.gz

wget sẽ kiểm tra file đã tải được bao nhiêu và tiếp tục từ đó. Cực kỳ tiện khi tải file vài GB trên server có mạng không ổn định.

Download recursive

Tải toàn bộ nội dung từ một URL, bao gồm cả các link con:

wget -r -np -l 1 https://example.com/files/

Giải thích:

  • -r: recursive, tải theo các link
  • -np: no parent, không tải ngược lên thư mục cha
  • -l 1: giới hạn depth 1 level (tránh tải cả internet)

Cẩn thận với wget -r mà không giới hạn depth. Nếu không có -l, wget sẽ đi theo tất cả link nó tìm thấy. Trên một trang web lớn, bạn có thể tải cả triệu trang mà không hay biết.

curl vs wget, dùng cái nào?

Nói ngắn gọn:

  • curl: khi cần tương tác HTTP (test API, xem headers, POST data, debug). curl hỗ trợ nhiều protocol hơn và linh hoạt hơn.
  • wget: khi cần download file đơn thuần, nhất là file lớn cần resume hoặc tải cả thư mục.

Trong thực tế, mình dùng curl nhiều hơn hẳn. Nhưng khi cần tải file nặng trên server, wget -c vẫn là lựa chọn số một.

Ports và kết nối

Mỗi dịch vụ trên server lắng nghe trên một port. Biết cách xem port nào đang mở, dịch vụ nào đang listen là kỹ năng quan trọng khi quản lý VPS.

ss -tlnp, xem port đang listen

ss là công cụ thay thế netstat (cũ, chậm). Để xem tất cả port đang listen:

ss -tlnp

Giải thích các flag:

  • -t: chỉ TCP
  • -l: chỉ LISTEN (đang chờ kết nối)
  • -n: hiện số port thay vì tên dịch vụ
  • -p: hiện process đang dùng port đó

Output:

State    Recv-Q   Send-Q   Local Address:Port    Peer Address:Port   Process
LISTEN   0        128      0.0.0.0:22             0.0.0.0:*          users:(("sshd",pid=1234))
LISTEN   0        511      0.0.0.0:80             0.0.0.0:*          users:(("nginx",pid=5678))
LISTEN   0        511      0.0.0.0:443            0.0.0.0:*          users:(("nginx",pid=5678))
LISTEN   0        70       127.0.0.1:3306         0.0.0.0:*          users:(("mysqld",pid=9012))

Từ output này bạn đọc được:

  • SSH (sshd) đang listen trên port 22, chấp nhận kết nối từ mọi IP (0.0.0.0)
  • Nginx listen trên port 80 và 443 (HTTP và HTTPS)
  • MySQL listen trên port 3306, nhưng chỉ từ 127.0.0.1 (localhost). Nghĩa là chỉ các ứng dụng trên cùng server mới kết nối được MySQL, bên ngoài không vào được. Đây là cấu hình bảo mật đúng.

ss -tunap, tất cả connections

Nếu muốn xem tất cả kết nối đang hoạt động (không chỉ LISTEN):

ss -tunap

Thêm -u để bao gồm cả UDP, bỏ -l để xem mọi trạng thái. Output sẽ dài hơn, bạn sẽ thấy các trạng thái:

  • LISTEN: đang chờ kết nối mới
  • ESTABLISHED: kết nối đang hoạt động (ví dụ ai đó đang SSH vào, hoặc trình duyệt đang tải trang)
  • TIME-WAIT: kết nối vừa đóng, đang chờ timeout. Bình thường, không cần lo.
  • CLOSE-WAIT: phía remote đã đóng kết nối nhưng ứng dụng local chưa xử lý. Nếu thấy nhiều CLOSE-WAIT, có thể ứng dụng bị bug.

Ports quan trọng cần nhớ

Đây là những port bạn sẽ gặp thường xuyên khi quản lý VPS:

  • 22: SSH. Port này mà không listen thì bạn không SSH vào được.
  • 80: HTTP. Web server (nginx, Apache) listen ở đây.
  • 443: HTTPS. Web server với SSL/TLS.
  • 3306: MySQL/MariaDB.
  • 5432: PostgreSQL.
  • 6379: Redis.
  • 25/587: SMTP (gửi email).

Khi gặp lỗi “Connection refused” trên port nào đó, chạy ss -tlnp để xem port đó có đang listen không. Nếu không listen thì dịch vụ chưa chạy hoặc đang listen trên port khác.

Cấu hình network

Phần này là chỗ Ubuntu và AlmaLinux khác nhau rõ nhất. Ubuntu dùng Netplan, AlmaLinux dùng NetworkManager. Mỗi cái có cách cấu hình riêng.

Ubuntu, Netplan

Ubuntu từ 18.04 trở đi dùng Netplan để quản lý network. Config nằm trong thư mục /etc/netplan/, thường là file YAML có tên kiểu 01-netcfg.yaml hoặc 50-cloud-init.yaml.

Xem config hiện tại:

cat /etc/netplan/*.yaml

Ví dụ config với static IP:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 103.57.220.15/24
      routes:
        - to: default
          via: 103.57.220.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Ví dụ config với DHCP (tự động nhận IP):

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true

Sau khi sửa file, áp dụng bằng:

sudo netplan apply

Cẩn thận khi sửa network config qua SSH. Nếu cấu hình sai IP hoặc gateway, bạn sẽ mất kết nối ngay lập tức và không SSH lại được. Trước khi sửa, nên dùng sudo netplan try. Lệnh này áp dụng config mới và tự động rollback sau 120 giây nếu bạn không xác nhận. An toàn hơn nhiều.

AlmaLinux, NetworkManager (nmcli / nmtui)

AlmaLinux (và Rocky, CentOS) dùng NetworkManager. Có hai cách cấu hình: nmcli (command line) và nmtui (giao diện text).

Xem thông tin connection hiện tại:

# Liệt kê connections
nmcli connection show
# Xem chi tiết connection
nmcli connection show eth0

Đặt static IP bằng nmcli:

# Đặt IP
nmcli connection modify eth0 ipv4.addresses 103.57.220.15/24

# Đặt gateway nmcli connection modify eth0 ipv4.gateway 103.57.220.1

# Đặt DNS nmcli connection modify eth0 ipv4.dns "8.8.8.8 8.8.4.4"

# Chuyển từ DHCP sang static nmcli connection modify eth0 ipv4.method manual

# Áp dụng thay đổi nmcli connection up eth0

Dùng nmtui (giao diện interactive):

sudo nmtui

nmtui mở một giao diện text-based trong terminal, bạn dùng phím mũi tên để điều hướng. Chọn “Edit a connection” để sửa IP, DNS, gateway. Tiện hơn nmcli cho người mới vì nhìn trực quan hơn.

Static IP vs DHCP

Phần lớn VPS từ nhà cung cấp đã cấu hình sẵn static IP, bạn không cần sửa gì. Nhưng hiểu sự khác biệt vẫn cần thiết:

  • DHCP: Server tự nhận IP từ DHCP server. Tiện nhưng IP có thể thay đổi sau mỗi lần restart (tùy cấu hình). Thường dùng cho mạng nội bộ, testing.
  • Static IP: IP cố định, bạn tự cấu hình. VPS production luôn dùng static IP vì bạn cần IP không đổi để trỏ domain, cấu hình firewall, v.v.

Troubleshooting mạng

Đây là phần thực chiến nhất. Mình sẽ đi qua mấy tình huống hay gặp và cách xử lý.

Không ping được ra ngoài

Server không ra được internet? Kiểm tra theo thứ tự:

# 1. Ping gateway trước — mạng local có OK không?
ip route                          # xem gateway
ping -c 3 103.57.220.1            # ping gateway

# 2. Ping IP bên ngoài — có ra internet không? ping -c 3 8.8.8.8

# 3. Ping domain — DNS có hoạt động không? ping -c 3 google.com

Dựa vào kết quả:

  • Ping gateway fail: Vấn đề ở network config. Kiểm tra IP, gateway đã đúng chưa. Có thể card mạng chưa up.
  • Ping 8.8.8.8 OK nhưng ping google.com fail: DNS bị lỗi. Kiểm tra /etc/resolv.conf, thử đổi sang DNS khác (1.1.1.1, 8.8.8.8).
  • Tất cả đều ping OK nhưng vẫn không truy cập được: Có thể firewall chặn. Kiểm tra iptables -L hoặc firewall-cmd --list-all.

Website không truy cập được

Bạn deploy xong website nhưng truy cập bằng trình duyệt thì trắng trang hoặc “Connection refused”? Kiểm tra:

# Web server có đang chạy không?
systemctl status nginx          # hoặc apache2/httpd

# Port 80/443 có listen không? ss -tlnp | grep -E ':80|:443'

# Từ server, tự curl thử curl -I http://localhost curl -I https://yourdomain.com

# DNS domain có trỏ đúng IP server không? dig +short yourdomain.com

Các nguyên nhân thường gặp:

  • Nginx/Apache chưa start hoặc bị crash. Chạy systemctl start nginx.
  • Port 80/443 không listen. Xem lại config web server.
  • Firewall chặn port 80/443. Trên Ubuntu dùng ufw allow 80,443/tcp, trên AlmaLinux dùng firewall-cmd --add-service=http --add-service=https --permanent && firewall-cmd --reload.
  • Domain chưa trỏ DNS hoặc trỏ sai IP.

SSH chậm khi kết nối

Bạn SSH vào VPS mà phải chờ 10-20 giây mới hiện password prompt? Nguyên nhân phổ biến nhất là DNS reverse lookup.

Khi bạn kết nối SSH, server sẽ cố tra ngược IP của bạn thành hostname (reverse DNS lookup). Nếu DNS server chậm hoặc không phản hồi, SSH phải chờ timeout rồi mới tiếp tục.

Fix bằng cách tắt reverse lookup trong SSH config:

sudo nano /etc/ssh/sshd_config

Tìm hoặc thêm dòng:

UseDNS no

Restart SSH:

sudo systemctl restart sshd

SSH sẽ connect nhanh hơn nhiều sau khi tắt reverse lookup.

Checkpoint

Đến đây bạn đã nắm được những thứ cơ bản nhất về networking trên VPS. Thử chạy qua mấy bài tập nhỏ này để kiểm tra:

  1. Xem IP của VPS: Dùng ip addrcurl ifconfig.me. So sánh IP trên interface với public IP xem có giống nhau không.
  2. Tra DNS một domain: Dùng dig +short yourdomain.com để xem domain trỏ về đâu. Thử cả hostnslookup để so sánh output.
  3. curl test website: Chạy curl -I https://yourdomain.com xem status code và headers. Nếu trả 200 thì OK, nếu 301/302 thì xem nó redirect đi đâu.
  4. Xem ports đang listen: Chạy ss -tlnp và liệt kê xem server đang chạy những dịch vụ gì. Thử mapping port với dịch vụ: 22 = SSH, 80 = HTTP, 443 = HTTPS…

Nếu cả 4 bước trên đều chạy được và bạn hiểu output, bạn đã sẵn sàng cho bài tiếp theo. Networking trên Linux còn rất nhiều thứ sâu hơn (iptables, routing nâng cao, VLAN…), nhưng với VPS cơ bản thì bấy nhiêu là đủ dùng rồi.

Chia sẻ:
Bài viết đã được kiểm duyệt bởi AZDIGI Team

Về tác giả

Trần Thắng

Trần Thắng

Chuyên gia tại AZDIGI với nhiều năm kinh nghiệm trong lĩnh vực web hosting và quản trị hệ thống.

Hơn 10 năm phục vụ 80.000+ khách hàng

Bắt đầu dự án web của bạn với AZDIGI