Tiếp cận Cấu hình Mạng Linux cơ bản

Các tệp cấu hình mạng thông dụng
  • Tệp cấu hình card mạng ifcfg-ens* trong thư mục /etc/sysconfig/network-scripts/
  • Tệp /etc/resolv.conf
  • Tệp /etc/hosts
  • Tệp /etc/services
  1. /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost network-scripts]# cat ifcfg-ens33 
LOAI=MangEthernet  #Loại kết nối mạng
PHUONGPHAP_PROXY=khong          #Cấu hình IP tĩnh hoặc động
DUYCHIBROWSER=khong
KHOIDONG=dhcp
MACDUONGCHINH=co
LOI_IPV4=fatal
KHOIDONG_IPV6=co
TUONGPHAN_IPV6=co
MACDUONGCHINH_IPV6=co
LOI_IPV6=fatal
CHE_DO_TAO_DIACHI_IPV6=stable-privacy
TEN=ens33
ID_DUY_NHAT=27fe993c-0a7c-4975-8871-5e7a987bbea0         #UUID của card mạng
THIET_BI=ens33         #Tên thiết bị vật lý của card mạng
KHOIDONGHE=co           #Kích hoạt card mạng khi khởi động hệ thống
MAYCHU_DNS1="202.96.209.5"   #Địa chỉ IP của máy chủ DNS
MAC=00:0c:29:11:59:7c         #Địa chỉ MAC của card mạng
DIACHI_IP="192.168.0.2"            #Địa chỉ IP của card mạng
MASK="24"
CỔNGNGOẠI="192.168.0.1"             #Địa chỉ cổng mạng
PHATSONG=192.168.0.255             #Địa chỉ phát sóng mạng
MANGCONG=255.255.255.0          #Mạng con
MANG=192.168.0.0          #Địa chỉ mạng

Có thể thiết lập các lựa chọn BOOTPROTO sau:

  • none: Không cần giao thức khởi động
  • bootp: Sử dụng giao thức BOOTP
  • dhcp: Sử dụng DHCP để lấy IP động
  • static: Thiết lập IP tĩnh thủ công
  1. Tệp /etc/resolv.conf được trình phân giải tên miền (resolver, một thư viện giải quyết tên máy chủ thành địa chỉ IP) sử dụng, ví dụ:
[root@localhost ~]# cat /etc/resolv.conf
# Được tạo bởi NetworkManager
search localdomain
nameserver 192.168.64.2

Mô tả:

  • nameserver: Sử dụng địa chỉ IP được chỉ định làm máy chủ tên miền khi phân giải tên miền. Các máy chủ tên miền được truy vấn theo thứ tự xuất hiện trong tệp.
  • search: Đường tìm kiếm DNS, hậu tố tên miền mặc định khi phân giải tên không đầy đủ, cho phép sử dụng tên máy chủ ngắn thay vì tên miền đủ định dạng (FQDN)
  1. Tệp /etc/hosts: Khi không có máy chủ tên miền, tất cả các truy vấn mạng trên hệ thống được giải quyết qua tệp này để ánh xạ tên máy chủ thành địa chỉ IP. Tệp cấu hình này lưu trữ thông tin tương ứng giữa tên máy chủ và địa chỉ IP.
