阿里云经典网络的ECS虚拟机,通过某一台有外网机器代理上网,curl通但是ping不通,具体请看如下描述

阅读更多
现在有三台阿里云经典网络的ECS虚拟机,其中机器A有两块网卡,其它两台机器B和C只有内网网卡,现在机器B和C想通过机器A上外网,由于之前咨询阿里回复经典网络的虚拟机不支持snat转发,所以这次我改用代理上网方式,代理软件为tinyproxy,具体情况如下:
机器A:linux系统
这台机器有两块网卡,
内网网卡:
IP:10.162.43.191
子网掩码:255.255.240.0

外网网卡:
IP:112.124.104.258
子网掩码:255.255.252.0
我在机器A安装了tinyproxy,端口:8888,没有密码;配置并在防火墙中允许

机器B:linux系统 这台机器没有外网,但是可以ping 通机器A内网网卡 (10.162.43.191)
IP:10.168.198.230
子网掩码:255.255.248.0

我在机器B执行了export http_proxy=http://10.162.43.191:8888
并关闭了防火墙,可以通过wget www.baidu.com下载文件index.html,或者curl -l http://www.baidu.com可以查看到百度首页html,但是ping www.baidu.com提示connect: Network is unreachable,运行在这个机器里面的java服务也需要http访问外网,同样提示connect: Network is unreachable

机器C:windows系统
这台机器没有外网,也可以ping 通机器A内网网卡 (10.162.43.191)
IP:10.161.176.44
子网掩码:255.255.240.0
在IE中设置代理访问10.162.43.191:8888可以正常上网

下面是我的疑问:
机器C可以通过机器A的tinyproxy代理正常上网说明机器A安装的代理可用,机器B通过curl -l 可以查看百度网页应该也是可以上网的,但是为什么所有的HTTP请求域名就不能访问了呢,我看了很多技术博客,有配置路由表的,也有配置DNS的,还有配置网关的,无一能用。

所以我想知道如何让java服务发送的http请求能访问外网?

请网络和linux技术帮忙给看看,问题出在了哪里.[/size]

你可能感兴趣的:(ECS虚拟机,网络,代理,linux)