Mỗi ứng dụng và dịch vụ cần kết nối mạng để hoạt động đều yêu cầu các điểm cuối (endpoint) cụ thể để kết nối và giao tiếp với các dịch vụ khác. Có 65.536 điểm cuối như vậy trong bất kỳ hệ thống Linux nào, được gọi là “Port”. Trong bài viết này, Afropolitan Group sẽ hướng dẫn bạn cách mở port trong Linux một cách chi tiết và dễ hiểu.
Contents
Kiểm Tra Trạng Thái Port trong Linux
Trước khi mở bất kỳ port nào, bạn cần kiểm tra trạng thái port để tránh xung đột. Để liệt kê tất cả các port đang mở trong hệ thống, hãy sử dụng lệnh netstat
trong Linux:
netstat -l -n -t -u
Trong lệnh trên:
-l
: Liệt kê tất cả các port đang ở chế độ lắng nghe (chấp nhận kết nối đến).-n
: Hiển thị số port.-t
: Liệt kê tất cả các port chấp nhận kết nối TCP.-u
: Liệt kê tất cả các port chấp nhận kết nối UDP.
Sau khi chạy lệnh này trong Terminal, bạn sẽ thấy kết quả như sau:
Kết quả của lệnh netstat -l -n -t -u
Chú ý cột thứ năm có tên “Local Address”. Số này biểu thị địa chỉ cục bộ mà qua đó bất kỳ kết nối đến nào được chấp nhận. Số sau dấu hai chấm biểu thị port đang mở cho bất kỳ kết nối đến nào trên hệ thống Linux của bạn.
Nếu netstat
chưa được cài đặt trong hệ thống, bạn có thể sử dụng lệnh ss
. Nó cho kết quả tương tự và số port được hiển thị trong cột cuối cùng sau dấu hai chấm:
ss -l -n -t -u
Cách mở Port trong Linux
Cách Mở Port trong Linux
Sau khi xác minh port bạn muốn mở chưa được sử dụng, bạn có thể tiến hành mở nó. Dưới đây là hướng dẫn cụ thể cho các bản phân phối Linux khác nhau:
Hệ Thống Dựa Trên Ubuntu
UFW (Uncomplicated Firewall) là công cụ được sử dụng để quản lý quy tắc tường lửa. Sử dụng cú pháp sau để thêm quy tắc mới mở port:
sudo ufw allow <số_port>/<tcp hoặc udp>
Ví dụ, để mở port 8080 cho kết nối TCP đến, hãy sử dụng lệnh sau:
sudo ufw allow 8080/tcp
Mở port 8080 trong hệ thống Linux sử dụng UFW
Kiểm tra trạng thái của UFW bằng lệnh:
sudo ufw status numbered
Nếu nó hiển thị “inactive”, hãy kích hoạt nó bằng lệnh:
sudo ufw enable
Và kiểm tra lại trạng thái của UFW. Lần này bạn sẽ thấy port đã mở trong kết quả.
Hệ Thống Dựa Trên CentOS
Firewalld (Firewall-Daemon) là công cụ quản lý quy tắc tường lửa nâng cao. Trước khi sửa đổi bất kỳ quy tắc nào, hãy luôn kiểm tra trạng thái của nó bằng lệnh:
sudo systemctl status firewalld
Kiểm tra trạng thái của firewalld
Nếu nó hiển thị “inactive”, hãy kích hoạt firewalld bằng lệnh:
sudo systemctl enable firewalld
Để thêm quy tắc mới mở port, sử dụng cú pháp:
sudo firewall-cmd --add-port=<số_port>/<tcp hoặc udp> --permanent
sudo firewall-cmd --reload
Ví dụ, để mở port 8080 cho kết nối TCP đến:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
Các Bản Phân Phối Linux Khác
Mọi bản phân phối Linux đều được cài đặt sẵn iptables
, một công cụ linh hoạt được sử dụng để quản lý quy tắc tường lửa. Để cho phép lưu lượng TCP trên port 8080, hãy sử dụng lệnh:
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
Sau khi thêm quy tắc, hãy lưu nó bằng lệnh:
sudo /sbin/iptables-save
Mở port 8080 cho lưu lượng TCP đến
-
Port là gì? Port là một điểm cuối giao tiếp logic được sử dụng bởi các ứng dụng mạng. Mỗi port được gán một số duy nhất để phân biệt các dịch vụ khác nhau.
-
Tại sao cần mở port? Mở port cho phép các kết nối đến từ mạng bên ngoài truy cập vào các dịch vụ cụ thể chạy trên máy tính Linux của bạn.
-
UFW, Firewalld và iptables khác nhau như thế nào? UFW là một giao diện đơn giản cho iptables, dễ sử dụng hơn. Firewalld là một daemon tường lửa phức tạp hơn với giao diện dòng lệnh riêng. iptables là công cụ cốt lõi để quản lý tường lửa trong Linux.
-
Làm thế nào để kiểm tra xem port đã được mở thành công chưa? Bạn có thể sử dụng lệnh
netstat
hoặcss
để kiểm tra danh sách các port đang mở. Ngoài ra, bạn có thể sử dụng các công cụ kiểm tra port trực tuyến. -
Mở port có ảnh hưởng đến bảo mật hệ thống không? Việc mở port có thể làm tăng nguy cơ bảo mật nếu không được cấu hình đúng cách. Chỉ nên mở những port cần thiết và sử dụng các quy tắc tường lửa để hạn chế truy cập.
-
Tôi có cần khởi động lại máy tính sau khi mở port không? Thông thường, bạn không cần khởi động lại máy tính sau khi mở port bằng UFW hoặc Firewalld. Tuy nhiên, với iptables, bạn có thể cần khởi động lại dịch vụ mạng hoặc máy tính.
-
Làm thế nào để đóng một port đã mở? Bạn có thể sử dụng các lệnh tương tự như khi mở port nhưng thay
allow
bằngdeny
(cho UFW) hoặc--remove-port
(cho Firewalld) hoặc-D
(cho iptables).
Kết Luận
Việc mở port trong Linux là một thao tác quan trọng để cho phép các ứng dụng và dịch vụ hoạt động bình thường. Bài viết đã hướng dẫn chi tiết cách mở port trên các hệ thống Linux phổ biến. Việc lựa chọn công cụ và lệnh phù hợp phụ thuộc vào bản phân phối Linux bạn đang sử dụng. Hãy chắc chắn rằng bạn hiểu rõ các lệnh và tác động của chúng trước khi thực hiện.