14 Câu lệnh Linux thông dụng để làm việc với mạng

Dưới đây là 14 câu lệnh Linux thông dụng để làm việc với mạng như tải file, chẩn đoán vấn đề về mạng, quản lý các giao diện mạng hay xem thống kê mạng trên giao diện dòng lệnh (command line) cho bạn đọc tham khảo.

1. curl và wget

Sử dụng lệnh curl hoặc wget để tải một file từ internet mà không cần đầu cuối.

  • Với lệnh curl, gõ curl-O đường dẫn tới file.
Curl-O website.com/file
  • Người sử dụng có thể sử dụng lệnh wget mà không cần thêm tùy chọn nào. File sẽ xuất hiện ở đường dẫn.
Wget website.com/file

14 Câu lệnh Linux thông dụng để làm việc với mạng (1)

2. ping

Lệnh ping gửi các gói ECHO_REQUEST tới địa chỉ chỉ định. Câu lệnh nhằm kiểm tra máy tính có thể kết nối với Internet hay một địa chỉ IP cụ thể nào đó hay không. Tuy nhiên có rất nhiều hệ thống được cấu hình để không hồi đáp với các lệnh ping.

Không giống lệnh ping trên Windows, câu lệnh ping trên Linux sẽ duy trì gửi các gói tin cho đến khi bạn kết thúc nó. Có thể định số lượng gói tối đa gửi đi bằng cách gõ thêm tùy chọn –c.
ping –c 4 google.com

14 Câu lệnh Linux thông dụng để làm việc với mạng (2)

3. Tracepath và traceroute

Lệnh tracepath cũng tương tự như traceroute nhưng nó không đòi hỏi các quyền quản trị. Nó cũng được cài đặt mặc định trên Ubuntu còn tracerout thì không. Lệnh tracepath lần dấu đường đi trên mạng tới một đích chỉ định và báo cáo về mỗi nút mạng (hop) dọc trên đường đi. Nếu gặp phải các vấn đề về mạng, lệnh tracepath có thể chỉ ra vị trí lỗi mạng.

Tracepath example.com

14 Câu lệnh Linux thông dụng để làm việc với mạng (3)

4.mtr

Lệnh mtr là sự kết hợp ping và tracepath trong một câu lệnh đơn lẻ. mtr sẽ gửi liên tục các gói và hiển thị thời gian ping cho mỗi nút mạng. Câu lệnh cũng giúp phát hiện một số vấn đề mạng. Trong trường hợp này, có thể thấy nút thứ 6 làm mất hơn 20% tổng số gói.

mtr howtogeek.com

14 Câu lệnh Linux thông dụng để làm việc với mạng (4)

Nhấn q hoặc Ctrl-C để thoát khi bạn thực hiện xong.

5. host

  • Lệnh host sẽ thực hiện tìm kiếm DNS. Nhập vào tên miền khi muốn xem địa chỉ IP đi kèm
Host howtogeek.com
  • Và ngược lại, nhập vào địa chỉ IP khi muốn xem tên miền đi kèm.
Host 208.43.115.82

14 Câu lệnh Linux thông dụng để làm việc với mạng (5)

6. whois

Lệnh whois sẽ đưa ra các bản ghi trên server whois (whois record) của website, vì vậy bạn có thể xem thông tin về người hay tổ chức đã đăng ký và sở hữu website đó.

whois example.com

14 Câu lệnh Linux thông dụng để làm việc với mạng (6)

7. ifplugstatus

Lệnh ifplugstatus giúp kiểm tra dây cáp có được cắm vào giao diện mạng hay không. Câu lệnh này không được cài đặt mặc định trên Ubuntu.

  • Sử dụng câu lệnh sau để cài đặt nó
sudo apt-get install ifplugd
  • Chạy các câu lệnh sau để xem trạng thái tất cả các giao diện
ifplugstatus
  • Hay chỉ xem trạng thái một giao diện cụ thể.
ifplugstatus eth0

14 Câu lệnh Linux thông dụng để làm việc với mạng (7)

link beat detected” nghĩa là dây cáp đã được cắm và “unplugged” tức dây cáp chưa được cắm.

8. ifconfig

Câu lệnh ifconfig có rất nhiều tùy chọn để cấu hình, điều chỉnh và dò lỗi trên các giao diện mạng hệ thống. Đây cũng là cách để xem nhanh các địa chỉ IP và các thông tin khác của giao diện mạng.

  • Gõ ifconfig để xem trạng thái các giao diện mạng hiện đang hoạt động bao gồm tên của chúng.
ifconfig
  • Bạn cũng có thể chỉ định tên một giao diện để xem thông tin trên duy nhất giao diện đó.
ifconfig eth0

14 Câu lệnh Linux thông dụng để làm việc với mạng (8)

