เปลี่ยนหมายเลขพอร์ตเริ่มต้น (TCP/1433) สำหรับอินสแตนซ์เซิร์ฟเวอร์ MS SQL
ในบทความนี้ เราจะแสดงวิธีตรวจสอบพอร์ต TCP ปัจจุบันที่อินสแตนซ์ MS SQL Server ที่มีชื่อหรือค่าเริ่มต้นกำลังฟังอยู่ (กำลังรอการเชื่อมต่อ) วิธีเปลี่ยนพอร์ตการเชื่อมต่อ SQL Server เป็น แบบคงที่/ไดนามิก และวิธีที่ไคลเอนต์ใช้บริการ SQL Server Browser เพื่อเชื่อมต่อกับ MSSQL
อินสแตนซ์ SQL Server เริ่มต้น (MSSQLSERVER) ใช้พอร์ต TCP คงที่ 1433 ซึ่งเป็นพอร์ตที่ไคลเอนต์หรือคอนโซล SQL Server Management Studio (SSMS) เชื่อมต่อด้วย
อินสแตนซ์ MSSQL ที่มีชื่อและ SQL Server Compact ได้รับการกำหนดค่าให้ใช้พอร์ต TCP แบบไดนามิกจากช่วง RPC (49152 - 65535)
พอร์ตแบบไดนามิกหมายความว่าหมายเลขพอร์ตของอินสแตนซ์ MSSQL ที่ยอมรับการเชื่อมต่อนั้นถูกกำหนดหลังจากบริการ SQL Server เริ่มทำงาน ในกรณีส่วนใหญ่ แม้ว่าหลังจากรีบูตเซิร์ฟเวอร์แล้ว SQL Server จะรับฟังพอร์ต TCP แบบไดนามิกเดียวกันที่กำหนดก่อนที่จะรีสตาร์ท แต่ถ้าหมายเลขพอร์ตไม่ว่าง SQL Server จะทำงานบนพอร์ต TCP ใหม่ แอปที่เชื่อมต่อกับ MSSQL มักจะได้รับหมายเลขพอร์ตใหม่จากบริการ SQL Server Browser โดยไม่มีปัญหา (เราจะแจ้งให้ทราบในภายหลัง) พอร์ต Dynamic SQL Server สะดวกเมื่อคุณจัดการอินสแตนซ์ SQL หลายรายการบนโฮสต์เดียว แต่พอร์ตเหล่านี้ทำให้เกิดปัญหามากมายเมื่อติดตั้งไฟร์วอลล์ในเครือข่ายของคุณ
การกำหนดค่าอินสแตนซ์ของเซิร์ฟเวอร์ MS SQL เพื่อฟังบนพอร์ตเฉพาะ
คุณสามารถกำหนดค่าเซิร์ฟเวอร์ SQL ใหม่เพื่อฟังพอร์ต TCP แบบคงที่หรือแบบไดนามิก โดยทั่วไป คุณอาจต้องใช้เมื่ออินสแตนซ์ SQL Server หลายอินสแตนซ์ทำงานบนโฮสต์เดียว หรือใช้ไฟร์วอลล์ในเครือข่ายของคุณ
ในการจัดการพอร์ตฟัง คุณจะต้องมี SQL Server Configuration Manager โดยปกติแล้ว สแนปอินนี้จะถูกติดตั้งพร้อมกับอินสแตนซ์ MSSQL
เปิดตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL และขยายส่วน การกำหนดค่าเครือข่ายเซิร์ฟเวอร์ SQL
ในกรณีของฉัน มีอินสแตนซ์ MSSQL เพียง 1 รายการที่ทำงานบนเซิร์ฟเวอร์ ดังนั้นฉันจะกำหนดค่าพอร์ตการฟังสำหรับอินสแตนซ์ รายการโปรโตคอลที่พร้อมใช้งานสำหรับอินสแตนซ์มีดังต่อไปนี้:
โปรโตคอล Shared Memory ใช้เพื่อเชื่อมต่อจากเครื่องคอมพิวเตอร์ (เครื่องที่ติดตั้งอินสแตนซ์ MSSQL) ไม่แนะนำให้ปิดการใช้งาน
เนมไปป์ อาจใช้ผ่านโปรโตคอล TCP/IP แต่การใช้งานไม่ได้ให้ประโยชน์อะไรกับเรามากนัก ดังนั้นเราจะเปิดใช้ต่อไป
TCP/IP คือตำแหน่งที่กำหนดค่าตัวเลือกเครือข่าย MSSQL
ดับเบิลคลิก TCP/IP
มีเพียง 3 พารามิเตอร์บนแท็บโปรโตคอล::
-
เปิดใช้งาน - เพื่อให้แน่ใจว่าโปรโตคอล TCP/IP เปิดใช้งานอยู่
Keep Alive ความถี่ในการส่งแพ็กเก็ต Keep-alive เพื่อให้แน่ใจว่าการเชื่อมต่อยังคงใช้งานได้ (หน่วยเป็นมิลลิวินาที) อย่าเปลี่ยนพารามิเตอร์โดยไม่จำเป็น
ฟังทั้งหมด เป็นการตั้งค่าที่ไม่ชัดเจนซึ่งรับผิดชอบเนื้อหาของส่วน IPAll ในแท็บที่อยู่ IP หากค่าของ Listen All เป็น ไม่ ส่วน IPAll จะถูกละเว้น
ในแท็บ ที่อยู่ IP คุณสามารถดูรายการที่อยู่ IP ทั้งหมดของคอมพิวเตอร์ (รวมถึง IPv6 และที่อยู่ในระบบ) และการตั้งค่า ที่นี่คุณสามารถกำหนดค่าพอร์ต TCP ที่แตกต่างกันสำหรับที่อยู่การเชื่อมต่อภายในเครื่องและภายนอก หรือพอร์ตต่างๆ สำหรับที่อยู่ภายนอกที่แตกต่างกัน (หากเซิร์ฟเวอร์ของคุณมีอินเทอร์เฟซเครือข่ายหลายอินเทอร์เฟซในส่วนต่างๆ เช่น จากนั้นใช้ VLAN หรือชื่อแทน IP หลายรายการ)
มีแนวโน้มว่าคุณอาจต้องการเปลี่ยนพอร์ตสำหรับที่อยู่ IP ทั้งหมดในคราวเดียว ดังนั้นให้เปลี่ยนส่วน IPAll
ตัวเลือก พอร์ตแบบไดนามิก TCP เกี่ยวข้องกับการใช้พอร์ตแบบไดนามิก
ค่าพอร์ตแบบไดนามิก TCP ว่าง จะปิดใช้งานโดยใช้พอร์ต SQL Server แบบไดนามิก
0 เปิดใช้งานพอร์ต TCP แบบไดนามิกจากช่วง RPC 49152 - 65535
-
มันไม่สมเหตุสมผลเลยที่จะตั้งค่าพอร์ตตายตัวที่นี่ — มันเปลี่ยนทุกครั้งหลังจากรีสตาร์ทอินสแตนซ์ MSSQL
หากต้องการตั้งค่าพอร์ต TCP แบบคงที่สำหรับอินสแตนซ์ SQL Server ให้ปิดใช้งานพอร์ตแบบไดนามิก TCP และระบุหมายเลขใหม่ของพอร์ตแบบคงที่ในพารามิเตอร์ พอร์ต TCP
เมื่อต้องการใช้การเปลี่ยนแปลง เริ่มบริการ SQL Server ใหม่ โปรดทราบว่าบริการเบราว์เซอร์ SQL Server หยุดทำงาน
ตรวจสอบให้แน่ใจว่าคุณสามารถเชื่อมต่อกับอินสแตนซ์ SQL ของคุณโดยใช้ SSMS ผ่านพอร์ต TCP ใหม่แบบคงที่ รูปแบบสตริงการเชื่อมต่อเป็นดังนี้:
hostname\lab-sql, PortNumberคุณจะไม่สามารถเชื่อมต่อได้โดยไม่ระบุพอร์ตการฟัง เนื่องจากบริการ SQL Browser ถูกปิดใช้งาน
บริการเบราว์เซอร์เซิร์ฟเวอร์ SQL: พอร์ต TCP และ UDP
ก่อน MSSQL 2000 คุณไม่สามารถติดตั้งมากกว่าหนึ่งอินสแตนซ์ SQL บนโฮสต์ คุณลักษณะนี้ปรากฏใน MSSQL เวอร์ชันใหม่กว่า เบราว์เซอร์เซิร์ฟเวอร์ SQL ปรากฏใน SQL Server 2005 และถูกใช้เป็นบริการตัวกลางเพื่อกระจายการเชื่อมต่อระหว่างอินสแตนซ์ MSSQL หลายตัวที่ติดตั้งบนคอมพิวเตอร์เครื่องเดียวกัน
นอกจากนี้ SQL Server Browser ยังรับผิดชอบการเชื่อมต่อกับ MSSQL (เช่น จาก SQL Server Management Studio) โดยไม่ต้องระบุหมายเลขพอร์ต (
hostname\lab-sql). เบราว์เซอร์ SQL Server รับหมายเลขพอร์ตไดนามิกปัจจุบันของอินสแตนซ์จากรีจิสทรี และส่งไปยังไคลเอ็นต์
หากคุณปิดใช้งานบริการ SQL Server Browser คุณจะต้องระบุพอร์ต TCP ด้วยตนเอง ตัวอย่างเช่น,
hostname\lab-sql, 1440หากบริการเบราว์เซอร์ SQL Server หยุดทำงานและใช้พอร์ตแบบไดนามิก แอปจะไม่สามารถรับหมายเลขพอร์ตเพื่อเชื่อมต่อได้
พอร์ต SQL Server มาตรฐาน:
TCP 1433 คือพอร์ต SQL Server มาตรฐาน;
UDP 1434 เป็นพอร์ตที่ใช้โดย SQL Server Browser
พอร์ตอื่นๆ ได้รับการกำหนดค่าเมื่อคุณติดตั้ง/กำหนดค่าบริการเฉพาะ
หากคุณกำลังใช้การตั้งค่าไฟร์วอลล์ที่เข้มงวดหรือถ้าคุณต้องการจำกัด SQL Server ให้มากที่สุด ขอแนะนำให้ปิดใช้งาน Dynamic Ports (ตั้งค่าว่าง) และปิดใช้งาน SQL Server Browser
หากเซิร์ฟเวอร์ SQL ของคุณมีการเข้าถึงแบบสาธารณะ คุณควรเปลี่ยนหมายเลขพอร์ตเริ่มต้น จะไม่ปกป้องคุณจากการโจมตีของแฮ็กเกอร์อย่างสมบูรณ์ แต่ความถี่จะลดลง






