Main Menu

What’s New?

Tên miền là gì?

24 June, 2018

Các vấn đề thường gặp với cổng giao tiếp – Port

Shares

(Last Updated On: November 4, 2016)

changing_port_skype

Trong giao thức TCP và UDP, port là số nguyên 16 bit được chèn vào phần đầu (header) của mỗi gói tin. Chẳng hạn, phía người dùng (client) có thể yêu cầu một máy chủ nào đó trên Internet cung cấp dịch vụ chia sẻ tập tin (file) qua máy chủ FTP. Để đáp ứng yêu cầu này, lớp phần mềm TCP trên máy của bạn phải nhận diện được port số 21 (đăng ký sẵn cho dịch vụ FTP) trong số các port 16 bit số nguyên được ghép theo gói tin yêu cầu của bạn. Tại máy chủ, lớp TCP sẽ đọc port 21 và chuyển tiếp yêu cầu đến máy chủ FTP.


Hay nói cách khác, với một địa chỉ IP, chúng ta chỉ có thể xác định được một máy tính duy nhất trên mạng, tuy nhiên khi một máy tính chạy nhiều dịch vụ khác nhau thì chúng phải được phân biệt bởi khái niệm port. Ví dụ, máy chủ A (Server A) có dịch vụ web, DNS và FTP server, có địa chỉ IP là 210.245.126.14. Các máy tính khác khi muốn đến Server A thì cần đến địa chỉ IP (hay tên miền), nhưng để phân biệt dịch vụ là web, DNS hay FTP, cần xác định thêm port. Chẳng hạn, khi máy B muốn truy nhập dịch vụ web trên server A, trong gói tin gửi đi, IP đích sẽ là 210.245.126.14 và port đích sẽ là 80. Cùng lúc đó có máy C truy nhập đến dịch vụ DNS trên server A thì trong gói tin IP gửi đi, IP đích vẫn là 210.245.126.14 nhưng port đích sẽ là 53. Tương tự, máy D truy cập đến dịch vụ FTP trên server A, IP đích sẽ là 210.245.126.14 và port là 21. Thông thường các ứng dụng thường ẩn các port này để giảm tính phức tạp của giao thức TCP/IP.

Có tất cả 65535 cổng (port) và được chia thành 3 đoạn: Well Known Port (WKP), Registered Port (RP) và Dynamic/Private Port (D/PP). WKP gồm các port từ 0 đến 1023 và được giữ cho các ứng dụng phổ biến như web (port 80), mail (port 25), ftp (port 21)… RP gồm các port từ 1024 đến 49151. Còn D/PP là các port từ 49152 đến 65535. IANA qui định WKP và RP phải được đăng ký với IANA (iana.org) trước khi sử dụng.

Tóm tắt nội dung

Cổng phổ biến (Well Known Port 0-1023)

Trong tầm từ 0-1023, hầu hết các port đã được đăng ký, tham khảo tại iana.org/assignments/port-numbers. Trong đó, nổi bật có các port phổ biến được liệt kê theo danh sách bên dưới. Với mạng cá nhân, muốn triển khai được các dịch vụ, chẳng hạn web server, ftp server… hệ thống của bạn phải mở các port tương ứng. Ứng với mỗi thiết bị định tuyến (router) của từng hãng, bạn sẽ có cách mở port khác nhau. Để dễ dàng mở các port cũng như hướng dẫn chi tiết trên từng router, bạn có thể vào trang portforward.com để tìm đúng router đang có. Trang web này luôn cập nhật danh sách router mới nhất của nhiều hãng.

Một điều cần lưu ý trước khi mở port là bạn nên kiểm tra lại hệ thống đã mở sẵn cổng này chưa bằng cách vào trang www.grc.com (nhớ tắt firewall trên Windows) hoặc dùng lệnh netstat -an để biết máy của bạn đang sử dụng và “lắng nghe” những port nào.

Danh sách các port thông dụng:

Cổng đăng ký (Registered port: 1024–49151)

Các cổng TCP và UDP có số từ 1024 đến 49151 được gọi là các cổng đăng ký (registered ports). IANA quản lý danh sách các dịch vụ sử dụng các port trong tầm số này để giảm thiểu việc sử dụng trùng nhau. Không giống nhu các port có số thấp hơn (0-1023), những nhà phát triển dịch vụ TCP/UDP mới có thể chọn một số mới để đăng ký với IANA thay vì dùng trùng số đã đăng ký.

Cổng động/Cổng riêng (Dynamic/ Private Port: 49152–65535)

Các cổng TCP và UDP có số bắt đầu từ 49152 đến 65535 được gọi là port động (dynamic port), port riêng (private port) hay port tạm (ephemeral port). IANA không quản lý Dynamic port cũng như không giới hạn việc sử dụng của người dùng. Các dịch vụ có thể chọn một hoặc vài port ngẫu nhiên miễn phí trong tầm số này khi cần truyền trên nhiều socket.

Xem thêm: Danh sách các port dịch vụ phổ biến trên internet

Ứng dụng

