Bạn có biết lệnh hostname là một công cụ cực kỳ quan trọng giúp bạn quản lý và nhận diện tên máy chủ trong môi trường Linux không? Đối với các quản trị viên hệ thống, đặc biệt là những người mới bắt đầu, việc chưa hiểu rõ cách sử dụng và vai trò của lệnh này có thể gây ra nhiều khó khăn trong việc quản lý mạng và dịch vụ. Một hostname không được cấu hình đúng cách có thể dẫn đến lỗi kết nối, khó khăn trong việc theo dõi và bảo trì hệ thống. Bài viết này của AZWEB sẽ là kim chỉ nam giúp bạn nắm vững mọi thứ về lệnh hostname, từ cách xem tên máy chủ, thay đổi tạm thời, thiết lập vĩnh viễn, cho đến các lưu ý quan trọng để đảm bảo hệ thống hoạt động ổn định và hiệu quả nhất.
Tổng quan về lệnh hostname và vai trò trong Linux
Để quản lý một hệ thống Linux hiệu quả, việc hiểu rõ các công cụ cơ bản là điều không thể thiếu. Lệnh hostname chính là một trong những công cụ nền tảng đó, đóng vai trò như “chứng minh nhân dân” cho máy chủ của bạn trong một thế giới mạng rộng lớn.
Lệnh hostname là gì?
Lệnh hostname là một tiện ích dòng lệnh trong các hệ điều hành tương tự Unix, bao gồm cả Linux. Chức năng chính và đơn giản nhất của nó là hiển thị hoặc thiết lập tên máy chủ (hostname) của hệ thống. Khi bạn gõ lệnh này mà không có bất kỳ tham số nào, nó sẽ trả về tên hiện tại của máy chủ.
Trong một hệ thống mạng, hostname là tên định danh duy nhất được gán cho một thiết bị. Tên này giúp con người dễ dàng nhận biết và ghi nhớ máy chủ hơn là một dãy địa chỉ IP phức tạp. Ví dụ, thay vì phải nhớ địa chỉ 192.168.1.101, bạn chỉ cần nhớ tên mail-server-hcm. Vai trò của nó không chỉ dừng lại ở việc định danh, mà còn là một phần cốt lõi của việc cấu hình mạng, giúp các dịch vụ và ứng dụng giao tiếp với nhau một cách chính xác.
Tầm quan trọng trong quản trị hệ thống
Việc quản lý và đặt tên máy chủ đúng cách có tầm quan trọng đặc biệt trong quản trị hệ thống. Một hostname được đặt tên rõ ràng và nhất quán giúp việc quản lý trở nên đơn giản hơn rất nhiều, đặc biệt khi bạn phải làm việc với hàng chục, thậm chí hàng trăm máy chủ.
.webp)
Cấu trúc mạng máy tính cần có hostname để định danh.
Hostname ảnh hưởng trực tiếp đến hoạt động của nhiều dịch vụ mạng quan trọng. Ví dụ, các máy chủ mail, máy chủ web (như Apache hay Nginx), và các hệ thống giám sát đều dựa vào hostname để xác định và giao tiếp với các máy khác trong mạng. Nếu hostname bị đặt sai hoặc trùng lặp, các dịch vụ này có thể hoạt động không chính xác, gây ra lỗi kết nối và làm gián đoạn hoạt động kinh doanh. Hơn nữa, trong các file log hệ thống, hostname thường được ghi lại để xác định nguồn gốc của các sự kiện. Một tên máy chủ rõ ràng sẽ giúp bạn nhanh chóng khoanh vùng và khắc phục sự cố khi cần thiết.
Cách sử dụng lệnh hostname để xem tên máy chủ hiện tại
Trước khi nghĩ đến việc thay đổi, bạn cần biết cách kiểm tra tên máy chủ hiện tại của mình. Đây là thao tác cơ bản nhất mà bất kỳ quản trị viên Linux nào cũng phải thành thạo. Lệnh hostname cung cấp nhiều cách để bạn xem thông tin này một cách nhanh chóng.
Câu lệnh cơ bản để hiển thị hostname
Cách đơn giản nhất để xem tên máy chủ của bạn là mở terminal và gõ lệnh sau:
hostname
Ngay lập tức, hệ thống sẽ trả về một dòng duy nhất chứa tên máy chủ hiện tại. Ví dụ, kết quả có thể là azweb-server hoặc ubuntu-dev. Đây là tên ngắn (short name) của máy, thường được sử dụng để nhận diện nhanh trong mạng nội bộ. Thao tác này cực kỳ hữu ích khi bạn đăng nhập vào một máy chủ mới và cần xác định ngay mình đang làm việc trên hệ thống nào.

