我有一个有 2 个可用 IP 地址的 VPS。我想使用其中一个来接收连接,并在服务器建立连接时使用另一个。因此,如果连接的起始者不是 VPS,它将使用 IP 地址 A,如果是,它将使用 IP 地址 B。
VPS 正在运行 Ubuntu 16.04
我该怎么做呢?谢谢!
我有一个有 2 个可用 IP 地址的 VPS。我想使用其中一个来接收连接,并在服务器建立连接时使用另一个。因此,如果连接的起始者不是 VPS,它将使用 IP 地址 A,如果是,它将使用 IP 地址 B。
VPS 正在运行 Ubuntu 16.04
我该怎么做呢?谢谢!
当 Linux 建立传出连接时,它首先尝试使用在创建套接字时请求的任何地址应用程序。如果它没有请求任何特定的(或请求的),它会在路线中
0.0.0.0
寻找提示。您可以设置一条路由以向您分配的任何地址提供此类提示,这是通过命令
src
关键字完成的ip
:例如,在我的机器上,我有两个地址,
192.168.168.4/24
并且192.168.168.6/24
(为清楚起见,输出被剥离):要
192.168.168.6
用于传出路由,我必须告诉所有程序明确绑定到它,例如:或设置我的默认路由,以便默认选择它:
(默认路由默认没有提示;在这种情况下系统使用“已连接”提示。)还要注意,一些 src 已经在“已连接”路由中,由
ip address add
命令生成并由网络掩码定义:那是因为
.4
地址在这个系统上是“主要的”,然后.6
被添加。这两条路由是我在主表中的全部,所以现在我将连接.4
到同一 LAN 中的机器(当我通过“已连接”路由时)和从.6
它外部的机器连接(当我通过“默认“ 路线)。我也可以更新这条路线以.6
在其中使用地址:现在要使用
.4
地址,我必须明确地绑定到它,例如,使用ssh -b
,或设置带有“更长前缀”的附加路由到我想使用.4
地址的某些系统。所有时间机器都可以访问到两个 IP 地址的传入连接。如果我希望它只接受与其中一个的连接,我可以简单地阻止防火墙中不需要的连接。