为安全主机URL执行Ping

时间:2013-03-06 22:52:45

标签: macos cocoa terminal ping

我正面临PING实用程序的一个奇怪问题。当我在终端上执行PING命令来测试主机的连接时,它可以在以太网上正常工作,但在WiFi上则不行。但我可以使用我的应用程序在WiFi上访问主机。唯一的区别是我在从我的应用程序连接主机时使用HTTPS。现在,当我使用HTTPS为主机添加前缀时://终端上出现“未知主机”错误。知道什么可能是错的吗?以及如何在这样的安全服务器上执行Ping?

ping -c10 -b en1 test.retail.com

1 个答案:

答案 0 :(得分:2)

似乎对ping正在做什么有误解。 Ping正在发送ICMP echo请求数据包并等待相应的响应。 ICMP是与TCP完全不同的网络协议,用于HTTPS。

主机可以响应HTTPS连接尝试但不响应ping(例如,因为主机本身上的防火墙或您与尝试ping的主机之间的路上某处丢弃了ICMP回应请求数据包或响应) ,反之亦然(例如,因为主机没有运行Web服务器,或者访问它受限制/防火墙)。

Ping是查看是否可以访问配置为响应ICMP echo请求数据包的主机的正确工具(如果您可以合理地假设您与主机之间或主机之间没有防火墙,则过滤掉这种类型的网络流量),并确定您和主机之间的响应时间。

但是,如果要测试主机是否在某个TCP端口上响应(例如,HTTP Web服务器的端口80,或HTTPS Web服务器的端口为443),则可以在终端中使用Telnet:

telnet www.google.com 80

如果有服务器正在侦听该TCP端口,您会看到如下内容:

Trying 173.194.69.106...
Connected to www.google.com.
Escape character is '^]'.

如果它是一个Web服务器,那么如果你愿意,你甚至可以将HTTP与它对话:

GET /

它会回复:

HTTP/1.0 302 Found
Location: http://www.google.com/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
(...)

既然我们已经解决了这个问题,那么问题仍然是您的主机确实通过以太网响应ping,而不是通过Wi-Fi。

一个原因可能是许多网络允许在使用有线以太网连接时不受限制地访问所有内部主机,但是有一个防火墙可以限制从无线网络到LAN或DMZ上的主机的连接。

您尝试ping的主机位于何处?网络流量如何从以太网和Wi-Fi网络路由到您的主机?