当前位置: 首页 > 知识库问答 >
问题:

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

邴子实
2024-07-03

场景:

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. 如何实现 对虚拟机的代理?

共有2个答案

丁长卿
2024-07-03

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

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

吕承望
2024-07-03

回答问题

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 等)。
  • 配置透明代理服务器以拦截虚拟机的网络流量,并将其转发到指定的代理服务器。
  • 在虚拟机中无需进行任何配置,因为流量会在网络层被透明地代理。

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

 类似资料:
  • 用于管理通过编排部署的虚拟机应用实例。 虚拟机实例用于管理基于应用市场部署的虚拟机应用。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “运维工具/编排/虚拟机实例” 菜单项,进入虚拟机实例页面。 新建虚拟机实例 该功能用于部署虚拟机实例。 在虚拟机实例页面,单击列表上方 “新建” 按钮,跳转到应用市场-虚拟机类型页面。 在应用市场页面部署应用,具体步骤请参考应用市场-部署虚拟机实

  • nginx安装好之后一般会在/etc/nginx/目录下有nginx.conf文件和conf.d目录,这其实已经帮我们预留了虚拟主机要准备的内容。 看下nginx.conf文件,里面有这样一行: include /etc/nginx/conf.d/*.conf; 那么也就是说ngixn启动都会自动加载conf.d目录下以.conf结尾的所有配置文件 ok,我们直接干掉nginx.conf里面se

  • 通常自己电脑维护一套开发环境,但是不同项目往往不是同一个框架的大版本,新旧差别挺大。 已知可以用虚拟机安装一个系统,在虚拟机里维护旧/新项目的环境依赖,例如各类工具的CLI版本、nodejs、jdk等等。但其实基本是用命令行,安装一个图形化的系统有点浪费,本身系统还占空间。

  • 本文向大家介绍利用virtualbox虚拟机实现端口转发,包括了利用virtualbox虚拟机实现端口转发的使用技巧和注意事项,需要的朋友参考一下 virtualbox虚拟机实现端口转发,具体内容如下 1.应用场景 突破上网限制(如在公司内部限制访问外部网络,但是开放了某些端口,可以利用开放的某些端口实现端口重定向) 远程桌面重定向 NC重定向获得Shell 2.实验环境 virtualbox虚拟

  • 熟悉使用 Vagrant 管理虚拟机的流程。 查看状态 如果你已经登录到了虚拟机上,先退出来。在命令行下看到下面提示符就表示你已经登录到虚拟机上了: [[email protected] ~]$ 输入命令: exit 应该会返回: logout Connection to 127.0.0.1 closed. 现在你的位置应该是在项目的根目录下面,先查看一下虚拟机的状态: vagrant st

  • 查看虚拟机相关的监控告警信息。 监控菜单下的虚拟机页面主要用于查看虚拟机相关的监控告警信息。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “监控/资源/虚拟机” 菜单项,进入虚拟机页面。 查看虚拟机列表 该功能用于查看虚拟机的监控告信息。 在虚拟机页面,支持查看以下信息: 名称:虚拟机的名称。 IP:虚拟机的IP地址。 监控状态:虚拟机是否设置告警以及发生告警。 状态:虚拟机的当