我的要求是我应该能够连接到不在我的网络中的不同数据库。我应该能够通过防火墙建立连接,Nat.We尝试过Ngrok这是一个可以安装在我的网络机器中的工具。使用ngrok我们可以通过传递他们的tcp或http端口公开访问防火墙和Nat规则。
使用ngrok我可以通过在SQL服务器默认端口1433上创建TCP隧道来建立与某些第三方网络中的sql server的连接。为此我需要在该服务器中安装Ngrok。
我尝试使用ngrok通过暴露TCP 21(FTP协议)连接这些基于文件的数据库(例如:Visual Fox Pro),但没有成功。
如何连接到基于文件或使用任何其他工具的文档数据库?我无法通过暴露某些http或tcp端口进行隧道连接来找到连接它们的方法?
答案 0 :(得分:0)
如果不这样做,则无法绕过“他们的”防火墙规则:
如果你可以控制服务器,那么你只需暴露任何未被拒绝的端口(如端口80,如果端口被占用,请尝试另一端口)并将流量传递到数据库端口(如1433)。这不是ngrok正在做的事情。为此您可以使用:
netcat -L 127.0.0.1:1433 -p 80 -vvv
- 这意味着:侦听端口80,当有人从外部连接到端口80时,在那里建立与端口1433的端口连接。查看更多:http://www.devkb.org/linux/115-TCP-tunnel-port-forwarding-using-Netcat 注意,传统上隧道用于绕过“本地防火墙”。因此,例如,你有一个公司政策不允许某些网站(我有公司不允许SO本身!),但有Linux服务器免于这个政策。在这种情况下,SSH代理很有用。
答案 1 :(得分:0)
正如你所说。 VFP是基于文件的数据库。但是,Sybase有一个名为ADS(Advantage Database Server)的驱动程序。您可以使用它来作为基于服务的C / S数据库访问VFP数据。
由于您说ngrok是一个基于Go的实用程序,您不妨创建微服务,基于REST的webAPI ...在VFP数据库上执行CRUD操作。使用Go做类似的事情要比使用其他语言恕我直言更容易(至少它是我发现这种工作最容易的语言,不仅是它的网络功能,还有它的并发支持摇滚)。
答案 2 :(得分:0)
我们无法通过TCP隧道连接基于文件的数据库。因为TCP隧道适用于端口权限,而基于文件的数据库适用于访问文件路径。