请问怎么样在一个服务器下建多个对外IP?

  • 回答 (3)
  • 关注 (0)
  • 查看 (4005)

用户1061866用户1061866提问于
医生修改于

一个服务器当然可以有多个外网 IP,使用弹性网卡绑定弹性公网 IP 即可。

要想实现上述效果,该CVM必须属于私有网络(VPC),否则请重新购买(没有 VPC 的,请先完成第 1 步,再购买 CVM)。

在开始之前,请重复这句话:

CVM 绑定的是内网 IP,不是外网 IP!

CVM 绑定的是内网 IP,不是外网 IP!

CVM 绑定的是内网 IP,不是外网 IP!

0. 使用约束

首先来明确一下约束条件。由于内网 IP 和外网 IP 是一对一的关系,所以我们有:

网卡绑定 IP 数 = 可绑定内网 IP 数 = 可绑定公网 IP(EIP 数)

1. 创建私有网络(如有,可跳过)

https://console.cloud.tencent.com/vpc

切换到目标地域,点击新建:

2. 创建使用VPC的CVM(如有,可跳过)

https://buy.cloud.tencent.com/cvm

按照正常流程购买 CVM,第 3 步“网络类型”选择私有网络,“网络”选择刚才创建的 VPC 和子网:

3. 创建弹性网卡并将 IP 与其绑定

https://console.cloud.tencent.com/vpc/eni

切换到目标地域,点击新建,选择所属网络和所属子网,并分配内网IP:

(这里我们选择手动填写,以保持一致性)

接下来,给辅助网卡绑定弹性 IP(EIP)。

点击弹性网卡 ID,再点击 IP 管理,在“已绑定弹性公网 IP”处点击绑定(如有已经有公网 IP了,则这步操作可以省略):

至此,我们有:

(1)私有网络 1 个(成都地域,名称 cd,CIDR 10.9.0.0/16);

(2)子网 1 个(成都一区,名称 cd_zone1_sub1,所属网络 cd,CIDR 10.9.1.0/24)

(3)CVM 1 台(名称 cvm_1,所属网络 cd / cd_zone1_sub1)

(4)CVM 对应的主网卡一个(所属 CVM cvm_1,主 IP 10.9.1.100)

(5)CVM 对应的辅助网卡一个(所属 CVM cvm_1,主 IP 10.9.1.101)

需要在腾讯云管理中心进行的操作都完成了。

4. 在 CVM 中绑定 IP(Windows)

打开我们熟悉的 网络和共享中心 > 更改适配器设置:

发现网卡 1 工作正常,而网卡 2 显示为“未识别的网络”。

首先打开网卡 1 的属性 > IPv4 > 属性:

可以观察到 IP 地址是 CVM 对应的“主网卡”的内网 IP 地址(可以在上一步的页面中点击主网卡对应的网卡 ID,在 “IP 管理”页面中查看或修改)。记下这个窗口中填写的所有信息,点击“取消”关闭。

再打开网卡 2 的属性 > IPv4 > 属性,仿照上面的内容,IP 地址修改成刚才给辅助网卡分配的内网 IP 地址(如本文中的10.9.1.101)点击“确定”,出现下图提示,再点“确定”即可。

之后可以试着 ping 一下两个外网 IP,验证配置是否成功。

5. 在 CVM 中绑定 IP(以 CentOS 7 为例)

众所周知,CentOS 在修改网络配置时有临时和永久两种模式,在这里只介绍后者。

首先切换到/etc/sysconfig/network-scripts/ 目录下,将 ifcfg-None 文件删除,否则之后无法正常重启网络服务。

然后执行命令:

cp ifcfg-eth0 ifcfg-eth1

将 eth0 的配置文件复制。

再执行:

vim ifcfg-eth1

将 DEVICE 和 IPADDR 分别修改为 eth1 和 辅助网卡的内网 IP 地址(如本文中的10.9.1.101),保存并退出。

然后编辑路由:

vim /etc/iproute2/rt_tables

将以下两行按顺序插入相应位置:

252 e0
251 e1

最后在开机启动脚本 /etc/rc.local 中加入:

(其实直接执行以下命令是可以的,但是重启之后会失效,所以还是加入 rc.local 中,以确保重启有效)

ip route flush table e0
ip route add default via 10.9.1.1 dev eth0 src 10.9.1.100 table e0
ip route add 127.0.0.0/8 dev lo table e0
ip rule add from 10.9.1.100 table e0
 
ip route flush table e1
ip route add default via 10.9.1.1 dev eth1 src 10.9.1.101 table e1
ip route add 127.0.0.0/8 dev lo table e1
ip rule add from 10.9.1.101 table e1

最后

reboot

即可生效。

用户1061866回答于

我建立了弹性公网IP, 但是通过 SSH访问不了这个类型为辅助IP的公网IP, 但却可以访问类型为主IP的公网IP,请问这是什么原因?

心尚未夜不让评论,就踩。哪怕说得再好。回答于

泻药~

一个服务器一次只能使用一个公网IP,一个内网IP,如果想使用多个IP。可以尝试使用腾讯云退出的弹性公网IP,弹性 IP 地址是专用于动态云计算的静态 IP 地址。与传统静态 IP 地址不同,弹性IP可以与任一服务器绑定,您可以绑定至A服务器也可以绑定至B服务器。 当服务器发生故障或可用区存在故障时,您可以将 IP 地址重新映射到健康的服务器上,这样您便可以在处理服务器问题的同时提供服务。

https://cloud.tencent.com/document/product/213/5733

可能回答问题的人

  • 腾讯云计算产品团队

    腾讯云 · 产品团队 (已认证)

    148 粉丝0 提问0 回答
  • CVM 产品团队

    30 粉丝0 提问8 回答
  • 小仙女和科学家

    10 粉丝0 提问0 回答
  • 怕冷的阳阳

    腾讯云 · 高级工程师 (已认证)

    21 粉丝1 提问0 回答
  • DRRR

    腾讯云 · 产品经理 (已认证)

    7 粉丝0 提问4 回答
  • candyxiao

    腾讯 · 高级产品经理 (已认证)

    15 粉丝0 提问7 回答

扫码关注云+社区

领取腾讯云代金券