หมายเลขพอร์ต TCP/IP ที่จำเป็นในการติดต่อสื่อสารกับ SQL ผ่านไฟร์วอลล์

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 287932 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

บทความนี้อธิบายหมายเลขพอร์ต TCP/IP ที่จำเป็นต้องมี Microsoft SQL Server ในการสื่อสารผ่านไฟร์วอลล์ พอร์ตเซิร์ฟเวอร์ SQL เริ่มต้นคือ 1433 และไคลเอนต์พอร์ตจะถูกกำหนดจากค่าสุ่มระหว่าง 1024 และ 5000

สำหรับข้อมูลรายละเอียดเกี่ยวกับหมายเลขพอร์ตที่จำเป็นต้องมี SQL Server ดู "ข้อมูลเพิ่มเติม" ส่วนของบทความนี้

ข้อมูลเพิ่มเติม

SQL Server เป็นโปรแกรมประยุกต์ Winsock ที่สื่อสารผ่าน TCP/IP โดยใช้ไลบรารีเครือข่าย sockets SQL Server ฟังสำหรับการเชื่อมต่อขาเข้าบนพอร์ตเฉพาะ พอร์ตเริ่มต้นสำหรับเซิร์ฟเวอร์ SQL คือ 1433 ไม่จำเป็นต้องใช้ 1433 เป็นพอร์ตก็ได้ แต่ 1433 คือหมายเลขซ็อกเก็ต Internet Assigned Number Authority (IANA) อย่างเป็นทางการของเซิร์ฟเวอร์ SQL

โปรแกรมประยุกต์ไคลเอนต์จะสื่อสารไปยังเซิร์ฟเวอร์ SQL โดยใช้ไลบราเครือข่ายฝั่งไคลเอนต์ Dbmssocn.dll (หรือ Dbnetlib.dll สำหรับ SQL Server 2000) และไคลเอนต์ใดๆ ที่ใช้ Microsoft Data Access Components (MDAC) 2.6

เมื่อไคลเอนต์สร้างการเชื่อมต่อ TCP/IP, handshake แบบสามทางเกิดขึ้น ไคลเอนต์เปิดพอร์ตแหล่งที่มา และส่งการรับส่งข้อมูลไปยังปลายทางพอร์ต ซึ่งก็คือ 1433 โดยค่าเริ่มต้น พอร์ตต้นทางไคลเอนต์ที่ใช้งานจะเป็นแบบสุ่ม แต่จะมากกว่า 1024 ตามค่าเริ่มต้น เมื่อโปรแกรมประยุกต์ร้องขอซ็อกเก็ตจากระบบเพื่อการติดต่อขาออก จะได้รับค่าหมายเลขพอร์ตระหว่าง 1024 และ 5000 สำหรับข้อมูลเพิ่มเติม โปรดดูที่เว็บไซต์ Microsoft ต่อไปนี้:จากนั้นเซิร์ฟเวอร์ (ในกรณีนี้ก็คือเซิร์ฟเวอร์ SQL) จะทำการสื่อสารกับไคลเอนต์โดยการส่งข้อมูลจาก 1433 กลับไปที่พอร์ตซึ่งไคลเอนต์กำหนด

วิธีที่ดีที่สุดในการสังเกตลักษณะการทำงานนี้ คือการติดตามการสื่อสารจากไคลเอนต์ถึงเซิร์ฟเวอร์ โดยใช้ Microsoft Network Monitor หรือเครื่องมือดักข้อมูลเครือข่าย ในการกำหนดค่าไฟร์วอลล์ คุณจะต้องอนุญาตการรับส่งข้อมูลจาก *ใดๆ * ถึง 1433 และจาก 1433 ถึง *ใดๆ * โดยที่ *ใดๆ * คือพอร์ตที่มากกว่า 1024

นอกจากการใช้ Microsoft Network Monitor คุณยังสามารถใช้ยูทิลิตี TCP/IP Netstat เพื่อสาธิตลักษณะการทำงานนี้ การออกคำสั่ง netstat -an จากหน้าต่างคำสั่ง MS-DOS จะทำให้เกิดผลลัพธ์ต่อไปนี้ ซึ่งจะแสดงสามการเชื่อมต่อที่ดำเนินการไปยังเซิร์ฟเวอร์ SQL ตัวอย่างนี้ใช้ 157.54.178.42 เป็นอยู่ IP ของเซิร์ฟเวอร์ SQL และ 157.54.178.31 เป็นอยู่ IP ของไคลเอ็นต์ พอร์ตเปิดไคลเอ็นต์เป็น 1746, 1748 และ 1750 ตามลำดับ
รัฐที่อยู่ต่างประเทศของที่อยู่ท้องถิ่น Proto
 TCP    157.54.178.42:1433     0.0.0.0:0              กำลังฟัง
 TCP    157.54.178.42:1433     157.54.178.31:1746     สร้างแล้ว
 TCP    157.54.178.42:1433     157.54.178.31:1748     สร้างแล้ว
 TCP    157.54.178.42:1433     157.54.178.31:1750     สร้างแล้ว
					
