Linux, giống như các hệ điều hành tiên tiến khác, hỗ trợ giao tiếp qua mạng. Trong Linux, tất cả cài đặt được lưu trữ trong các file có thể truy cập được. Bằng cách này, một số file nhất định có thể được chỉnh sửa và các cài đặt cần thiết có thể được thực hiện dễ dàng. Bạn có thể dễ dàng quản lý các lệnh được sử dụng cho cài đặt mạng và DNS từ màn hình lệnh.
Trong bài viết này, bạn sẽ tìm thấy thông tin về các lệnh quản lý mạng cơ bản được sử dụng nhiều nhất trong Linux và cách chỉnh sửa cài đặt DNS.
1. Kết nối mạng và cấu hình IP: ifconfig
Lệnh ifconfig cho phép bạn kiểm tra và thay đổi kết nối mạng và cài đặt cấu hình IP có sẵn trong hệ thống.
ifconfig
Đầu tiên, bạn xem thông tin eth0. eth0 là phần hiển thị thông tin về card Ethernet của bạn. Nếu các card Ethernet khác được kết nối với hệ thống, chúng sẽ có tên tương ứng là eth1 và eth2.
lo đại diện cho chính máy tính, tức là localhost.
Nếu bạn đang sử dụng môi trường mạng không dây, bạn cũng có thể xem thông tin wlan0. wlan0 có nghĩa là card mạng không dây.
Thay vì sử dụng lệnh ifconfig theo cách này, bạn có thể liệt kê từng thông tin mong muốn. Ví dụ, nếu bạn chỉ muốn liệt kê thông tin card Ethernet, lệnh ifconfig eth0 là đủ.
ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe00::000:00xx:xx00:0x00 prefixlen 64 scopeid 0x20<link>
ether 08:00:00:00:0x:00 txqueuelen 1000 (Ethernet)
RX packets 11 bytes 3310 (3.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 25 bytes 3050 (2.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ví dụ, bạn đã thấy ở trên rằng địa chỉ IP cục bộ của eth0 là 10.0.2.15. Để thay đổi địa chỉ IP này thành 10.0.2.13, hãy nhập lệnh sau:
sudo ifconfig eth0 10.0.2.13
Với ifconfig, bạn có thể thay đổi thông tin ở đây, cũng như điều chỉnh các thẻ thông tin mà bạn gặp trong đầu ra. Lệnh ifconfig card_name down có thể xóa thẻ mong muốn khỏi phần hiển thị, bạn có thể hiển thị lại thẻ này với lệnh ifconfig card_name up.
sudo ifconfig lo down
Như có thể thấy từ đầu ra, tham số down làm cho thẻ lo bây giờ không thể nhìn thấy.
sudo ifconfig lo up
2. Một loại cơ chế điều khiển: ping
Lệnh ping kiểm tra xem giao tiếp có được thiết lập giữa mục tiêu và hệ thống của bạn hay không. Ví dụ, bạn có thể truy vấn tốc độ giao tiếp giữa bạn và Google.
ping google.com
Trong khi thực hiện việc này, tác giả bài viết đã kết thúc quá trình này bằng tổ hợp Ctrl + C sau gói truy vấn thứ 5. Nếu sử dụng một lệnh như ping -c 4 google.com, bạn chỉ gửi 4 gói truy vấn. Quá trình sẽ kết thúc sau khi số lượng gói truy vấn hết.
ping -c 4 google.com
PING google.com (216.58.206.174) 56(84) bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=111 time=79.0 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=111 time=73.5 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=111 time=72.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=111 time=75.1 ms
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3014ms
rtt min/avg/max/mdev = 72.710/75.089/79.030/2.432 ms
3. Bảng định tuyến IP: route
Lệnh route cho phép bạn xem nội dung của bảng định tuyến IP trên hệ thống. Bạn có thể gõ lệnh route -n trong console để thực hiện việc này.
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.1 0.0.0.0 UG 100 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
Địa chỉ gateway ở đây là địa chỉ chuyển tiếp được sử dụng khi truyền từ mạng cục bộ sang mạng Internet.
4. Theo dõi chuyển tiếp cho một mục tiêu cụ thể: traceroute
Lệnh traceroute cho bạn biết host nào gói được gửi đến một đích cụ thể đã đi qua. Lần này, hãy lấy địa chỉ đích www.makeuseof.com làm ví dụ.
traceroute www.makeuseof.com
traceroute to www.makeuseof.com (54.157.137.27), 30 hops max, 60 byte packets
1 10.0.2.1 (10.0.2.1) 0.430 ms 0.326 ms 0.414 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
Như bạn có thể thấy, để có thể được chuyển đến địa chỉ mong muốn, trước tiên, một yêu cầu được gửi đến địa chỉ 10.0.2.1. Bạn có thể sử dụng lệnh traceroute để xem các đường dẫn định tuyến như vậy và tìm hiểu bất kỳ sự cố định tuyến nào xảy ra trong mạng.
5. Thông tin domain: whois
Truy vấn whois chứa thông tin như khi domain được hình thành, thời hạn của domain là bao lâu, v.v... Hãy lấy google.com làm ví dụ về truy vấn whois.
whois google.com
Domain Name: GOOGLE.COM
Registry Domain ID: 2138514_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.markmonitor.com
Registrar URL: http://www.markmonitor.com
Updated Date: 2019-09-09T15:39:04Z
Creation Date: 1997-09-15T04:00:00Z
Registry Expiry Date: 2028-09-14T04:00:00Z
Registrar: MarkMonitor Inc.
Registrar IANA ID: 292
Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
Registrar Abuse Contact Phone: +1.2083895740
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
Name Server: NS1.GOOGLE.COM
Name Server: NS2.GOOGLE.COM
Name Server: NS3.GOOGLE.COM
Name Server: NS4.GOOGLE.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
Ngoài ra, bạn có thể tránh phải sử dụng màn hình lệnh bằng cách sử dụng các trang web tốt nhất để tra cứu thông tin whois miễn phí.
6. Nhận thông tin về địa chỉ mục tiêu: host
Lệnh host cho phép bạn lấy thông tin về địa chỉ đích. Với lệnh host, bạn có thể truy cập tên miền từ địa chỉ IP và địa chỉ IP từ tên miền.
7. Xem bản ghi DNS: dig
Lệnh dig (domain information groper) là một lệnh mạng Linux phổ biến được sử dụng để tra cứu các bản ghi DNS.
dig google.com
; <<>> DiG 9.17.21-1-Debian <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64917
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 177 IN A 216.58.206.174
;; Query time: 3 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Thu Apr 14 19:25:15 EDT 2022
;; MSG SIZE rcvd: 44
Ngoài ra, bạn có thể kiểm tra các bản ghi NS (Nameserver) bằng lệnh dig. Bạn có thể sử dụng lệnh -t NS cho việc này.
dig google.com -t NS
; <<>> DiG 9.17.21-1-Debian <<>> google.com -t NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41881
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN NS
;; ANSWER SECTION:
google.com. 70621 IN NS ns3.google.com.
google.com. 70621 IN NS ns2.google.com.
google.com. 70621 IN NS ns4.google.com.
google.com. 70621 IN NS ns1.google.com.
;; Query time: 3 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Thu Apr 14 19:34:38 EDT 2022
;; MSG SIZE rcvd: 100
8. Đối sánh địa chỉ IP-MAC: arp
Lệnh arp hiển thị các bảng lưu giữ ánh xạ địa chỉ IP-MAC.
arp
Address HWtype HWaddress Flags Mask Iface
10.0.2.1 ether 52:54:00:12:35:00 C eth0
10.0.2.3 ether 08:00:27:66:24:25 C eth0
9. Các kết nối do hệ thống thực hiện: tcpdump
Lệnh tcpdump cho phép bạn xem ngay các kết nối được tạo bởi hệ thống và các kết nối được thực hiện với hệ thống.
# tcpdump
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
19:44:59.746452 IP 10.0.2.15.48657 > homerouter.cpe.domain: 14329+ A? www.makeuseof.com. (37)
19:44:59.746574 IP 10.0.2.15.48657 > homerouter.cpe.domain: 39924+ AAAA? www.makeuseof.com. (37)
19:44:59.770573 IP 10.0.2.15.44391 > homerouter.cpe.domain: 44735+ A? content-signature-2.cdn.mozilla.net. (53)
19:44:59.770685 IP 10.0.2.15.44391 > homerouter.cpe.domain: 31664+ AAAA? content-signature-2.cdn.mozilla.net. (53)
Ngoài ra, nếu bạn muốn theo dõi các liên kết trực tiếp mà không cần phân giải địa chỉ, bạn có thể sử dụng lệnh tcpdump -n.
# tcpdump -n
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
19:47:41.327149 IP 10.0.2.15.43892 > 192.168.1.1.53: 44991+ A? content-signature-2.cdn.mozilla.net. (53)
19:47:41.327574 IP 10.0.2.15.43892 > 192.168.1.1.53: 46778+ AAAA? content-signature-2.cdn.mozilla.net. (53)
19:47:41.425041 IP 192.168.1.1.53 > 10.0.2.15.43892: 44991 5/0/0 CNAME d2nxq2uap88usk.cloudfront.net., A 18.66.248.5, A 18.66.248.40, A 18.66.248.112, A 18.66.248.105 (157)
19:47:41.425042 IP 192.168.1.1.53 > 10.0.2.15.43892: 46778 9/0/0 CNAME d2nxq2uap88usk.cloudfront.net., AAAA 2600:9000:224a:e400:a:da5e:7900:93a1, AAAA 2600:9000:224a:1c00:a:da5e:7900:93a1, AAAA 2600:9000:224a:9400:a:da5e:7900:93a1, AAAA 2600:9000:224a:8200:a:da5e:7900:93a1, AAAA 2600:9000:224a:c00:a:da5e:7900:93a1, AAAA 2600:9000:224a:8e00:a:da5e:7900:93a1, AAAA 2600:9000:224a:9a00:a:da5e:7900:93a1, AAAA 2600:9000:224a:a400:a:da5e:7900:93a1 (317)
19:47:42.470901 IP 10.0.2.15.44369 > 192.168.1.1.53: 28874+ A? safebrowsing.googleapis.com. (45)
10. Cài đặt DNS
So với các hệ điều hành khác, việc cài đặt DNS trên Linux khá dễ dàng. Để thực hiện việc này, bạn có thể thực hiện một số thay đổi đối với file etc/resolutionv.conf nơi lưu trữ thông tin DNS.
# cat etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1
Nếu muốn thêm DNS mới tại đây, bạn có thể sử dụng lệnh echo.
# echo nameserver 8.8.8.8 > etc/resolv.conf
# echo nameserver 8.8.4.4 >> etc/resolv.conf
Sau khi thực hiện các bổ sung này, khi bạn duyệt lại file etc/resolutionv.conf, bạn sẽ thấy rằng các thay đổi mong muốn đã được thực hiện.
# cat etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
Bên trong thư mục /etc/, có một file khác được gọi là hosts hoạt động như một domain nameserver. File này được kiểm tra khi thực hiện phân giải tên miền trong hệ thống.
# cat etc/hosts
127.0.0.1 localhost
127.0.1.1 kali
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Linux là một trong những hệ điều hành được sử dụng rộng rãi nhất. Biết các lệnh chính xác được sử dụng trong Linux sẽ rất có lợi trong việc tiết kiệm thời gian và công sức. Khi cấu hình mạng Linux và tìm kiếm bất kỳ sự cố nào có thể xảy ra trong mạng, bạn có thể sử dụng các lệnh mạng Linux dã nêu trên.