Kết quả trả về khi sử dụng lệnh hostname cơ bản.
Hiển thị thêm thông tin tên miền và IP
Trong nhiều trường hợp, bạn không chỉ cần tên ngắn mà còn muốn biết thêm các thông tin chi tiết hơn về mạng. Lệnh hostname cung cấp các tùy chọn để bạn làm điều đó một cách dễ dàng.
Để xem tên miền đầy đủ (Fully Qualified Domain Name – FQDN), bạn có thể sử dụng tùy chọn -f:
hostname -f
Kết quả trả về sẽ có dạng ten-may-chu.ten-mien.com, ví dụ như azweb-server.azweb.vn. FQDN rất quan trọng vì nó định danh duy nhất máy chủ của bạn trên toàn bộ internet, không chỉ trong mạng cục bộ.
Nếu bạn muốn xem tất cả các địa chỉ IP được liên kết với máy chủ, hãy dùng tùy chọn -I (chữ i viết hoa):
hostname -I
Lệnh này sẽ liệt kê tất cả các địa chỉ IP (cả IPv4 và IPv6) mà máy chủ đang sử dụng, phân tách nhau bằng dấu cách. Điều này rất tiện lợi khi bạn cần kiểm tra nhanh cấu hình IP của máy mà không cần dùng đến các lệnh phức tạp hơn như ifconfig hay ip addr.
Các tùy chọn phổ biến khi sử dụng lệnh hostname
Lệnh hostname không chỉ dùng để xem tên máy chủ. Nó đi kèm với nhiều tham số (hay còn gọi là cờ hoặc tùy chọn) mạnh mẽ, cho phép bạn trích xuất các thông tin mạng cụ thể một cách nhanh chóng. Việc nắm vững các tùy chọn này sẽ giúp bạn làm việc hiệu quả hơn rất nhiều.
Các tham số thường dùng
Dưới đây là một số tham số phổ biến và hữu ích nhất mà bạn nên biết:
-s(--short): Hiển thị tên máy chủ ngắn. Đây là phần tên đứng trước dấu chấm đầu tiên trong tên miền đầy đủ. Về cơ bản, nó cho kết quả tương tự như khi gọi lệnhhostnamekhông có tham số.-d(--domain): Hiển thị tên miền DNS (Domain Name System) của máy chủ. Đây là phần còn lại của FQDN sau khi đã bỏ đi tên ngắn.-f(--fqdn,--long): Hiển thị tên miền đầy đủ (FQDN – Fully Qualified Domain Name).-i(--ip-address): Hiển thị địa chỉ IP được liên kết với hostname. Lưu ý rằng tùy chọn này chỉ hiển thị địa chỉ IP đầu tiên mà nó phân giải được, và không nên dùng cho các máy có nhiều giao diện mạng.-I(--all-ip-addresses): Hiển thị tất cả các địa chỉ IP được cấu hình trên tất cả các giao diện mạng của máy chủ. Đây là cách đáng tin cậy hơn để kiểm tra IP so với tùy chọn-i.

