如何通过虚拟接口发送请求

时间:2013-11-06 10:59:09

标签: linux networking

我使用

创建了一个虚拟界面
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

2 个答案:

答案 0 :(得分:2)

首先,您不应再使用ifconfig了。它已经维持了10年左右,并且已知有一些问题,尤其是关于“虚拟接口”。

最好使用ip包中的iproute2

另请参阅有关ifconfigip的文章以及替换命令的内容:

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

答案 1 :(得分:1)

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

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

谢谢&问候,
Alok Thaker