Kiểm tra file /etc/services
Bên cạnh đó cũng cần lưu ý, file này chỉ chứa thông tin khai báo cho các port thông dụng (well-known port) không liên quan đến việc port đó có đang mở, bị khoá hay tình trạng như thế nào trên hệ thống.
cat /etc/services | grep ^http | grep 80
http            80/tcp          www www-http    # WorldWideWeb HTTP
 http            80/udp          www www-http    # HyperText Transfer Protocol
 http            80/sctp                         # HyperText Transfer Protocol
 http-mgmt       280/tcp                 # http-mgmt
 http-mgmt       280/udp                 # http-mgmt
 httpx           4180/tcp                # HTTPX
 httpx           4180/udp                # HTTPXSử dụng chương trình lệnh “NETSTAT”
 “Netstat” là viết tắt của từ Network Statistic, một chương trình có trên cả hệ điều hành Windows và Linux. Chương trình netstat sẽ giúp bạn thống kê được các thông tin liên quan đến mạng, các kết nối đang thiết lập, các port đang được mở trên hệ thống Linux,… Cũng xin lưu ý là trên các hệ thống Systemd như CentOS 7 hay Ubuntu 16.04 thì chương trình này mặc định không được cài đặt (thường các nhà cung cấp cài sẵn rồi, trừ khi bạn cài tay máy chủ thật).
 Sau đây là một số ví dụ của “netstat” giúp kiểm tra các cổng kết nối đang được sử dụng trên Linux.
- Kiểm tra port TCP đang mở
netstat -ltnp
Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address       State       PID/Program name 
 tcp        0      0 0.0.0.0:80              0.0.0.0:*             LISTEN      28302/nginx: maste
 tcp        0      0 0.0.0.0:2712            0.0.0.0:*             LISTEN      904/sshd  
 tcp        0      0 127.0.0.1:25            0.0.0.0:*             LISTEN      1401/master       
 tcp        0      0 125.212.218.80:443      0.0.0.0:*             LISTEN      28302/nginx: maste
 tcp        0      0 127.0.0.1:3306          0.0.0.0:*             LISTEN      4700/mysqld 
 tcp6       0      0 :::80                   :::*                  LISTEN      28302/nginx: maste
 tcp6       0      0 :::21                   :::*                  LISTEN      12736/vsftpd  
 tcp6       0      0 :::2712                 :::*                  LISTEN      904/sshd     
 tcp6       0      0 ::1:25                  :::*                  LISTEN      1401/master
- Kiểm tra port UDP đang mở
netstat -lunp
Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
 udp 0 0 0.0.0.0:161 0.0.0.0:* 25778/snmpd
Với cả 2 output trên dành cho các cổng kết nối TCP và UDP, bạn sẽ thấy cột trạng thái “State” là “LISTEN” và cả tên tiến trình đang hoạt động lắng nghe kết nối trên các port đang được sử dụng đó.Sử dụng chương trình lệnh “SS”
 Chương trình lệnh ss có khả năng cung cấp thông tin về network/socket kết nối hay hơn và nhanh hơn nhiều so với công cụ truyền thống ‘netstat‘. Cũng với một vài option đơn giản thì bạn sẽ biết ngay port dịch vụ nào đang được mở trên Linux.
- Kiểm tra port TCP đang sử dụng
ss -lnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
 LISTEN 0 511 *:80 *:* 
 LISTEN 0 128 *:2712 *:* 
 LISTEN 0 100 127.0.0.1:25 : 
 LISTEN 0 511 125.212.218.80:443 : 
 LISTEN 0 80 127.0.0.1:3306 : 
 LISTEN 0 511 :::80 :::* 
 LISTEN 0 32 :::21 :::* 
 LISTEN 0 128 :::2712 :::* 
 LISTEN 0 100 ::1:25 :::*
- Kiểm tra port UDP đang sử dụng
ss -lnu
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
 UNCONN 0 0 *:46951 *:* 
 UNCONN 0 0 *:68 *:* 
 UNCONN 0 0 *:161 *:*Sử dụng chương trình lệnh “telnet”
 Sử dụng “telnet” để kiểm tra các cổng kết nối có được mở trên máy chủ Linux không là một phương pháp vô cùng phổ biến. Hoạt động của nó là mở một kết nối đến port dịch vụ ta cần kiểm tra, nếu không mở được tức port dịch vụ đó không mở.
 Cấu trúc sử dụng “telnet“
