阿里云经典网络的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]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 使用`curl`命令可以过发送HTTP求来检查网络是否畅。 在终端中输入以下命令: ``` curl www.example.com ``` 这将向"www.example.com"发送一个GET求。如果该网站的服务器可以访问,并且网络畅,你将收到一个响应,包含该网站的HTML源代码。如果网络不通畅或网站服务器不可访问,你将收到一个错误提示。 如果要检查其他网络端口或测试其他HTTP方法,可以使用下面的命令: ``` curl -X POST www.example.com ``` 这将发送一个POST求给指定的网址。 过在命令中加入一些选项,你可以调整`curl`命令的行为。例如,可以使用`-v`选项来显示更多的详细输出信息,或者使用`-I`选项来只返回HTTP头部信息而不下载整个网页内容。 总之,过使用`curl`命令并发送HTTP求,你可以检查网络是否畅,并在必要时获取其他网络相关信息。 ### 回答2: curl是一个常用的命令行工具,可以用来发送HTTP求并获取响应。过使用curl命令可以判断网络是否畅。 首先,在终端中输入以下命令: ``` curl 网址 ``` 其中,网址是你要测试的网址。如果curl能够成功获取到网址返回的内容,则说明网络畅;反之,如果curl无法获取到内容或者提示连接超时等错误信息,则说明网络不通畅。 此外,还可以使用curl的一些参数来更详细地判断网络是否畅。例如,可以使用`-I`参数来仅获取HTTP响应头信息,而不下载HTML内容。如果curl能够成功获取到响应头信息,则说明网络畅。 另外,还可以使用`-s`参数来隐藏curl命令的一些输出信息。这样在终端中执行curl命令后,如果没有任何输出,则可以判断网络畅;如果有输出信息,则说明网络不通畅。 总之,过使用curl命令并结合一些参数,可以判断网络是否畅。如果能够成功获取到网页内容或者响应信息,则网络畅;反之,则网络不通畅。 ### 回答3: Curl是一个命令行工具,用于与服务器进行信并获取数据。要查看网络是否畅,可以使用curl来发送一个简单的GET求,并检查响应。 首先,打开终端或命令提示符,并在命令行中输入curl命令,后面跟上要求的URL。例如: ``` curl http://www.example.com ``` 执行此命令后,curl将发送一个GET求到指定的URL,并等待服务器的响应。如果返回了响应,说明网络畅的;如果没有返回响应,可能存在网络问题。 另外,可以使用curl的-v选项(或--verbose)来查看更详细的求和响应信息。例如: ``` curl -v http://www.example.com ``` 执行此命令后,curl会显示每个步骤的详细信息,包括DNS解析、连接建立、求和响应的头部信息等。过观察这些信息,可以更直观地判断网络是否畅。 总结来说,使用curl发送一个简单的GET求并检查响应,或者使用curl的-v选项查看详细的求和响应信息,都可以帮助我们判断网络是否畅。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值