SQL Server용 Linux 서버를 통해 Windows 간 터널링이 가능합니까?

SQL Server용 Linux 서버를 통해 Windows 간 터널링이 가능합니까?

가끔 다른 위치에 있는 MS SQL Server의 일부 데이터를 확인해야 합니다.
현재로서는 데이터베이스 백업을 만들고 파일을 다운로드하여 .bak로컬 컴퓨터에서 복구할 수 있도록 다른 서버로 이동해야 합니다. 그러나 데이터베이스가 증가하고 있으므로 이것이 고통스럽기 시작했습니다.

Win 7 -> Linux -> Windows Server 2008 with SQL ServerMS SQL Management Studio용 터널을 만드는 것이 가능합니까(그리고 어떻게?) ?
Linux와 Windows Server는 다른 위치의 동일한 네트워크에 있습니다. 외부에는 Linux 서버만 표시됩니다.

불행히도 어떤 컴퓨터에서도 변경할 수 없습니다.
Putty를 통해 SSH 터널을 시도했지만 실패했습니다.

답변1

win7 컴퓨터에서 putty를 열고 Linux SSH 세션에 대해 다음 설정을 지정합니다. 연결->SSH->터널->소스 포트: 1433, 대상: 192.168.0.3:1433, 로컬 라디오 버튼을 선택합니다.

이제 win7 시스템에서 localhost:1433에 연결할 수 있습니다.

답변2

예, 가능해야 합니다. 구경하다여기, 예를 들어. 터널 설정에 도움이 필요한 경우 추가 정보를 제공해야 합니다.

답변3

흠, Linux 서버의 iptables에 새 규칙을 추가할 수 있다면 간단한 포트 전달을 통해 이를 수행할 수 있습니다. 그러나 이는 데이터베이스를 인터넷에서 볼 수 있게 만들기 때문에 매우 위험하다는 점에 유의하세요. 물론 데이터베이스 서버에 연결해야 하고 표준이 아닌 포트를 사용해야 하는 경우에만 포트 전달을 활성화할 수 있습니다. Linux 시스템의 iptables에 넣어야 하는 규칙은 다음과 같습니다.


-A PREROUTING -p tcp -m tcp -s IPOFYOURNETWORK --dport PORTNUMBER1 -j DNAT --to-destination IPOFDATASERVER:PORTNUMER2
-A POSTROUTING -d IPOFDATASERVER -j MASQUERADE

IPOFYOURNETWORK는 연결을 시도할 네트워크 또는 컴퓨터의 IP입니다.

PORTNUMBER1은 데이터베이스가 표시되기를 원하는 포트입니다(비표준 포트를 설정할 수 있음).

IPOFDATASERVER:PORTNUMER2는 데이터베이스 서버의 IP와 포트입니다.

답변4

FINESEC의 설명에 따라 "연결이 적극적으로 거부되었습니다" 오류가 발생할 수 있습니다.

터널 아래의 Putty에서 "로컬 포트가 다른 호스트의 연결을 허용합니다." 및 "원격 포트도 동일한 작업을 수행합니다." 확인란을 선택하여 문제를 해결했습니다. 누군가가 이것이 유용하다고 생각하는 경우.

관련 정보