telnet [ip máy chủ] [số port]
Ví dụ 1:
– Bạn kiểm tra port SSH (22) của máy chủ remote. Kết quả dưới là có port 22 có mở.
telnet 103.63.213.61 22
Trying 103.63.213.61…
 Connected to 103.63.213.61.
 Escape character is ‘^]’.
 SSH-2.0-OpenSSH_5.3
– Bạn kiểm tra port SSH (22) của máy chủ remote. Kết quả dưới là có port 22 không có mở.
telnet 103.63.213.62 22
Trying 103.63.213.62…
 telnet: connect to address 103.63.213.62: Connection timed out
Ví dụ 2:
– Bạn kiểm tra port HTTP (80) của máy chủ remote. Kết quả dưới là có port 80 có mở.
telnet 103.63.213.61 80
Trying 103.63.213.61…
 Connected to 103.63.213.61.
 Escape character is ‘^]’.
– Bạn kiểm tra port HTTP (80) của máy chủ remote. Kết quả dưới là có port 80 không có mở.
telnet 103.63.213.62 80
Trying 103.63.213.62…
 telnet: connect to address 103.63.213.62: Connection timed out
Kiểm tra port đang mở trên máy chủ Linux – Technology Diver
4. Sử dụng chương trình lệnh “nmap”
Nmap là một công cụ dùng cho hoạt động kiểm tra bảo mật hệ thống. Nhiệm vụ chính của nó là quét ra thông tin giúp kiểm tra port đang mở trên một máy chủ. Từ đó có thể xác định các dịch vụ mạng đang được lắng nghe thông qua cổng kết nối được mở trên hệ thống đó.
Bạn cần cài đặt chương trình “nmap” như sau :
+ CentOS# yum install -y nmap
| 1 | # yum install -y nmap | 
+ Ubuntu# apt-get install -y namp
| 1 | # apt-get install -y namp | 
Cấu trúc lệnh “nmap”# nmap [option] [ip may chu]
1 # nmap [option] [ip may chu] 
Hãy chạy lệnh “nmap” với option như sau để kiểm tra port đang mở trên máy chủ dịch vụ nhé.# nmap 103.63.213.61 Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-20 13:55 +07 Nmap scan report for no-ptr.ehost.vn (103.63.213.61) Host is up (0.0018s latency). Not shown: 984 filtered ports PORT STATE SERVICE 20/tcp closed ftp-data 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 53/tcp open domain 80/tcp open http 110/tcp open pop3 143/tcp open imap 443/tcp open https 465/tcp open smtps 587/tcp open submission 993/tcp open imaps 995/tcp open pop3s 2222/tcp open EtherNet/IP-1 8000/tcp closed http-alt 35500/tcp closed unknown Nmap done: 1 IP address (1 host up) scanned in 27.79 seconds
| 12345678910111213141516171819202122232425 | # nmap 103.63.213.61 Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-20 13:55 +07Nmap scan report for no-ptr.ehost.vn (103.63.213.61)Host is up (0.0018s latency).Not shown: 984 filtered portsPORT STATE SERVICE20/tcp closed ftp-data21/tcp open ftp22/tcp open ssh25/tcp open smtp53/tcp open domain80/tcp open http110/tcp open pop3143/tcp open imap443/tcp open https465/tcp open smtps587/tcp open submission993/tcp open imaps995/tcp open pop3s2222/tcp open EtherNet/IP-18000/tcp closed http-alt35500/tcp closed unknown Nmap done: 1 IP address (1 host up) scanned in 27.79 seconds | 
Wow, với một lần chạy lệnh thôi mà “nmap” đã giúp bạn xác định được bao nhiêu port đang được mở trên máy chủ dịch vụ.
- Sử dụng các website trực tuyến kiểm tra port đang mở
 Đôi khi do lười hoặc không có quyền hạn truy cập hệ thống của 1 website hay 1 VPS thì bạn khó mà kiểm tra được các port nào đang được mở trên hệ thống Linux đó. Thì có thể đơn giản là chỉ cần sử dụng các dịch vụ trung gian giúp quét các port thông dụng được mở trên server Linux đó.
 Sau đây là một số website giúp bạn scan port trực tuyến. Bạn chỉ cần nhập địa chỉ IP hoặc tên miền của máy chủ mà bạn cần quét port:
- Pentest-tools
 Link : https://pentest-tools.com/network-vulnerability-scanning/tcp-port-scanner-online-nmap
- Mxtoolbox
 Link : https://mxtoolbox.com/PortScan.aspx
