如何实现针对vmware windows虚拟机内 代理,实现win虚拟机访问大世界?

场景:

pc主机上 运行着一个 vmware,内有windows虚拟机和Linux虚拟机,都是vmnet8 nat。

pc主机上启动了某代理软件,代理软件的运行端口如下。
image.png

需求:

实现windows虚拟机内 能够正常访问 外部世界

备注:

  1. 在路由器上搞代理,这样整个局域网内都可以使用 ,这个方案不要提了
  2. 在windows虚拟机内 安装 购买的 代理软件(也就是吧pc主机 安装的代理软件安装到虚拟机内部) 这种方案也不要提了
  3. windows 虚拟机内配置 代理服务器为 pc主机的代理服务器,这种方案要求pc主机关闭防火墙,因此方案不行。

目前尝试的方案

https://xz.aliyun.com/t/13167
这篇文章提到了 使用 Proxifier 接管所有流量,针对 vmware的exe 做代理。 我试了下没有成功。
配置vm开头的所有exe 都使用指定的代理服务器,不管是 https还是socks5都不行。windows虚拟机内都无法访问youtube
image.png

且 Proxifier 流量界面没显示 代理到了vm的流量
image.png

问题

  1. 为什么上面的配置方案没有代理到vm的流量
  2. 如何实现 对虚拟机的代理?
阅读 4.3k
avatarAI BotBETA

回答问题

1. 为什么上面的配置方案没有代理到vm的流量

配置 Proxifier 来接管所有流量并指向特定的代理服务器时,需要确保以下几点:

  • Proxifier 是否已正确设置为系统级别的代理,接管所有网络流量。
  • 指定的代理服务器是否正在运行并且配置正确。
  • 虚拟机是否配置为通过宿主机的网络进行连接(NAT模式或桥接模式)。
  • 防火墙设置是否允许 Proxifier 和虚拟机之间的通信。

对于你的情况,如果 Proxifier 没有显示代理到 VM 的流量,可能是因为:

  • 虚拟机的网络流量没有被 Proxifier 捕获。这可能是因为虚拟机网络设置(如 VMnet8 NAT)与 Proxifier 的配置不兼容。
  • Proxifier 没有被配置为系统级别的代理,或者其规则没有正确应用到虚拟机的网络流量。
  • 防火墙设置阻止了 Proxifier 或虚拟机的网络通信。

2. 如何实现 对虚拟机的代理?

对于 VMware 中的 Windows 虚拟机,如果你不想在虚拟机内部安装代理软件,也不想在路由器上设置代理,可以考虑以下几种方法:

方法 1: 使用 VMware 的网络设置

  • 确保虚拟机使用 NAT 或桥接模式连接到宿主机网络。
  • 在宿主机上设置代理服务器,并将代理服务器的 IP 地址和端口配置到虚拟机的网络设置中(这通常是通过在虚拟机内部配置网络连接的代理设置来实现的,但这违反了你的要求)。

方法 2: 使用端口转发

  • 在宿主机上运行一个可以监听特定端口的程序(如 SSH 服务器、ncat、socat 等)。
  • 配置该程序将所有进入的流量转发到代理服务器的对应端口。
  • 在虚拟机中配置网络连接以使用宿主机作为网关,并指定上述监听的端口作为代理端口。

方法 3: 使用网络层的解决方案

  • 使用 iptables(Linux)或 Windows 防火墙规则(如果可能)在宿主机上设置网络层的转发和路由规则。
  • 这种方法需要深入了解网络配置和防火墙规则,可能比较复杂。

方法 4: 使用透明代理

  • 在宿主机上运行一个透明代理服务器(如 Redsocks、Transparent Proxy 等)。
  • 配置透明代理服务器以拦截虚拟机的网络流量,并将其转发到指定的代理服务器。
  • 在虚拟机中无需进行任何配置,因为流量会在网络层被透明地代理。

注意:以上方法可能需要根据你的具体环境和需求进行调整。特别是网络层的解决方案和透明代理可能需要较深的网络知识。此外,使用透明代理可能会涉及到一些法律和道德问题,因为这种方法可能会绕过某些安全或监控措施。在尝试这些方法之前,请确保你了解并遵守了所有相关的法律和规定。

2 个回答

在虚拟机里面装一个软路由系统,软路由lan接需要上外网的虚拟机。

应该是最简单并且满足你需要的方式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题