工作中经常会碰到,有的客户做一些网络应用在调试的时候经常需要断网操作,但是厂商提供的IPMI地址都是内网的,工作的跳板机又不想给客户使用,这个时候只能使用厂商提供的公网IPMI功能,这个功能需要客户提供本地IP,然后在功能面板上将IPMI内网地址和客户本地IP地址绑定,这功能看上去很高大上,但是使用起来问题多多,首先并不是每个客户都愿意提供本地IP的,其次大家在本地大部分使用的都是动态IP地址,谁知道啥时候IP就变了,所以就导致很多客户都连接不上,而且有些客户打着不能连接的幌子将问题推给我,而且给客户绑定好我们自己还不能测试(只有绑定的本地IP地址才能访问公网IPMI),又不想浪费自己的时间来帮别人工作,经过研究发现在跳板机上使用端口转发就可以实现厂商提供的公网IPMI功能,而且跳板机上有好几个IP闲着没在使用,下面会进行详细介绍如何在跳板机上做公网IPMI功能将问题推回给客户。
首先介绍下厂商机器提供的IPMI全部是超威的IPMI,在使用内网IP打开的网页里面进行登录操作,登录页面
从页面我们可以看到IPMI的IP地址提供了80端口的网站服务,所有的功能都集成在网站里面,从这个推断我们必须要转发80端口来提供网站的正常使用,嗯,接下来让我们看看除了建立的80端口的通信外,还有没有其他的端口来通信,首先发下正常情况下的iKVM控制台的页面
打开了Java 的iKVM之后我们来看下是否还有其他的网络连接,在DOS下使用命令netstat -ant | findstr 172.17.5.36 来查询下,果然还有其他的TCP连接,查询结果如下图:
果然除了80端口还有一个5900端口的连接,所以我们除了需要转发80端口,还要转发5900端口
好了知道了哪些端口在通信就可以开始动手了,因为工作机是windows系统,所以这里只介绍一些Windos环境下的端口转发方法。
一共三个命令
- 创建一个端口转发连接
命令:netsh interface portproxy add v4tov4 listenaddress=用来转发IP的公网IP listenport=80 connectaddress=172.17.5.36 connectport=80
- 查看所有已创建的转发连接
命令:netsh interface portproxy show all
- 删除一个端口转发连接
命令netsh interface portproxy delete v4tov4 listenaddress=用来转发IP的公网IP listenport=80
好了,我们来用创建的命令我们分别创建 将我们要转发的IP的80端口转发到内网IPMI的80端口、
5900端口转发到5900端口。设置好后就可以测试了。
等客户使用完不要忘了用删除命令来删除转发哦。
注意:转发端口前一定要确定端口没有被占用。