9. ifdown và ifup

Câu lệnh ifdown và ifup giống như ifconfig up hay ifconfig down. Hai câu lệnh thực hiện bật hoặc tắt giao diện chỉ định. Điều này yêu cầu quyền quản trị nên bạn phải dùng thêm từ khóa sudo trên Ubuntu.

sudo ifdown eth0
sudo ifup eth0

14 Câu lệnh Linux thông dụng để làm việc với mạng (9)

Màn hình Linux sẽ báo lỗi khi được nhập những câu lệnh này. Nó thường sử dụng bộ NetworkManager cho phép quản lý giao diện mạng. Mặc dù vậy, các câu lệnh này vẫn sẽ hoạt động trên các server mà không cần dùng NetworkManager.

Nếu bạn thực sự cần cấu hình NetworkManager từ giao diện dòng lệnh, sử dụng câu lệnh nmcli.

10. dhclient

Lệnh dhclient giúp làm mới địa chỉ IP trên máy bằng cách giải phóng địa chỉ IP cũ và nhận một địa chỉ mới từ DHCP server. Công việc này yêu cầu quyền quản trị, vì vậy phải dùng thêm từ khóa sudo trên Ubuntu. Chạy dhclient để nhận địa chỉ IP mới hoặc sử dụng tùy chọn –r để giải phóng địa chỉ IP hiện tại.

sudo dhclient –r
sudo dhclient

14 Câu lệnh Linux thông dụng để làm việc với mạng (10)

11. netstat

  • Câu lệnh netstat đưa ra các thống kê khác nhau cho giao diện, bao gồm các socket mở và các bảng định tuyến.

14 Câu lệnh Linux thông dụng để làm việc với mạng (11)

  • Sử dụng câu lệnh netstat –p để xem các chương trình đi kèm với các socket mở.

14 Câu lệnh Linux thông dụng để làm việc với mạng (12)

  • Xem các thống kê chi tiết cho tất cả các cổng bằng câu lệnh netstat –s.

14 Câu lệnh Linux thông dụng để làm việc với mạng (13)

12. ip

Lệnh ip là một trong những lệnh cơ bản mà mọi quản trị viên sẽ cần trong công việc hàng ngày, từ thiết lập hệ thống mới và gán IP cho đến xử lý sự cố hệ thống hiện có. Lệnh ip có thể hiển thị thông tin địa chỉ, thao tác định tuyến, cộng với mạng hiển thị các thiết bị, interface và tunnel khác nhau.

Cú pháp như sau:

ip <OPTIONS> <OBJECT> <COMMAND>

OBJECT là phần quan trọng nhất và những thông tin sau được hỗ trợ (một số khác được bỏ qua cho ngắn gọn):

  • address - địa chỉ giao thức (IPv4 hoặc IPv6) trên thiết bị.
  • tunnel - tunnel qua IP
  • route - mục nhập bảng định tuyến
  • rule - quy tắc trong cơ sở dữ liệu chính sách định tuyến
  • vrf - quản lý thiết bị chuyển tiếp và định tuyến ảo
  • xfrm - quản lý các policy IPSec

Dưới đây là một số trường hợp sử dụng phổ biến cho lệnh ip.

  • Hiển thị các địa chỉ IP được chỉ định cho một interface trên server của bạn:
[root@server ~]# ip address show
  • Gán một IP cho một interface, ví dụ, enps03:
[root@server ~]# ip address add 192.168.1.254/24 dev enps03
  • Xóa IP trên một interface:
[root@server ~]# ip address del 192.168.1.254/24 dev enps03
  • Thay đổi trạng thái của interface bằng cách đưa interface eth0 trực tuyến:
[root@server ~]# ip link set eth0 up
  • Thay đổi trạng thái của interface bằng cách đặt interface eth0 ngoại tuyến:
[root@server ~]# ip link set eth0 down
  • Thay đổi trạng thái của interface bằng cách thay đổi MTU của eth0:
[root@server ~]# ip link set eth0 mtu 9000
  • Thay đổi trạng thái của interface bằng cách bật chế độ Promiscuous cho eth0:
[root@server ~]# ip link set eth0 promisc on
  • Thêm một tuyến mặc định (cho tất cả các địa chỉ) qua cổng cục bộ 192.168.1.254 có thể truy cập được trên thiết bị eth0:
[root@server ~]# ip route add default via 192.168.1.254 dev eth0
  • Thêm tuyến vào 192.168.1.0/24 qua gateway tại 192.168.1.254:
[root@server ~]# ip route add 192.168.1.0/24 via 192.168.1.254
  • Thêm một tuyến tới 192.168.1.0/24 có thể truy cập được trên thiết bị eth0:
