2

我使用创建了一个虚拟接口

ifconfig eth0:1 192.168.50.10 netmask 255.255.255.0 up

现在我使用 curl 通过虚拟接口向服务器发送请求:

curl --interface 192.168.50.10 http://192.168.50.1:8080/myhostedapp

这工作正常,我的应用程序将源 ip 显示为 192.168.50.10,但如果服务器位于不同的子网上,并且可以从物理接口 (eth0) 访问,则连接超时。

所以这有效(通过物理接口) curl http://10.10.50.1:8080/myhostedapp

但这失败了: curl --interface 192.168.50.10 http://10.10.50.1:8080/myhostedapp.

为了10.10.50.1到达192.168.50.10,我将它添加到路由表中。

我需要配置什么才能10.10.50.1从那里访问192.168.50.10

4

2 回答 2

2

首先,你不应该再使用ifconfig了。它自 10 年左右以来一直无人维护,并且已知存在一些问题,尤其是。关于“虚拟接口”。

ipiproute2包装中更好地使用。

另请参阅有关ifconfigvs.ip的文章以及替换命令的外观:

现在关于您的问题:您的路由表是什么样的?请提供 和 的ip address show eth0输出ip route show。我怀疑你的路由表是罪魁祸首。

于 2013-11-06T11:06:31.907 回答
1

你必须设置 iptunnel 你可以看到这个链接它会更清楚,当你添加路由时还有一件事你添加了带有网关的路由。

https://unix.stackexchange.com/questions/44065/linux-networking-routing-to-virtual-ip-addresses-from-a-different-subnet

谢谢和问候,
阿洛克·塔克

于 2013-11-06T11:05:53.427 回答