无法使用 VPN 代理连接远程本地 Rest API 并从中获取数据
Unable to connect and get data from remote local Rest API with VPN proxy
我正在尝试连接到远程本地服务器以从其 Rest API 获取数据。我在 ASP.NET MVC 项目中使用 RestSharp。当我与远程本地服务器建立 VPN 连接时(通过默认 Windows VPN 连接),我能够使用 Postman 并成功地从他们的 API 获取数据。我将使用此数据将新记录添加到我的数据库或仅显示给我项目中的用户。
但是没有 VPN 连接,我无法使用 Restsharp 连接到远程本地服务器。它给我超时错误。我的 RestSharp 配置 C# 代码如下:
public async Task<ActionResult> PersonalList()
{
var options = new RestClientOptions("http://5.2.xxx.xx") //Remote local server IP
{
Proxy = new WebProxy("192.168.1.240", 12001), //Remote local API url and port
ThrowOnAnyError = true
};
var client = new RestClient(options);
client.Authenticator = new HttpBasicAuthenticator("myUserNameWhichIuseAtWindowsVPNConnection", "myPasswordWhichIuseAtWindowsVPNConnection");
var req = new RestRequest("/datasnap/rest/ServerMethods/GetPersonalList", Method.Get); //Get personal list API url
var resp = await client.ExecuteAsync(req);
return View();
}
我没有更改或添加任何功能配置或 web.config 默认凭据。
现在,我很困惑“我尝试的方法是否正确?或者这种与远程本地服务器的连接是不可能的吗?”。如果这是错误的方式,我应该如何部署这个项目?如果我将它部署到他们的本地服务器,他们只能在本地使用它(此外,当我通过 VPN 连接到他们的本地服务器时,我无法使用他们的互联网连接。我只能使用他们的“192.168.1.240:12001”。) .我希望他们在离开公司时使用它,而不仅仅是在本地。
可能是我一时糊涂把很多不同的问题搞混了,不好意思。但是,如果您能建议我解决这种情况的最佳做法是什么,我将非常高兴。
这里不要太苛刻,而是要快速更正术语...当您写:“远程本地服务器”时,我认为您的意思是您想要连接到来自 'remote server' 的远程服务器您的 'local computer' 通过 VPN。只有当您的 VPN 客户端处于活动状态时,您才能这样做。像“远程本地”这样将这两个词放在一起至少对我来说是令人困惑的。 :)
当 VPN 客户端打开时 - 它会修改您的本地操作系统并提供一种机制(具体机制取决于您的 VPN)让您的操作系统理解 IP“5.2.xxx.xx”是以某种方式可以从您的本地计算机寻址。您的操作系统将接收您告诉它发送到“5.2.xxx.xx”的数据包,并将它们传输到您的 VPN 的另一端。一旦到达另一端,VPN 就知道如何将您的流量发送到 实际 目标。
当您关闭 VPN 时 - 您将失去 VPN 为您的操作系统提供的“魔力”。突然你的 OS 不明白如何将 IP 数据包从你的本地计算机发送到“5.2.xxx.xx”。这将导致您的代码返回某种“我无法连接”(例如超时,或 'no route to host' 或类似的错误)
If this is wrong way, how should I deploy this project?
这个问题很难回答。您可以将服务器暴露给开放的互联网,但我怀疑这是您不想想要做的事情,因为您使用的是 VPN?
If I deploy it to their local server, they only use it locally (In additon, I can't use their internet connection when I connect to their local server via VPN. I can use only their "192.168.1.240:12001".).
如果您在连接到 VPN 时无法使用“他们的”互联网连接(我想您是指您的互联网连接?),这听起来好像 VPN 不是“split-tunnel”。这意味着您的所有流量都通过他们的 VPN,并且您的流量可能会被 VPN 的安全规则拦截(并阻止您)。
I want them to use it when they are out of their company, not only locally.
他们需要在 VPN 上,否则他们将无法访问。这就是它的工作原理。
您要问的是 'pretty big' 主题。观看一些关于 VPN 工作原理和 IP 网络的一般性的 youtube 视频可能是值得的。我想这会帮助你理解。 :|我知道这不是一个很好的答案,但它可能是你应该做的。
我正在尝试连接到远程本地服务器以从其 Rest API 获取数据。我在 ASP.NET MVC 项目中使用 RestSharp。当我与远程本地服务器建立 VPN 连接时(通过默认 Windows VPN 连接),我能够使用 Postman 并成功地从他们的 API 获取数据。我将使用此数据将新记录添加到我的数据库或仅显示给我项目中的用户。
但是没有 VPN 连接,我无法使用 Restsharp 连接到远程本地服务器。它给我超时错误。我的 RestSharp 配置 C# 代码如下:
public async Task<ActionResult> PersonalList()
{
var options = new RestClientOptions("http://5.2.xxx.xx") //Remote local server IP
{
Proxy = new WebProxy("192.168.1.240", 12001), //Remote local API url and port
ThrowOnAnyError = true
};
var client = new RestClient(options);
client.Authenticator = new HttpBasicAuthenticator("myUserNameWhichIuseAtWindowsVPNConnection", "myPasswordWhichIuseAtWindowsVPNConnection");
var req = new RestRequest("/datasnap/rest/ServerMethods/GetPersonalList", Method.Get); //Get personal list API url
var resp = await client.ExecuteAsync(req);
return View();
}
我没有更改或添加任何功能配置或 web.config 默认凭据。
现在,我很困惑“我尝试的方法是否正确?或者这种与远程本地服务器的连接是不可能的吗?”。如果这是错误的方式,我应该如何部署这个项目?如果我将它部署到他们的本地服务器,他们只能在本地使用它(此外,当我通过 VPN 连接到他们的本地服务器时,我无法使用他们的互联网连接。我只能使用他们的“192.168.1.240:12001”。) .我希望他们在离开公司时使用它,而不仅仅是在本地。
可能是我一时糊涂把很多不同的问题搞混了,不好意思。但是,如果您能建议我解决这种情况的最佳做法是什么,我将非常高兴。
这里不要太苛刻,而是要快速更正术语...当您写:“远程本地服务器”时,我认为您的意思是您想要连接到来自 'remote server' 的远程服务器您的 'local computer' 通过 VPN。只有当您的 VPN 客户端处于活动状态时,您才能这样做。像“远程本地”这样将这两个词放在一起至少对我来说是令人困惑的。 :)
当 VPN 客户端打开时 - 它会修改您的本地操作系统并提供一种机制(具体机制取决于您的 VPN)让您的操作系统理解 IP“5.2.xxx.xx”是以某种方式可以从您的本地计算机寻址。您的操作系统将接收您告诉它发送到“5.2.xxx.xx”的数据包,并将它们传输到您的 VPN 的另一端。一旦到达另一端,VPN 就知道如何将您的流量发送到 实际 目标。
当您关闭 VPN 时 - 您将失去 VPN 为您的操作系统提供的“魔力”。突然你的 OS 不明白如何将 IP 数据包从你的本地计算机发送到“5.2.xxx.xx”。这将导致您的代码返回某种“我无法连接”(例如超时,或 'no route to host' 或类似的错误)
If this is wrong way, how should I deploy this project?
这个问题很难回答。您可以将服务器暴露给开放的互联网,但我怀疑这是您不想想要做的事情,因为您使用的是 VPN?
If I deploy it to their local server, they only use it locally (In additon, I can't use their internet connection when I connect to their local server via VPN. I can use only their "192.168.1.240:12001".).
如果您在连接到 VPN 时无法使用“他们的”互联网连接(我想您是指您的互联网连接?),这听起来好像 VPN 不是“split-tunnel”。这意味着您的所有流量都通过他们的 VPN,并且您的流量可能会被 VPN 的安全规则拦截(并阻止您)。
I want them to use it when they are out of their company, not only locally.
他们需要在 VPN 上,否则他们将无法访问。这就是它的工作原理。
您要问的是 'pretty big' 主题。观看一些关于 VPN 工作原理和 IP 网络的一般性的 youtube 视频可能是值得的。我想这会帮助你理解。 :|我知道这不是一个很好的答案,但它可能是你应该做的。