Sử dụng các tùy chọn khác nhau của lệnh hostname.
Giải thích ý nghĩa và cách áp dụng với từng tùy chọn
Mỗi tùy chọn phục vụ một mục đích riêng và rất hữu ích trong các tình huống cụ thể.
Bạn nên dùng -s khi nào? Khi bạn chỉ cần tên định danh của máy trong mạng nội bộ, ví dụ như trong các kịch bản tự động hóa hoặc script cần tham chiếu đến máy chủ mà không cần phần tên miền.
Khi nào thì -d trở nên hữu ích? Giả sử bạn đang quản lý nhiều máy chủ trong cùng một tên miền, ví dụ dev.azweb.vn. Lệnh hostname -d sẽ nhanh chóng xác nhận rằng máy chủ đó thuộc về đúng miền DNS mà bạn mong đợi.
Tùy chọn -f là cực kỳ quan trọng khi cấu hình các dịch vụ cần định danh toàn cục, chẳng hạn như máy chủ email hoặc khi thiết lập chứng chỉ SSL. Các dịch vụ này yêu cầu FQDN để hoạt động chính xác.
Sử dụng -I khi bạn cần kiểm tra nhanh tất cả các địa chỉ IP của một máy chủ để phục vụ cho việc cấu hình tường lửa, DNS hoặc kiểm tra kết nối mạng. Ví dụ, một máy chủ web có thể có một IP công khai và một IP riêng tư, và -I sẽ hiển thị cả hai.
Cách thay đổi tên máy chủ tạm thời bằng lệnh hostname
Đôi khi, bạn có thể cần thay đổi tên máy chủ ngay lập tức cho một mục đích cụ thể nào đó, chẳng hạn như để chạy thử nghiệm một kịch bản hoặc để tránh xung đột tên tạm thời trong một mạng. Linux cho phép bạn làm điều này một cách nhanh chóng, nhưng cần lưu ý rằng thay đổi này chỉ có hiệu lực trong phiên làm việc hiện tại.
Lệnh đổi hostname tạm thời
Để thay đổi hostname tạm thời, bạn cần có quyền quản trị viên (root hoặc sudo). Cú pháp của lệnh rất đơn giản:
sudo hostname tên_mới
Ví dụ, nếu bạn muốn đổi tên máy chủ thành test-server, bạn sẽ chạy lệnh:
sudo hostname test-server
Sau khi chạy lệnh này, nếu bạn gõ lại hostname, bạn sẽ thấy tên mới đã được áp dụng ngay lập tức. Tuy nhiên, điều quan trọng cần nhớ là sự thay đổi này không được lưu vào bất kỳ tập tin cấu hình nào. Nó chỉ tồn tại trong bộ nhớ của kernel (Kernel Linux). Điều này có nghĩa là ngay sau khi bạn khởi động lại máy chủ, tên máy chủ cũ sẽ được khôi phục.