ซอฟต์แวร์ไฟร์วอลล์ควรอนุญาตให้มีการปันส่วนแบบไดนามิกนี้จะเกิดขึ้นผ่านการใช้กฎ ถ้าไม่ได้ คุณสามารถกำหนดค่าการเชื่อมต่อจาก 1433 เพื่อ * ANY * เป็น "สร้าง" ได้ การทำเช่นนี้จะเป็นการเปิดพอร์ตตอบสนองแบบไดนามิก หลังจาก syn ตามด้วย syn/ack ด้วยวิธีการตรวจสอบแพ็คเก็ตแบบ statefull

ไม่มีวิธีใดๆ ในการจำกัดจำนวนพอร์ต TCP ต้นทางที่ไคลเอนต์เซิร์ฟเวอร์ SQL ใช้ในการเชื่อมต่อ เนื่องจากอาจเป็นการขัดขวางการให้ไคลเอนต์จัดสรรพอร์ตไดนามิกใหม่ที่ไม่ได้ใช้งาน นี่คือ TCP/IP มาตรฐานที่กำหนดไว้สำหรับโปรแกรมประยุกต์ของ Winsock นี่ไม่ใช่ข้อจำกัดของการสื่อสารไคลเอนต์ของ SQL Server

นอกจากนี้ อินสแตนซ์ที่มีชื่อของ SQL Server 2000 จะใช้พอร์ตปลายทางแบบไดนามิก โดยค่าเริ่มต้น ควรเปลี่ยนพอร์ตนี้พอร์ตถาวรก่อนการกำหนดค่าไฟร์วอลล์ ยูทิลิตี้การเครือข่ายเซิร์ฟเวอร์ของ SQL ควรใช้การตั้งค่าคอนฟิกพอร์ตปลายทาง ดู SQL Server Books Online สำหรับรายละเอียดเกี่ยวกับวิธีการใช้ยูทิลิตี้การเครือข่ายเซิร์ฟเวอร์ของ SQL

หรือ ไคลเอนต์คอมพิวเตอร์อาจจำเป็นต้องเปิดพอร์ต UDP แบบสุ่ม และพอร์ต UDP 1434 ของเซิร์ฟเวอร์จะถูกใช้ในการส่งชื่ออินสแตนซ์ และข้อมูลที่ยืนยันว่าอินสแตนซ์นั้นอยู่ในรูปแบบคลัสเตอร์หรือไม่ รวมถึงรุ่นของอินสแตนซ์ SQL, หมายเลขพอร์ต TCP ที่อินสแตนซ์รอรับข้อมูล และเนมไปป์ที่อินสแตนซ์ใช้งาน อย่างไรก็ตาม หากเป้าหมายคือการลดจำนวนของพอร์ตที่เปิดบนไฟร์วอลล์ ควรเลือกหมายเลขพอร์ตแบบคงที่เป็นอินสแตนซ์เริ่มต้น และอินสแตนซ์ที่มีการระบุชื่อใดๆ คอมพิวเตอร์ไคลเอนต์จะต้องได้รับการกำหนดค่าให้เชื่อมต่อกับ ServerName หรืออินสแตนซ์ ServerName เฉพาะ และหมายเลขพอร์ตเฉพาะ

หากต้องการทราบข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
216415 ข้อมูลเชิงปฏิบัติ: ตั้งค่าเซิร์ฟเวอร์ SQL กับพร็อกซีเซิร์ฟเวอร์
148942 วิธีการจัดให้มีเครือข่ายกับจอภาพของเครือข่าย
169292 พื้นฐานของการอ่านการสืบค้นกลับของ TCP/IP
269882 วิธีการ: ใช้ ADO ในการเชื่อมต่อกับ SQL Server ที่อยู่หลังไฟร์วอลล์

คุณสมบัติ

หมายเลขบทความ (Article ID): 287932 - รีวิวครั้งสุดท้าย: 29 พฤศจิกายน 2556 - Revision: 6.0
ใช้กับ
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Keywords: 
kbsqlsetup kbinfo KB287932

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com