Hãy tưởng tượng, chiếc máy tính giống như ngôi nhà của bạn và port sẽ giống như các cửa ra vào. Bạn muốn mời một người nào đó vào nhà, nghĩa là phải chỉ cho họ biết lối vào (địa chỉ nhà) và mở sẵn cửa đón khách. Tương tự với máy tính, bạn phải cho biết server đang lắng nghe (listening) ở port nào để client biết và gửi yêu cầu. Router trong mô hình bên dưới giữ vai trò như một người gác cổng. Nó sẽ mở các port dịch vụ trong mạng.

Vậy những lỗi có liên quan tới Port mà cc bạn thường gặp là gì và cách khắc phục ra sao?

1. Lỗi không dùng được Skype và cách khắc phục.

Các bạn sử dụng localhost để chạy thử nghiệm website mà dùng skype kèm với các ứng dụng như XAMPP hay IIS… thì thường hay không chạy song song 2 ứng dụng này được. Bởi vì skype dùng chung cổng(port) với các phần mềm web server 2 cổng 80 và 443.

Để giải quyết vấn đề này, các bạn làm như sau:

Bước 1:

– Chạyskype và vào như hướng dẫn:

01_skype_con_before_signin.png

Bước 2:

– Bỏ tích ô “use port 80 and 443…” , nhập ô cổng(port) mới, khuyến nghị cổng nên trên 1024 và bấm save.

Bước 3:

– Là bước quan trọng nhất, thoát skype và bật lại

2. Lỗi webserver do trùng port và khắc phục.

Thông thường lỗi Webserver hay bị nhất là bị trùng port connection.

Ví dụ: trên máy có cài IIS, sử dụng Port 80; Skype dùng port 80; Apache cũng dùng port 80 nên bị tranh chấp => Lỗi.

Mặc định khi cài Wamp, Apache dùng với port 80.

Kiểm tra xem Apache có bị tranh chấp port 80 với các ứng dụng khác? Click biểu tượng wampserver ở system tray => Apache => Service => Test Port 80.

Nếu ra thông báo có bị tranh chấp port 80 thì: vào ứng dụng tranh chấp tắt đi hoặc đổi sang port khác.

+ Ví dụ đổi port kết nối của Skype: Skype => Tools => Options => Advanced => Connection. Không chọn Mục: Use port 80 and 553 as alternatives for incoming connections. Skype sẽ kết nối với port được cấu hình trong mục Use port ***xx for incoming connections.

+ Tranh chấp port 80 với IIS. Start-> Run, gõ inetmgr và stop IIS.

– Còn 1 trường hợp lỗi kết nối với Web server thường gặp nữa là: Trên máy cài chương trình Antivirus có FireWall chặn kết nối đến Web server, chặn các dịch vụ của Web server. Giải pháp: Cho các dịch vụ của Web server vào danh mục an toàn trong Firewall của trình Antivirus

3.Lỗi XAMPP/OpenServer/Vertrigo do port 80

Lỗi này là lỗi chắc hẳn khó chịu nhất đối với các lập trìnhWeb hay các bạn làm đồ án môn học ở trường. Sau đây là bài viết tổng hợp lại trong lúc mình đang thực hiện đồ án. Hy vọng bài viết sẽ giúp bạn sửa lỗi và tiếp tục công việc của mình được trơn tru.
Lúc cài đặt xong thì có nhiều trường hợp không thể Start được Apache. Đó là do có một chương trình nào đó chiếm mất port 80, mà dịch vụ Apache của XAMPP hay AppServe/ Vertrigo… chạy ở port 80.

Tại sao Apache không chạy được khi không có port 80?
– Vì port 80 là port mặc định chạy web.

Làm sao để giải quyết được vấn đề đó ?
Giải pháp để tắt cái dịch vụ mà nó chiếm cổng 80 làm cho apache không thể start được như sau

  • Uninstall IIS (cái này hay gặp nhất): vào “Programs and Features” ==> “Turn Windows features on or off” và xem phần Internet Information Services có chọn chưa. Nếu đã thì tắt đi để uninstall.
  • Tắt skype : skype nó cũng chiếm cổng 80 => tắt skype để bật apache
  • Xử lý cổng sql server: SQL Server 2008 Express,hai service của nó là REPORTS và REPORTSERVER dùng cổng 80, Nếu ai có sử dụng (cài đặt) SQL Server thì vào Sql Server Configuration Manager rồi stop cái SQL Server Reporting Services
  • Uninstalled Microsoft Web Deploy 2.0 hoặc vào services tắt cái services này đi
  • Vào services tắt World Wide Web Publishing Service.

=> có một số trường hợp phải restart máy thì mới có hiệu quả.

* Nếu không tìm thấy lỗi => đi mò
– CMD => netstat -a -o – n | findstr “80″
– mò ra được cái nào nó đang giữ port 80 của mình => lấy PID của nó
– Có được PID thì vào taskmanager => detail => PID => tìm thấy process của nó => propertise => tìm được ổ của nó rồi thì ta tùy cơ ứng biến

Leave a reply

Your email address will not be published. Required fields are marked *

Top