[root@server ~]# ip route add 192.168.1.0/24 dev eth0
  • Xóa tuyến cho 192.168.1.0/24 qua gateway tại 192.168.1.254:
[root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254
  • Hiển thị tuyến được thực hiện cho IP 10.10.1.4:
[root@server ~]# ip route get 10.10.1.4

13. tcpdump

Lệnh tcpdump được thiết kế để bắt và hiển thị các gói tin.

Bạn có thể cài đặt tcpdump bằng lệnh dưới đây:

[root@server ~]# dnf install -y tcpdump

Trước khi bắt đầu bất kỳ quá trình nào, bạn cần biết tcpdump có thể sử dụng interface nào. Bạn sẽ cần sử dụng sudo hoặc có quyền truy cập root trong trường hợp này.

[root@server ~]# tcpdump -D

1 eth0
2 nflog
3 nfqueue
4 usbmon1
5 any
6 lo (Loopback)

Nếu muốn nắm bắt lưu lượng truy cập trên eth0, bạn có thể bắt đầu điều đó với đầu ra mẫu tcpdump -i eth0:

[root@server ~]# tcpdump -i eth0
[root@server ~]# tcpdump -i eth0 -c 10

Nắm bắt lưu lượng truy cập đến và từ một host

  • Bạn có thể lọc ra lưu lượng truy cập đến từ một host cụ thể. Ví dụ, để tìm lưu lượng truy cập từ và đi đến 8.8.8.8, hãy sử dụng lệnh:
[root@server ~]# tcpdump -i eth0 -c 10 host 8.8.8.8
  • Đối với lưu lượng đến từ 8.8.8.8, hãy sử dụng:
[root@server ~]# tcpdump -i eth0 src host 8.8.8.8
  • Đối với lưu lượng đi ra từ 8.8.8.8, hãy sử dụng:
[root@server ~]# tcpdump -i eth0 dst host 8.8.8.8

Nắm bắt lưu lượng truy cập đến và đi từ một mạng

Bạn cũng có thể nắm bắt lưu lượng truy cập đến và đi từ một mạng cụ thể bằng lệnh dưới đây:

[root@server ~]# tcpdump -i eth0 net 10.1.0.0 mask 255.255.255.0

Hoặc:

[root@server ~]# tcpdump -i eth0 net 10.1.0.0/24

Bạn cũng có thể lọc dựa trên nguồn hoặc đích.

Dựa trên nguồn (lưu lượng truy cập đến):

[root@server ~]# tcpdump -i eth0 src net 10.1.0.0/24

Dựa trên điểm đến (lưu lượng truy cập đi):

[root@server ~]# tcpdump -i eth0 dst net 10.1.0.0/24

Nắm bắt lưu lượng truy cập đến và đi từ số cổng

  • Chỉ nắm bắt lưu lượng truy cập cổng DNS 53:
[root@server ~]# tcpdump -i eth0 port 53
  • Đối với một host cụ thể:
[root@server ~]# tcpdump -i eth0 host 8.8.8.8 and port 53
  • Chỉ nắm bắt lưu lượng HTTPS:
[root@server ~]# tcpdump -i eth0 -c 10 host www.google.com and port 443
  • Nắm bắt tất cả các cổng ngoại trừ cổng 80 và 25:
[root@server ~]# tcpdump -i eth0 port not 53 and not 25

14. nslookup

Sử dụng tiện ích nslookup để truy vấn các name server Internet một cách tương tác. Sử dụng nó để thực hiện các truy vấn DNS và nhận tên miền, địa chỉ IP hoặc bất kỳ bản ghi DNS cụ thể nào khác.

Hãy xem xét các ví dụ phổ biến sau đây.

  • Để tìm bản ghi A của domain:
[root@server ~]# nslookup example.com
  • Kiểm tra các bản ghi NS của một domain:
[root@server ~]# nslookup -type=ns example.com
  • Tìm các bản ghi MX chịu trách nhiệm cho việc trao đổi email:
[root@server ~]# nslookup -query=mx example.com
  • Tìm tất cả các bản ghi DNS có sẵn của một domain:
[root@server ~]# nslookup -type=any example.com
  • Kiểm tra việc sử dụng một DNS server cụ thể (trong trường hợp này, hãy truy vấn bằng nameserver cụ thể ns1.nsexample.com):
[root@server ~]# nslookup example.com ns1.nsexample.com
  • Kiểm tra bản ghi DNS để xem các IP của một domain là một thực tế phổ biến, nhưng đôi khi bạn cần xác minh xem địa chỉ IP có liên quan đến một domain cụ thể hay không. Với mục đích đó, bạn cần một reverse DNS lookup.
[root@server ~]# nslookup 10.20.30.40

Hy vọng bài viết hữu ích cho bạn!

Nguồn: Quản trị mạng