Hướng dẫn thao tác với mạng cho người dùng Linux: 11 câu lệnh cần biết

Quản Trị Mạng - Terminal trên Linux cũng giống như cmd trên Windows, nó là môi trường dòng lệnh cho phép người dùng tương tác với hệ thống thông qua các câu lệnh. Nhưng cách lệnh trên terminal nhiều hơn và cũng không giống lệnh trên cmd của Windows. Vì thế, nếu mới bắt đầu sử dụng hệ điều hành này bạn sẽ phải học các lệnh terminal trên Linux. [Mới sử dụng Linux nên dùng distro nào?]

Linux hỗ trợ các câu lệnh cho người sử dụng khi muốn 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). Dưới đây là một số câu lệnh Linux thông dụng để làm việc với mạng, mời các bạn tham khảo.

Lệnh thống kê mạng trên Linux

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. 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.

Curl-O website.com/file
Wget website.com/file

Lệnh curl trên Linux

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

Lệnh ping trên Linux

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

Lệnh tracepath trên Linux

mtr

Lệnh mtr là sự kết hợp pingtracepath 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

Lệnh mtr trên Linux

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

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 và ngược lại, nhập vào địa chỉ IP khi muốn xem tên miền đi kèm.

Host howtogeek.com

Host 208.43.115.82

Lệnh host sẽ thực hiện tìm kiếm DNS

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

Lệnh whois cung cấp bản ghi từ whois server

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 hay chỉ xem trạng thái một giao diện cụ thể.

ifplugstatus

ifplugstatus eth0

Lệnh ifplugstatus để kiểm tra dây mạng có được cắm không

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.

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. 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

ifconfig eth0

Lệnh ifconfig trên Linux

ifdown và ifup

Câu lệnh ifdownifup 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

Lệnh ifdown cho ubuntu

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.

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

Lệnh dhclient giúp làm mới địa chỉ IP trên máy

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.

Lệnh netstat cung cấp bảng thống kê trạng thái

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ở.

Lệnh netstat -p trên Linux

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.

Lệnh netstat -s

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

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

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

Trên đây là các câu lệnh thông dụng để thao tác với mạng mà Linux hỗ trợ người sử dụng. Thông qua các câu lệnh này, người sử dụng có thể dễ dàng kiểm tra tìm sự cố hay các thông tin liên quan đến mạng.

Bạn có thể tham khảo thêm các lệnh Linux cơ bản khác tại đây: Những lệnh Linux cơ bản ai cũng cần biết

Thứ Bảy, 05/06/2021 12:08
4,515 👨 45.967
0 Bình luận
Sắp xếp theo
    ❖ Linux