有没有办法用代理(http 代理或 Socks)发送 ICMP 请求?如果可能的话,请给我一个例子(使用任何语言,perl、python 等)。提前致谢。
答案1
这是不可能的。SOCKS4(SOCKS5)仅允许封装 TCP(& UDP)。请参阅下文以了解更多解释。
ICMP 是 IP 堆栈 Internet 层的一部分,与 OSI 模型的第 3 层(网络层)最为接近。SOCKS 在 OSI 模型的第 5 层(会话层)运行,可能位于 IP 堆栈中传输层的顶部附近。
因此它无法封装较低层信息,例如 ICMP。您必须使用模拟 IP 堆栈中低于 ICMP 的协议之一的协议。这包括允许您发送 IP 数据包的 IPSec 和充当数据链路层(第 2 层)的 L2TP。
如果您确实需要这样做,我建议您使用 Windows 内置的 VPN 功能来设置 L2TP VPN。有关您的使用案例的更多信息将有助于我们更好地回答您的问题。
答案2
我听说过的最接近的词是 SAA - 服务保障代理:http://en.wikipedia.org/wiki/Service_Assurance_Agent