本文介紹用戶的公網IP不固定時,如何定位真實的公網IP地址。
場景一
問題描述
用戶的公網IP不固定,使用本地IP查看工具定位到的IP不準確,即使將查詢到的本地IP加入了RDS的白名單中,連接RDS的時候也會報錯。因此,用戶需要查詢到準確的客戶端IP才能訪問RDS。
注意事項
如果您在生產環境中發現本地設備的公網IP地址會變化,建議您改為使用內網連接,或者在白名單中配置合理的公網IP段,確保不會因為IP地址改變而斷連。
獲取客戶端IP
將IP地址
0.0.0.0/0
加入RDS實例的白名單中。具體操作,請參見設置白名單。重要0.0.0.0/0
表示允許任何IP訪問RDS實例,測試完成后請立即修改。使用客戶端連接RDS SQL Server數據庫。具體操作,請參見連接SQL Server實例。
執行如下命令,查詢客戶端IP。
SELECT CONNECTIONPROPERTY('PROTOCOL_TYPE') AS PROTOCOL_TYPE, CONNECTIONPROPERTY('CLIENT_NET_ADDRESS') AS CLIENT_NET_ADDRESS
如下表示已查詢成功:
將步驟1在白名單中添加的0.0.0.0/0條目刪除,添加上真實的出口IP。
場景二
問題描述
若您需要統計已連接到RDS SQL Server數據庫的所有IP,或定位一些安全問題(如鏈接泄露等),可以使用以下方法獲取已連接到數據庫的所有IP。
獲取所有連接到數據庫的IP
將IP地址
0.0.0.0/0
加入RDS實例的白名單中。具體操作,請參見設置白名單。重要0.0.0.0/0
表示允許任何IP訪問RDS實例,測試完成后請立即修改。使用客戶端連接RDS SQL Server數據庫。具體操作,請參見連接SQL Server實例。
執行如下命令,查詢所有連接到數據庫的IP。
SELECT SP.SPID, SP.LOGINAME, SP.LOGIN_TIME, SP.HOSTNAME, SP.PROGRAM_NAME, DC.CLIENT_TCP_PORT, DC.CLIENT_NET_ADDRESS FROM SYS.SYSPROCESSES AS SP INNER JOIN SYS.DM_EXEC_CONNECTIONS AS DC ON SP.SPID = DC.SESSION_ID WHERE SP.SPID > 50 AND DC.AUTH_SCHEME='SQL'
如下表示已查詢成功:
將在步驟1中添加的0.0.0.0/0或您公司的IP段從白名單中刪除。
查看更詳細的連接參數配置
在查詢到已連接到數據庫的所有IP后,若您需要查看單個連接更詳細的參數配置,請執行如下命令:
SELECT * FROM SYS.DM_EXEC_SESSIONS WHERE SESSION_ID=<之前獲取的SPID>
如下表示已查詢成功:
文檔內容是否對您有幫助?