我使用
创建了一个虚拟界面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
?
答案 0 :(得分:2)
首先,您不应再使用ifconfig
了。它已经维持了10年左右,并且已知有一些问题,尤其是关于“虚拟接口”。
最好使用ip
包中的iproute2
。
另请参阅有关ifconfig
与ip
的文章以及替换命令的内容:
现在关于您的问题:您的路由表是什么样的?请提供ip address show eth0
和ip route show
的输出。我怀疑你的路由表是罪魁祸首。
答案 1 :(得分:1)
你必须设置iptunnel,你可以看到这个链接,它会更清楚,当你添加路由时,还有一件事就是你用网关添加了路由。
谢谢&问候,
Alok Thaker