我已经按照本指南进行了Amazon EC2 上的多个 IP 地址并采用了列出的第二种方法,即向单个接口添加两个 IP 地址。这是通过向适配器添加两个私有 IP,然后将弹性 IP 与每个私有地址关联来完成的。
当我运行类似的命令时,curl
它使用主 IP 地址,我想知道如何将其更改为默认使用其他 IP 地址。这是设置:
公共(弹性)IP
54.140.250.140
54.81.231.80
私有IP
172.30.0.50
172.30.0.122
添加弹性和私有 IP 后,我执行以下操作:
ip addr add dev eth0 172.30.0.122/24
为了确认它正常工作,我可以这样做:
curl icanhazip.com
54.81.231.80
curl --interface 172.30.0.50 icanhazip.com
54.81.231.80
curl --interface 172.30.0.122 icanhazip.com
54.140.250.140
如您所见,默认路由是通过原始/主 IP 完成的。
这是运行的数据ifconfig
eth0 Link encap:Ethernet HWaddr 12:34:56:78:90:ab
inet addr:172.30.0.50 Bcast:172.30.0.255 Mask:255.255.255.0
inet6 addr: aabb::cccc:dddd:eeee:ffff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9001 Metric:1
RX packets:713 errors:0 dropped:0 overruns:0 frame:0
TX packets:631 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:63726 (63.7 KB) TX bytes:827217 (827.2 KB)
lo .... omitted ....
这就是我从跑步中得到的route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.30.0.1 0.0.0.0 UG 0 0 0 eth0
172.30.0.0 * 255.255.255.0 U 0 0 0 eth0
我尝试使用这样的脚本更改“默认”路线。我使用screen
这样的脚本将在我断开连接后继续(猜测是第一行导致的):
/sbin/route del default
/sbin/route add default via 172.30.0.122 dev eth0 tab 1
我也尝试过不使用tab 1
但仍然没有运气。
如何设置“默认”使用哪个传出 IP?
我还想知道是否可以指定只有到特定范围 IP 的流量才使用辅助地址作为默认地址。
答案1
ip route replace default via 172.30.0.1 src 172.30.0.122