Làm cách nào để tìm cổng đang chạy SQL Server?


94

Có Tôi đã đọc phần này Làm thế nào để tìm cổng cho MS SQL Server 2008?

không may mắn.

telnet 1433

trả về kết nối không thành công, vì vậy tôi phải chỉ định cổng khác.

Tôi đã cố gắng sử dụng

netstat -abn

nhưng tôi không thấy sqlservr.exe hoặc thứ gì đó tương tự trong danh sách này.

Tại sao rất khó để tìm thấy cổng đó? : /


Bạn đã kiểm tra xem Dịch vụ máy chủ Sql có đang chạy không?
Pilgerstorfer Franz

Câu trả lời:



76

rất đơn giản. tạo ghi chú về sqlsrvr.exe PID từ taskmanager, sau đó chạy lệnh này:

netstat -ano | findstr *PID*

nó sẽ hiển thị các kết nối TCP và UDP của máy chủ SQL của bạn (bao gồm các cổng) tiêu chuẩn là 1433 cho TCP và 1434 cho UDP

thí dụ : nhập mô tả hình ảnh ở đây


3
Điều này có tác dụng "ngược lại" đối với tôi: cần tìm số cổng (không phải mặc định) của máy từ xa mà tôi đã kết nối trong SSMS.
leqid

57

Đây là cái phù hợp với tôi:

SELECT DISTINCT 
    local_tcp_port 
FROM sys.dm_exec_connections 
WHERE local_tcp_port IS NOT NULL 

39

Nếu bạn có thể khởi động Trình quản lý cấu hình máy chủ Sql> Cấu hình mạng máy chủ SQL> Phiên bản của bạn> TCP / IP> Thuộc tính

nhập mô tả hình ảnh ở đây


8

Nếu bạn đã chạy "netstat -a -b -n" (từ dấu nhắc lệnh nâng cao) và bạn không thấy "sqlservr.exe" thì dịch vụ SQL Server của bạn không chạy hoặc thư viện mạng TCP / IP của nó tàn tật.

Chạy trình quản lý cấu hình SQL Server (Khởi động | Tất cả các chương trình | Microsoft SQL Server 2008 | Công cụ cấu hình).

Điều hướng đến Dịch vụ máy chủ SQL. Trong ngăn bên tay phải, hãy tìm SQL Server (). Nó có bị dừng lại không? Nếu vậy, hãy bắt đầu nó.

Điều hướng đến Cấu hình mạng SQL Server (hoặc Cấu hình mạng SQL Server (32-bit) nếu thích hợp) sau đó chọn Giao thức cho. Trong ngăn bên tay phải, hãy tìm "TCP / IP". Nó có bị vô hiệu hóa không? Nếu vậy, hãy kích hoạt nó, sau đó khởi động lại dịch vụ SQL Server.

Lưu ý rằng ID phiên bản của anh ta sẽ là MSSQLSERVER cho phiên bản mặc định.

Cũng xin lưu ý rằng bạn không cần phải kích hoạt thư viện mạng TCP / IP để kết nối máy khách với dịch vụ. Máy khách cũng có thể kết nối thông qua thư viện mạng Bộ nhớ dùng chung (nếu máy khách ở trên cùng một máy) hoặc thư viện mạng Ống có tên.


3

Có thể nó không sử dụng TCP / IP

Hãy xem Trình quản lý cấu hình SQL Server để xem nó đang sử dụng các giao thức nào.


Cấu hình SQL Native Client? TCP / IP được Bật. Nhưng cổng mặc định được thiết lập để 1433: /
Keram

@keram Không - đó là dành cho khách hàng. Bạn muốn cấu hình máy chủ tiện dụng.
podiluska

nơi tôi có thể tìm thấy cấu hình đó?
keram


2

Trong doanh nghiệp của chúng tôi, tôi không có quyền truy cập vào Máy chủ MSSQL, vì vậy tôi có thể truy cập các bảng hệ thống.

Những gì hiệu quả với tôi là:

  1. nắm bắt lưu lượng mạng Wireshark(chạy với tư cách Quản trị viên, chọn Giao diện Mạng), trong khi mở kết nối với máy chủ.
  2. Tìm địa chỉ ip với ping
  3. lọc với ip.dst == x.x.x.x

Cổng được hiển thị trong cột infoở định dạngsrc.port -> dst.port


2

Đây là một tập lệnh khác mà tôi sử dụng:

-- Find Database Port script by Jim Pierce  09/05/2018

USE [master]
GO

DECLARE @DynamicportNo NVARCHAR(10);
DECLARE @StaticportNo NVARCHAR(10);
DECLARE @ConnectionportNo INT;

-- Look at the port for the current connection
SELECT @ConnectionportNo = [local_tcp_port]
 FROM sys.dm_exec_connections
    WHERE session_id = @@spid;

-- Look for the port being used in the server's registry
EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
                        ,@key =
                         'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
                        ,@value_name = 'TcpDynamicPorts'
                        ,@value = @DynamicportNo OUTPUT

EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
                        ,@key =
                         'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
                        ,@value_name = 'TcpPort'
                        ,@value = @StaticportNo OUTPUT

SELECT [PortsUsedByThisConnection] = @ConnectionportNo
      ,[ServerStaticPortNumber] = @StaticportNo
      ,[ServerDynamicPortNumber] = @DynamicportNo
GO

1

Hãy thử kích hoạt giao thức bằng cách: Trình quản lý cấu hình > Cấu hình mạng máy chủ SQL > Giao thức cho MSSQLSERVER > thuộc tính của TCP / IP


1

Thử một lần:-

USE master
DECLARE       @portNumber   NVARCHAR(10)
EXEC   xp_instance_regread
@rootkey    = 'HKEY_LOCAL_MACHINE',
@key        =
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll',
@value_name = 'TcpDynamicPorts',
@value      = @portNumber OUTPUT
SELECT [Port Number] = @portNumber
GO

0

Các chương trình SQL Server 2000 | MS SQL Server | Tiện ích mạng khách hàng | Chọn TCP_IP rồi chọn Thuộc tính

Các chương trình SQL Server 2005 | Máy chủ SQL | Trình quản lý cấu hình SQL Server | Chọn Giao thức cho MSSQLSERVER hoặc chọn Giao thức Máy khách và nhấp chuột phải vào TCP / IP


0

Hãy giải thích câu trả lời của bạn.
Harsh Wardhan

Mặc dù liên kết này có thể hỗ trợ bạn trả lời câu hỏi, nhưng bạn có thể cải thiện câu trả lời này bằng cách lấy các phần quan trọng của liên kết và đưa nó vào câu trả lời của bạn, điều này đảm bảo câu trả lời của bạn vẫn là câu trả lời nếu liên kết bị thay đổi hoặc xóa :)
WhatsThePoint

0

Một tùy chọn khác có thể là đọc Windows Registry. Sử dụng PowerShell, bạn có thể thực hiện một số việc như sau:

#Get SQL instance's Port number using Windows Registry:
$instName = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances[0]
$tcpPort = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$instName\MSSQLServer\SuperSocketNetLib\Tcp").TcpPort
Write-Host The SQL Instance:  `"$instName`"  is listening on `"$tcpPort`"  "TcpPort."

nhập mô tả hình ảnh ở đây Đảm bảo chạy tập lệnh PowerShell này trong Máy chủ lưu trữ (lưu trữ phiên bản SQL / cài đặt SQL Server của bạn), có nghĩa là trước tiên bạn phải RDP vào SQL Server / Box / VM, sau đó chạy mã này.

HTH

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.