请原谅(可能)noob问题,但我对Linuxnetworking很新。 我已经花了几天的时间在网上search我的问题的答案,但无法find一个,所以我决定在这里发布一个问题,因为我知道很多熟练的专业人士访问这个网站。
无论如何,在实际的问题:我有两个服务器可用。 我们称之为Server-A和Server-B。 我使用OpenSWAN在Server-A和Server-B之间build立了一个VPN隧道。 我为服务器A分配了源IP:192.168.2.1,为服务器B分配了172.16.2.1。 我成功地能够从Server-A ping 172.16.2.1,从Server-B ping 192.168.2.1,所以我假设我已经正确设置了VPN,并且两台服务器都能够通信。
现在,在服务器-A,我想能够做到这一点:
当我通过libcurl发出一个HTTP请求,像这样:
curl http://checkip.dyndns.com/
我想看看通过服务器的公共IP地址发出的请求。
但是,当我发出:
curl –interface 192.168.2.1 same_url_as_in_the_above_request
我希望请求通过VPN,为了使用服务器B的Internet访问,所以我希望看到服务器B的公共IP地址在checkip响应中列出。
现在,当我发出这样的请求时,我收到以下错误:
curl(7):无法连接到主机
我能做些什么来达到这个目标,还是完全走错了路? 所有我想要做的就是使用服务器-A从服务器-A的Internet访问只访问某些网站,或者当服务器-A的ISP由于某种原因而closures时。 我不需要自动化,只是希望能够在需要时手动执行此操作。
我想我需要做一些路由或NAT,但我不知道该怎么做 – 过去几天我已经阅读了很多资料,但是我很难弄清楚确切的iptables和/或路由命令应该看起来像,如果在所有设置VPN是正确的解决scheme。
我真的希望这里有人能给我一个build议,我真的很抱歉,如果我让你们都笑这样一个noob问题。
最好的祝福!
只能访问某些网站
真正最简单的方法是通过HTTP代理 – 并通过PAC文件将路由select推送给berowser。
或者由于某种原因服务器A的ISP出现故障时
这需要一个非常不同的解决scheme – 使用路由(无论是在iptables或通过iproute2)。
VPN实际上并不是必需的 – 但是如果你想运行一个远程的HTTP代理,而不是每个可以find的代理欺诈者使用的(*),那么你必须有一些方法来限制客户端访问服务 – 一个VPN是实现这一目标的好方法。
*)现在我看到更多的尝试find打开的Web代理比我看着的盒子上打开SMTP中继