IceSandwich

将虚拟机localhost端口转发到宿主机上

将虚拟机localhost端口转发到宿主机上

字数统计: 588阅读时长: 2 min
2021/02/03 Share

前言

我有一个软件在虚拟机里,监听一个端口。我想在宿主机上能访问这个端口,显然,一个端口转发就能解决的事情。但是,我发现事情没那么简单。因为,这个软件太狡猾了,它的端口规定必须是在回环地址127.0.0.1上,改成0.0.0.0会阻止你进一步的操作。接下来,就要将这种不可能的事情实现。

准备

已知软件开放地址: 127.0.0.1:49158

需要在虚拟机转发到的地址: 0.0.0.0:49158

需要在宿主机能访问的地址:127.0.0.1:49158

虚拟机

前面我们提到,只要端口挂载在0.0.0.0上,就可以用端口转发完成。那么端口在127.0.0.1上呢?是不是也可以用端口转发将127.0.0.1的转发到0.0.0.0呢?

准备LCX

LCX是一个端口转发工具 ,具有两大功能,一个是端口转发,一个是端口映射[1]。127.0.0.1的端口,可以通过LCX将其映射到0.0.0.0某个端口上,但不是转发

首先在这里下载lcx.exe或者portmap(linux版本),这里我虚拟机用的是win7,因此我下载了lcx.exe。linux版使用方法请参考[1]。

下载后放进虚拟机环境中,下图是我们用的虚拟机,用的是NAT网络,不是桥接哦。

使用LCX

我们用的是端口映射的方式将localhost的端口映射到0.0.0.0某个端口上,则运行以下命令:

1
lcx.exe -tran 49158 127.0.0.1 49158

tran指定在0.0.0.0上的端口,接下来两个参数表示转发到哪里。这里表示,来自0.0.0.0:49158的分组,转发到127.0.0.1:49158中,实现一次端口映射。成功后将能看到下图的界面。

然后使用ipconfig /all查看虚拟机的ip地址,这里是10.0.2.15,这个ip地址当然是内网的拉。

配置端口转发

如图设置端口转发,主机表示宿主机,子系统表示虚拟机。

宿主机

其实现在宿主机可以直接访问了。

大功告成←_←,耗了我一个下午。。。


  1. https://www.freebuf.com/articles/web/170970.html

CATALOG
  1. 1. 前言
  2. 2. 准备
  3. 3. 虚拟机
    1. 3.1. 准备LCX
    2. 3.2. 使用LCX
    3. 3.3. 配置端口转发
  4. 4. 宿主机