[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
# Cột ngoài cùng bên trái là địa chỉ IP, cột giữa là tên máy chủ, cột ngoài cùng bên phải là bí danh của máy chủ

  1. Tệp /etc/services: Là cơ sở dữ liệu ánh xạ tên dịch vụ với cổng dịch vụ, định nghĩa tên, loại giao thức, cổng của tất cả dịch vụ trong hệ thống Linux.
Các lệnh mạng thông dụng
  • traceroute: Hiển thị đường đi của gói dữ liệu đến máy chủ đích. Theo dõi đường đi của gói dữ liệu mạng, kích thước mặc định của gói IPv4 là 60 byte, người dùng có thể thiết lập thêm. Cú pháp lệnh: traceroute [tùy chọn] [tên máy chủ hoặc địa chỉ IP] [kích thước gói dữ liệu]
Tùy chọn Ý nghĩa
-F Không phân mảnh gói dữ liệu
-g<cổng> Định tuyến gói dữ liệu qua cổng chỉ định, tối đa 8 cổng IPv4 và 127 cổng IPv6
-I Sử dụng ICMP ECHO để theo dõi tuyến đường
-T Sử dụng TCP SYN để theo dõi tuyến đường
-m<TTL tối đa> Thiết lập số nhảy tối đa (TTL), mặc định là 30
-n Không giải quyết địa chỉ IP thành tên miền
-p<cổng> Thiết lập cổng đích để sử dụng
-r Bỏ qua định tuyến thông thường, gửi trực tiếp đến máy chủ kết nối mạng
-s<địa chỉ nguồn> Thiết lập địa chỉ IP của máy chủ cục bộ gửi gói dữ liệu
-t<tos> Thiết lập giá trị TOS của gói dữ liệu
-N<số lần> Thiết lập số lần thử đồng thời, mặc định là 16
-w<thời gian chờ> Thiết lập thời gian chờ phản hồi từ máy chủ từ xa
-U Sử dụng cổng cụ thể của UDP để theo dõi tuyến đường
-i<giao diện> Chỉ định giao diện mạng để hoạt động

Ví dụ: Theo dõi đường đi từ máy tính cục bộ đến trang web www.163.com

[root@localhost ~]# traceroute www.163.com
traceroute to www.163.com (111.3.84.42), 30 hops max, 60 byte packets
 1  gateway (192.168.64.2)  0.236 ms  0.275 ms  0.161 ms
 2  * * *
 3  * * *

Nhấn Ctrl+c để kết thúc theo dõi

  1. ifconfig: Hiển thị và cấu hình giao diện mạng, chẳng hạn như đặt địa chỉ IP, địa chỉ MAC, kích hoạt hoặc tắt giao diện mạng. Cú pháp lệnh: ifconfig [giao diện] [tùy chọn hoặc địa chỉ IP]
Tùy chọn Ý nghĩa
-a Hiển thị trạng thái tất cả các giao diện mạng
add<địa chỉ> Thiết lập địa chỉ IPv6 của thiết bị mạng
del<địa chỉ> Xóa địa chỉ IPv6 của thiết bị mạng
media<loại> Thiết lập loại phương tiện của thiết bị mạng
mtu<byte> Thiết lập đơn vị truyền tối đa (MTU) của thiết bị mạng
netmask<mạng con> Thiết lập mặt nạ mạng của thiết bị mạng
up Kích hoạt thiết bị mạng được chỉ định
down Tắt thiết bị mạng được chỉ định
hw<loại><địa chỉ phần cứng> Thiết lập địa chỉ phần cứng (MAC) của giao diện này
txqueuelen<độ dài> Thiết lập độ dài hàng đợi gửi của thiết bị
multicast Thiết lập dấu hiệu đa kênh trên giao diện

tunnel<địa chỉ> Tạo địa chỉ giao tiếp đường hầm giữa IPv4 và IPv6

Ví dụ: Cấu hình địa chỉ IP của card mạng eth0, đồng thời kích hoạt thiết bị này

[root@localhost ~]# ifconfig eth0 192.168.64.149 netmask 255.255.255.0 up

Phương pháp sử dụng lệnh ifconfig để đặt địa chỉ IP của card mạng sẽ không còn hiệu lực sau khi khởi động lại hệ thống, địa chỉ IP vẫn sẽ là địa chỉ cũ. Nếu cần thiết lập vĩnh viễn, thì cần sửa tệp /etc/sysconfig/network-scripts/ifcfg-ens33, thay đổi giá trị tham số IPADDR trong tệp. Ví dụ: Kích hoạt thiết bị card mạng eth0

[root@localhost ~]# ifconfig eth0 up

Thay đổi địa chỉ phần cứng MAC của card mạng eth0 thành

[root@localhost ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.64.148  netmask 255.255.255.0  broadcast 192.168.64.255
        inet6 fe80::93e0:500f:62fc:c2a0  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:11:59:7c  txqueuelen 1000  (Ethernet)
        RX packets 764  bytes 63379 (61.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 420  bytes 45262 (44.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# ifconfig eth0 hw ether 00:0C:29:18:2E:3D
[root@localhost ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.64.148  netmask 255.255.255.0  broadcast 192.168.64.255
        inet6 fe80::93e0:500f:62fc:c2a0  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:18:2e:3d  txqueuelen 1000  (Ethernet)
        RX packets 818  bytes 67587 (66.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 444  bytes 48434 (47.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  1. ping: Dùng để kiểm tra tính kết nối giữa máy tính đích. Thực thi lệnh ping sẽ sử dụng giao thức truyền ICMP gửi thông tin yêu cầu phản hồi, nếu máy chủ từ xa có chức năng mạng bình thường, sẽ phản hồi thông tin này, do đó biết được có đang hoạt động bình thường hay không.

Cú pháp lệnh: ping [tùy chọn] [mục tiêu]

Tùy chọn Ý nghĩa
-c<số lần hoàn thành> Thiết lập số lần phản hồi hoàn thành
-i<giây cách nhau> Thời gian chờ giữa mỗi gói dữ liệu (giây). Mặc định là một giây giữa mỗi gói dữ liệu
-n Chỉ xuất số, không tra cứu tên ký hiệu của địa chỉ máy chủ
-s<kích thước gói> Thiết lập số byte dữ liệu cần gửi. Giá trị mặc định là 56
-t<giá trị TTL> Thiết lập kích thước giá trị TTL
-v Hiển thị thông tin đầu ra chi tiết
-q Xuất ra yên tĩnh
-r Bỏ qua bảng định tuyến thông thường, gửi trực tiếp đến máy chủ trên giao diện liên kết
-W<thời gian chờ> Thời gian chờ một phản hồi, đơn vị là giây
-w<thời hạn> Thiết lập thời gian chờ, đơn vị là giây
-B Không cho phép ping thay đổi địa chỉ nguồn của bộ dò
-I<địa chỉ giao diện> Thiết lập địa chỉ nguồn là địa chỉ của giao diện được chỉ định
-R Ghi lại định tuyến

Ví dụ: Kiểm tra tính kết nối với máy tính 192.168.0.101, kích thước mỗi gói ICMP dữ liệu là 128 byte.

[root@localhost ~]# ping -s 128 192.168.0.101
PING 192.168.0.101 (192.168.0.101) 128(156) bytes of data.
136 bytes from 192.168.0.101: icmp_seq=1 ttl=128 time=0.586 ms
136 bytes from 192.168.0.101: icmp_seq=2 ttl=128 time=1.67 ms
136 bytes from 192.168.0.101: icmp_seq=3 ttl=128 time=1.28 ms
136 bytes from 192.168.0.101: icmp_seq=4 ttl=128 time=2.17 ms

  1. netstat: Dùng để hiển thị thông tin trạng thái mạng (ví dụ: biết kết nối mạng, bảng định tuyến, thống kê giao diện, kết nối ngụy trang và thành viên đa nhóm của hệ thống Linux này)

Cú pháp lệnh: netstat [tùy chọn] [trì hoãn]

Tùy chọn Ý nghĩa
-a Hiển thị tất cả socket
-i Hiển thị bảng giao diện
-l Hiển thị socket máy chủ đang giám sát
-M Hiển thị kết nối ngụy trang
-n Sử dụng địa chỉ IP trực tiếp, không giải quyết tên
-p Hiển thị PID và tên chương trình đang sử dụng Socket
-r Hiển thị thông tin bảng định tuyến
-s Hiển thị thông tin thống kê mạng (như SNMP)
-t Hiển thị tình trạng kết nối giao thức TCP
-u Hiển thị tình trạng kết nối giao thức UDP
-o Hiển thị bộ đếm thời gian
-g Hiển thị thành viên nhóm đa
-v Hiển thị thông tin chi tiết
-s Hiển thị thông tin thống kê mạng (SNMP)

Ví dụ: Hiển thị tình hình kết nối của cổng 22

[root@localhost ~]# netstat -antu|grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 192.168.64.148:22       192.168.64.1:53210      ESTABLISHED
tcp        0     52 192.168.64.148:22       192.168.64.1:53996      ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN 

  1. arp: Dùng để thêm, xóa và hiển thị mục nhập bộ nhớ đệm ARP. Cú pháp lệnh: arp [tùy chọn] [địa chỉ IP] [địa chỉ MAC]
Tùy chọn Ý nghĩa
-a Hiển thị tất cả mục nhập bộ nhớ đệm ARP hiện tại của máy chủ được chỉ định
-d Xóa mục nhập được chỉ định
-s Thiết lập mục nhập ARP mới
-n Không giải quyết tên
-v Hiển thị thông tin chi tiết
-i<giao diện> Chỉ định giao diện mạng

Ví dụ: Xem thông tin bộ nhớ đệm ARP của hệ thống

[root@localhost ~]# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
gateway                  ether   00:50:56:e2:37:1d   C                     eth0
192.168.64.1             ether   00:50:56:c0:00:08   C                     eth0
192.168.64.254           ether   00:50:56:e3:03:69   C                     eth0

  1. tcpdump: Là một trong những công cụ thu thập và phân tích dữ liệu mạng mạnh mẽ nhất trong hệ thống Linux, có thể chặn hoàn toàn đầu gói dữ liệu truyền trên mạng để phân tích. Nó hỗ trợ lọc theo tầng mạng, giao thức, máy chủ, mạng hoặc cổng, và cung cấp các câu lệnh logic như and, or, not để lọc thông tin. Cú pháp lệnh: tcpdump [tùy chọn] [biểu thức]
Tùy chọn Ý nghĩa
-w<tệp> Chỉ định ghi gói dữ liệu được nghe vào tệp để lưu trữ
-c<số lượng gói> Chỉ định số lượng gói dữ liệu cần nghe, tự động dừng khi đạt đến số lượng chỉ định
-p Không đặt giao diện ở chế độ hỗn hợp
-r<tệp> Đọc gói dữ liệu từ tệp
-n Chỉ định chuyển đổi tên miền trong mỗi gói dữ liệu nghe thành địa chỉ IP rồi hiển thị
-i<giao diện mạng> Chỉ định giao diện mạng cần nghe
-B<kích thước bộ đệm> Thiết lập kích thước bộ đệm bắt của hệ điều hành
-q Xuất ra yên tĩnh, in ít thông tin giao thức hơn
-A Chỉ định in mỗi gói dữ liệu nghe dưới dạng ký tự ASCII có thể nhìn thấy
-S Chỉ định in số thứ tự tuyệt đối TCP thay vì số thứ tự tương đối của mỗi gói dữ liệu nghe
-e Chỉ định in thông tin tầng liên kết của gói dữ liệu nghe, bao gồm MAC nguồn và MAC đích, cũng như giao thức tầng mạng
-s<độ dài gói> Chỉ định độ dài gói dữ liệu cần nghe
-t Không hiển thị dấu thời gian
-F<tệp> Sử dụng tệp làm đầu vào biểu thức lọc
-C<kích thước tệp> Kiểm tra kích thước tệp trước khi lưu trữ trực tiếp gói dữ liệu thô vào tệp. Nếu vượt quá, sẽ đóng tệp này, tạo một tệp mới để tiếp tục ghi gói dữ liệu thô; tên tệp mới giống với tên tệp được chỉ định, nhưng có thêm một số ở cuối, số này bắt đầu từ 1 và tăng lên khi có nhiều tệp mới được tạo. Đơn vị kích thước tệp là megabyte (1MB)
-M<mật khẩu> Nếu gói dữ liệu TCP có tùy chọn TCP-MD5, hãy chỉ định mật khẩu khóa công cộng để xác thực bản tóm tắt
-W<tổng số tệp> Sử dụng với tùy chọn -C, giới hạn số lượng tệp có thể mở, và khi dữ liệu tệp vượt quá giới hạn được thiết lập ở đây, sẽ thay thế tuần tự các tệp hiện tại, tương tự như một bộ nhớ đệm tệp. Đồng thời sẽ khiến đủ số 0 xuất hiện ở đầu mỗi tên tệp, điều này có thể giúp các tệp này được sắp xếp chính xác.
-y<loại liên kết dữ liệu> Thiết lập loại liên kết dữ liệu

Bắt gói dữ liệu đi qua giao diện mạng eth0

[root@localhost ~]# tcpdump -i eth0

Quản lý dịch vụ mạng
systemd

Trong systemd, dịch vụ, thiết bị, điểm gắn kết, v.v. được thống nhất gọi là đơn vị. Tất cả các đơn vị trong systemd bao gồm nhiều loại, tệp đơn vị dịch vụ có phần mở rộng là .service, tương tự như script shell, có thể xem, khởi động, dừng, khởi động lại, bật hoặc tắt dịch vụ bằng các tham số.

Tệp cấu hình của một đơn vị có thể mô tả dịch vụ hệ thống (.service), điểm gắn kết (.mount), socket (.sockets), thiết bị hệ thống (.device), phân vùng trao đổi (.swap), đường dẫn tệp (.path), mục tiêu khởi động (.target), bộ đếm do systemd quản lý (.timer), v.v.

Vị trí đặt tệp đơn vị của systemd có hai vị trí chính:

  • /usr/lib/systemd/system # Thư mục cài đặt tệp đơn vị mặc định của hệ thống
  • /etc/systemd/system # Thư mục đơn vị do quản trị viên hệ thống tạo và quản lý, có ưu tiên cao nhất.

Khi sử dụng systemctl để kiểm soát đơn vị, thường cần sử dụng tên đầy đủ của tệp đơn vị, bao gồm phần mở rộng (ví dụ: sshd.service). Nếu không chỉ định phần mở rộng, systemctl mặc định coi phần mở rộng là .service. Cú pháp lệnh: systemctl [tùy chọn] [lệnh đơn vị hoặc lệnh tệp đơn vị]

Tùy chọn Ý nghĩa
-r Hiển thị danh sách đơn vị của máy chủ và container cục bộ
-q Ngăn chặn đầu ra
-a Hiển thị tất cả đơn vị/tải đã tải, bao gồm dead/empty
-H<[user@]host> Hoạt động trên máy chủ từ xa
-t<loại> Liệt kê các đơn vị loại cụ thể, loại có thể chỉ định là service, mount, device hoặc socket, v.v.

Các lệnh đơn vị được mô tả trong bảng sau:

Lệnh đơn vị Mô tả
start<tên> Khởi động đơn vị
stop<tên> Dừng đơn vị
status<tên> Xem trạng thái đơn vị
restart<tên> Khởi động lại đơn vị
reload<tên> Tải một hoặc nhiều đơn vị
list-units<chế độ> Liệt kê các đơn vị đã tải
kill<tên> Gửi tín hiệu đến tiến trình của đơn vị
is-active<chế độ> Kiểm tra đơn vị có được kích hoạt không
is-failed<chế độ> Kiểm tra đơn vị có thất bại không
status<chế độ hoặc PID> Hiển thị trạng thái chạy của một hoặc nhiều đơn vị

Các lệnh tệp đơn vị được mô tả:

Lệnh tệp đơn vị Mô tả
list-unit-files<chế độ> Liệt kê tệp đơn vị đã cài đặt
enable<tên> Bật một hoặc nhiều tệp đơn vị
disable<tên> Tắt một hoặc nhiều tệp đơn vị
is-enabled<tên> Kiểm tra tệp đơn vị có được bật không

Ví dụ: Bật dịch vụ sshd, xem trạng thái hiện tại của dịch vụ sshd

[root@localhost ~]# systemctl start sshd.service
[root@localhost ~]# systemctl status sshd.service

Thiết lập dịch vụ sshd tự động khởi động khi khởi động máy, và tra cứu dịch vụ này có tự động khởi động khi khởi động máy không.

[root@localhost ~]# systemctl enable sshd.service
[root@localhost ~]# systemctl is-enabled sshd.service
enabled

Xem tất cả các dịch vụ đã tải

[root@localhost ~]# systemctl list-units -t service

Thẻ: linux cấu hình mạng hệ thống mạng giao diện mạng dịch vụ mạng

Đăng vào ngày 23 tháng 5 lúc 13:51