欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-23 16:23:44
...
现在有三台阿里云经典网络的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]