Minh họa thay đổi hostname tạm thời trong terminal.
Ảnh hưởng khi đổi tên tạm thời
Việc đổi tên tạm thời rất hữu ích trong một số tình huống thực tế. Chẳng hạn, bạn đang thiết lập một cụm máy chủ và muốn nhanh chóng gán các tên tạm thời như node-1, node-2 để kiểm tra kịch bản cài đặt tự động trước khi áp dụng tên vĩnh viễn. Hoặc khi bạn nhân bản một máy ảo (VirtualBox là gì) và cần đổi tên ngay lập tức để tránh xung đột IP hoặc hostname trong mạng trước khi tiến hành cấu hình đầy đủ.
Tuy nhiên, phương pháp này cũng có những hạn chế và rủi ro. Vì thay đổi không được lưu lại, nó có thể gây nhầm lẫn nếu bạn quên rằng đây chỉ là tên tạm thời. Các dịch vụ đang chạy có thể không nhận diện được sự thay đổi ngay lập tức hoặc có thể gặp lỗi nếu chúng phụ thuộc vào tên máy chủ được định cấu hình trong các tệp tin. Do đó, chỉ nên sử dụng cách này cho các mục đích ngắn hạn và trong môi trường thử nghiệm. Đối với môi trường sản xuất, việc thay đổi vĩnh viễn luôn là lựa chọn tốt nhất.
Thiết lập tên máy chủ vĩnh viễn bằng cách chỉnh sửa tập tin cấu hình
Để tên máy chủ của bạn được giữ nguyên sau mỗi lần khởi động lại, bạn cần phải thay đổi nó một cách vĩnh viễn. Điều này được thực hiện bằng cách chỉnh sửa các tập tin cấu hình hệ thống. Phương pháp này đảm bảo tính nhất quán và ổn định cho máy chủ của bạn.
Chỉnh sửa tập tin /etc/hostname
Trên hầu hết các bản phân phối Linux hiện đại như Debian, Ubuntu, CentOS, tên máy chủ vĩnh viễn được lưu trữ trong một tệp tin đơn giản tại đường dẫn /etc/hostname. Tệp này chỉ chứa một dòng duy nhất: tên máy chủ của bạn.
Để thay đổi, bạn hãy mở tệp này bằng một trình soạn thảo văn bản với quyền quản trị viên, ví dụ như nano hoặc vim.
sudo nano /etc/hostname
Bên trong tệp, bạn sẽ thấy tên máy chủ hiện tại. Hãy xóa nó đi và nhập tên mới mà bạn muốn đặt. Ví dụ, nếu bạn muốn đổi thành production-server-01, hãy nhập đúng dòng đó vào tệp. Sau đó, lưu lại và đóng tệp (trong nano, nhấn Ctrl + X, sau đó Y và Enter).
.webp)
Chỉnh sửa nội dung của file /etc/hostname.
Sự thay đổi này sẽ chưa có hiệu lực ngay lập tức. Nó chỉ được áp dụng sau khi bạn khởi động lại hệ thống.
Cập nhật file /etc/hosts
Bước tiếp theo và cũng rất quan trọng là cập nhật tệp /etc/hosts. Tệp này chứa bản đồ tĩnh giữa địa chỉ IP và tên máy chủ, giúp hệ thống phân giải các tên miền cục bộ mà không cần truy vấn máy chủ DNS. Việc giữ tệp này đồng bộ với hostname mới sẽ giúp tránh nhiều lỗi hệ thống không đáng có.
Mở tệp /etc/hosts với quyền quản trị:
sudo nano /etc/hosts
Bạn sẽ thấy các dòng tương tự như sau:
127.0.0.1 localhost
127.0.1.1 ten-may-chu-cu
Bạn cần thay thế ten-may-chu-cu bằng tên máy chủ mới mà bạn vừa đặt trong /etc/hostname. Dòng này rất quan trọng đối với các ứng dụng giao tiếp qua giao diện loopback.
127.0.0.1 localhost
127.0.1.1 production-server-01
Sau khi chỉnh sửa, hãy lưu tệp lại. Bây giờ, để áp dụng các thay đổi mà không cần khởi động lại, bạn có thể chạy lệnh sudo hostnamectl set-hostname production-server-01 hoặc đơn giản là khởi động lại máy chủ. Việc cập nhật đồng bộ cả hai tệp tin này đảm bảo rằng hệ thống của bạn sẽ hoạt động ổn định và nhất quán.

Cập nhật file /etc/hosts để đồng bộ với hostname mới.
Một số lưu ý khi sử dụng lệnh hostname trong quản trị hệ thống
Thay đổi hostname có vẻ là một thao tác đơn giản, nhưng nếu không cẩn thận, nó có thể gây ra những ảnh hưởng không mong muốn đến hệ thống và các dịch vụ đang chạy. Dưới đây là những lưu ý quan trọng mà mọi quản trị viên cần ghi nhớ.
Đảm bảo sự nhất quán của hostname và DNS
Trong một môi trường mạng chuyên nghiệp, máy chủ của bạn không tồn tại một mình. Nó thường là một phần của một miền DNS. Khi bạn thay đổi hostname của máy chủ, bạn cũng cần cập nhật các bản ghi DNS (bản ghi A cho IPv4 và AAAA cho IPv6) trên máy chủ DNS của mình.
Nếu không, các máy tính khác trong mạng sẽ không thể phân giải tên máy chủ mới thành địa chỉ IP chính xác. Điều này sẽ dẫn đến lỗi kết nối khi cố gắng truy cập các dịch vụ trên máy chủ đó bằng tên mới. Luôn phối hợp với đội ngũ quản trị mạng hoặc DNS để đảm bảo sự thay đổi được đồng bộ trên toàn hệ thống. Sự nhất quán này là chìa khóa để duy trì hoạt động mạng ổn định.

