在代理后面时如何ping?

Laz*_*zer 42 linux proxy ping command-line http-proxy

我正在使用 HTTP 代理服务器连接到 Internet。

因此,我的 ping 无法正常工作

ping www.google.com
Run Code Online (Sandbox Code Playgroud)

说无法访问的主机

如何配置ping以使用 HTTP 代理?

sle*_*ske 40

一般来说你不能。ping需要 IP 级别的直接网络连接才能完成其工作。代理在TCP/IP 网络模型的更高层上工作,在那里不能直接访问 IP 协议。

您需要以某种方式绕过代理(更改防火墙设置,使用 VPN,...)。这是否可能(和允许)取决于您的网络配置,但这可能是不可能的。

作为一种解决方法,有许多基于 Web 的 ping 服务可用(搜索“基于 Web 的 ping”)。这些会起作用。


小智 10

你可以试试这个,但首先你必须安装 curl。

http_proxy=http://<proxy_username>:<proxy_password>@<your_proxy_server>:<your_proxy_port>  curl -I http://google.com/
Run Code Online (Sandbox Code Playgroud)

  • 这不是 PING。 (32认同)
  • 或者你可以使用 `curl -x 'http://&lt;proxy_username&gt;:&lt;proxy_password&gt;@&lt;your_proxy_server&gt;:&lt;your_proxy_port&gt;'` (3认同)
  • @törzsmókus:但这可能是问题来源的一个很好的答案......测试一下,是否有一些服务器可用并且可以正常工作! (2认同)
  • @törzsmókus - 你是对的,因为答案没有严格解决问题。可能的情况是 OP(或其他正在寻找类似想法的读者,如我自己)虽然对使用 ping 并不特别感兴趣,但仅将其用作测试给定 PC 是否达到外部网络(作为另一种用途,除了 Andreas Dietrich 的评论)。我发现这个答案**有用**(SO 背后的主要思想),至少其他 8 个用户也是如此。 (2认同)

Bog*_*tov 6

正如其他人指出的那样,ping不能通过代理工作。

\n\n

但你可以使用实用程序httping来实现这一点。它将 HEAD 请求(默认情况下)发送到 Web 服务器并测量获得响应所需的时间。

\n\n

例子:

\n\n
httping -x 192.68.1.12:1080 -g http://google.com\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出示例:

\n\n
\xe2\x9e\x9c  ~ httping -g http://google.com -c 3\nPING google.com:80 (/):\nconnected to 64.233.165.113:80 (313 bytes), seq=0 time= 38.49 ms \nconnected to 64.233.165.101:80 (313 bytes), seq=1 time= 66.94 ms \nconnected to 64.233.165.100:80 (313 bytes), seq=2 time= 40.79 ms \n--- http://google.com/ ping statistics ---\n3 connects, 3 ok, 0.00% failed, time 3162ms\nround-trip min/avg/max = 38.5/48.7/66.9 ms\n
Run Code Online (Sandbox Code Playgroud)\n\n

在哪里:

\n\n
    \n
  • -x- 代理服务器地址,端口可选
  • \n
  • -g- 发送\n请求的 URL
  • \n
\n\n

其他有用的选项:

\n\n
    \n
  • -5- 使用 SOCKS5。应该放在-x选项之后,即:

    \n\n
    httping -x localhost:1080 -5 -g http://google.com\n
    Run Code Online (Sandbox Code Playgroud)
  • \n
  • -c- 退出前发送多少个探测。默认为无限。
  • \n
  • -G- 执行 GET 请求而不是 HEAD 请求。这意味着整个页面/文件也将被传输。请注意,在这种情况下,您不再测量延迟!对于测试实际网站很有用。
  • \n
\n\n

请注意,测量的时间还包括代理服务器本身引入的延迟。

\n\n
\n\n

该实用程序可通过许多针对不同操作系统和 Linux 发行版的存储库获得:

\n\n

乌班图:

\n\n
sudo apt install httping\n
Run Code Online (Sandbox Code Playgroud)\n\n

高山:

\n\n
sudo apk add httping\n
Run Code Online (Sandbox Code Playgroud)\n\n

带有 Homebrew 的 macOS:

\n\n
brew install httping\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

再举一个例子,我曾经httping通过 Tor 代理估计连接到 Tor 网络的延迟:

\n\n
httping -x localhost:9050 -5 -g http://google.com\n
Run Code Online (Sandbox Code Playgroud)\n\n

我希望的唯一选择httping是能够要求 SOCKS5 代理进行域名解析,而不是自己进行解析,这是使用 Tor 更安全的方式。

\n\n
\n\n

这是作者网站的链接:

\n\n

https://www.vanheusden.com/httping/

\n

  • 这不是 ping。 Ping 工作在低级别,以便您获得更快的响应。如果您使用 httping,那么当它处理 HEAD 请求时,速度会有很大损失,具体取决于服务器处理请求、PHP、Node.js 等的能力。示例:对于 Google DNS 8.8.8.8,我得到的 ping 值小于 10 毫秒,但即使网站启用了 CDN,我通过 httping https://google.com/ 得到的 ping 值却为 120 毫秒。 (2认同)