Sơ đồ minh họa sự liên kết giữa hostname và DNS.
Quyền hạn và ảnh hưởng đến dịch vụ
Việc thay đổi hostname yêu cầu quyền quản trị viên (root hoặc sudo) vì nó là một thay đổi ở cấp độ hệ thống. Hãy luôn đảm bảo bạn đang sử dụng đúng quyền hạn để tránh các lỗi Permission denied.
Quan trọng hơn, hãy nhận thức rằng việc thay đổi hostname có thể ảnh hưởng đến các dịch vụ mạng đang hoạt động. Nhiều ứng dụng, chẳng hạn như máy chủ web, cơ sở dữ liệu, hoặc các công cụ giám sát, có thể lưu trữ hostname trong các tệp cấu hình của chúng. Khi bạn đổi tên máy chủ, các cấu hình này có thể trở nên lỗi thời, dẫn đến việc dịch vụ không thể khởi động hoặc hoạt động sai.
Để tránh gián đoạn, cách tốt nhất là lên kế hoạch thay đổi hostname trong một khoảng thời gian bảo trì (maintenance window). Trước khi thay đổi, hãy kiểm tra cấu hình của các dịch vụ quan trọng để xem chúng có phụ thuộc vào hostname hay không và chuẩn bị sẵn sàng để cập nhật chúng ngay sau khi đổi tên.
Các vấn đề thường gặp và cách khắc phục
Ngay cả với một lệnh đơn giản như hostname, bạn vẫn có thể gặp phải một số vấn đề phổ biến, đặc biệt là khi mới làm quen. Hiểu rõ nguyên nhân và cách khắc phục sẽ giúp bạn tiết kiệm thời gian và tránh được những rắc rối không đáng có.
Lỗi không thể đổi hostname do thiếu quyền
Đây là lỗi phổ biến nhất đối với người dùng mới. Bạn cố gắng chạy lệnh hostname new-name và nhận lại một thông báo lỗi như: hostname: you must be root to change the host name hoặc Operation not permitted.
Nguyên nhân: Lỗi này xảy ra vì việc thay đổi tên máy chủ là một hành động quản trị cấp cao, ảnh hưởng đến toàn bộ hệ thống. Người dùng thông thường không có quyền thực hiện thay đổi này.
Giải pháp: Rất đơn giản, bạn chỉ cần sử dụng lệnh sudo trước câu lệnh của mình để thực thi nó với quyền quản trị viên.
sudo hostname new-name
Hệ thống sẽ yêu cầu bạn nhập mật khẩu của mình, và sau đó lệnh sẽ được thực thi thành công. Tương tự, khi chỉnh sửa các tệp cấu hình như /etc/hostname hay /etc/hosts, hãy luôn dùng sudo với trình soạn thảo của bạn (ví dụ: sudo nano /etc/hostname).
![]()
Ví dụ về lỗi thiếu quyền sudo khi đổi hostname.
Xung đột hostname khiến mạng lỗi
Một vấn đề nghiêm trọng hơn có thể xảy ra là xung đột hostname, tức là có hai hoặc nhiều máy trong cùng một mạng cục bộ có cùng một tên.
Nguyên nhân: Điều này thường xảy ra khi bạn nhân bản một máy ảo (clone VM) mà quên không thay đổi hostname của bản sao. Các hệ thống mạng hiện đại, đặc biệt là các hệ thống dựa trên Windows và Samba, sử dụng hostname để đăng ký và khám phá dịch vụ, dẫn đến các hành vi không thể đoán trước khi có sự trùng lặp.
Cách khắc phục:
- Kiểm tra xung đột: Bạn có thể dùng lệnh
ping ten-may-chutừ một máy khác. Nếu bạn nhận được phản hồi từ các địa chỉ IP khác nhau, đó là dấu hiệu của sự xung đột. - Xác định các máy bị xung đột: Sử dụng các công cụ quét mạng để tìm ra các máy có cùng tên.
- Xử lý xung đột: Đăng nhập vào từng máy bị trùng lặp và thực hiện quy trình thay đổi hostname vĩnh viễn (chỉnh sửa
/etc/hostnamevà/etc/hosts) để đảm bảo mỗi máy có một tên định danh duy nhất. Sau đó, khởi động lại các máy đó để thay đổi có hiệu lực hoàn toàn.
Các thực hành tốt khi sử dụng lệnh hostname
Để việc quản lý hostname trở nên chuyên nghiệp và an toàn, hãy tuân thủ một số quy tắc và thực hành tốt sau đây. Những mẹo này sẽ giúp bạn tránh được các sự cố và duy trì một hệ thống ổn định, dễ quản lý.
- Luôn sao lưu cấu hình trước khi thay đổi: Trước khi chỉnh sửa các tệp quan trọng như
/etc/hostnamevà/etc/hosts, hãy tạo một bản sao lưu. Một lệnh đơn giản nhưsudo cp /etc/hostname /etc/hostname.bakcó thể cứu bạn khỏi những sai lầm không đáng có. - Không đổi hostname khi hệ thống đang phục vụ online quan trọng: Lên lịch thay đổi trong thời gian bảo trì hoặc khi lưu lượng truy cập thấp nhất để giảm thiểu ảnh hưởng đến người dùng và các dịch vụ đang chạy.
- Đồng bộ hostname với DNS và tài liệu quản trị: Đảm bảo rằng mọi thay đổi về hostname đều được cập nhật trong hệ thống DNS và trong tài liệu quản trị hệ thống của bạn. Điều này giúp duy trì sự nhất quán và giúp các thành viên khác trong nhóm dễ dàng theo dõi.
- Kiểm tra hostname sau khi khởi động lại hệ thống: Sau khi đã thay đổi vĩnh viễn, hãy luôn khởi động lại máy chủ và dùng lệnh
hostnameđể xác nhận rằng tên mới đã được áp dụng thành công. - Tránh sử dụng ký tự đặc biệt trong hostname: Tuân thủ các tiêu chuẩn đặt tên. Hostname chỉ nên chứa các chữ cái (a-z), số (0-9), và dấu gạch ngang (-). Không bắt đầu hoặc kết thúc bằng dấu gạch ngang và không sử dụng các ký tự như dấu gạch dưới
_hoặc dấu chấm.(trừ khi là một phần của FQDN). - Xây dựng quy ước đặt tên rõ ràng: Trong một hệ thống lớn, hãy sử dụng một quy ước đặt tên nhất quán. Ví dụ:
[chức-năng]-[vị-trí]-[số-thứ-tự]nhưweb-hcm-01,db-hn-02. Điều này giúp bạn nhận diện chức năng và vị trí của máy chủ ngay lập tức.
Kết luận
Qua bài viết này, chúng ta đã cùng nhau khám phá chi tiết về lệnh hostname trong Linux, một công cụ tuy nhỏ bé nhưng lại có vai trò vô cùng quan trọng trong việc định danh và quản lý máy chủ. Từ những thao tác cơ bản như xem tên hiện tại, sử dụng các tùy chọn để lấy thông tin chi tiết, cho đến các kỹ thuật nâng cao hơn như thay đổi hostname tạm thời và thiết lập vĩnh viễn, bạn đã có một nền tảng vững chắc để tự tin làm chủ công cụ này.
Hãy nhớ rằng, việc thay đổi hostname không chỉ là một thao tác kỹ thuật mà còn đòi hỏi sự cẩn trọng và tuân thủ các quy trình tốt nhất để đảm bảo hệ thống hoạt động ổn định. Luôn sao lưu, lên kế hoạch và đồng bộ hóa các thay đổi của bạn với DNS. AZWEB khuyến khích bạn hãy thực hành các lệnh này trên môi trường thử nghiệm để trở nên thành thạo hơn. Để nâng cao kỹ năng quản trị hệ thống của mình, đừng quên tìm đọc thêm các bài viết chuyên sâu khác của chúng tôi về quản lý mạng và bảo mật Linux.