新买了一个软路由,具体干什么用,会玩的老铁都是知道的,Esxi7.0默认的Web管理页面的端口是80和443,众所周知的原因,这两个端口一般会被运营商ban掉,所以为了能够远程访问Esxi的管理地址,最好修改一下管理端口,当然也可以用穿透的方式,这就看每个人选择了。这里用到的工具非常多。大家可得看仔细了。

Esxi的管理端口修改是在/etc/vmware/rhttpproxy/config.xml这个位置,但是这里修改了之后,Esxi重启之后就恢复默认了,所以不能从根本上解决问题。我网上也搜索了其他大神的做法,说是要把一些内容加到防火墙规则里,然后启动的时候更新防火墙。我也尝试了,不知道怎么回事,我root用户没有修改防火墙文件的权限,所以只能另辟蹊径了。如果你的权限问题能够解决,那么请参考大神 hitaoge 的文章。

一、用到的软件

  1. SUSE Linux Enterprise Server 11 with SP2 DVD 1。 下载地址 ,提取码:mns6。
  2. VMware-player-12.5.6-5528349。 下载地址 ,提取码:hhzl。
  3. Vib软件包管理器。 下载地址 ,提取码:fy32。
  4. WinSCP。 下载地址 ,提取码:f5th。
  5. Putty。 下载地址 ,提取码:5hzk。
  6. NotePad++。 下载地址 ,提取码:151290。

二、工作原理

  1. 由于 vmkernel 使用的是内存文件系统,配置、日志、补丁都保存在内存中,直接修改防火墙配置文件 /etc/vmware/firewall/service.xml 会在系统重启后丢失配置。所以我们要想办法让系统重启后仍能加载配置文件。
  2. 在官方的文档中,提到用vib文件让系统重启后自动加载,所以我们的主要工作内容是制作一个vib文件,使其挂载到Esxi中,重启后也能加载配置。
  3. 制作vib文件,需要两个xml,一个为”descriptor.xml“,其文件名不可更改,切记!第二个xml文件为”customPort_service.xml“,此文件名可以自己命名,最好为英文格式。

三、制作环境搭建

  1. 安装VMware player。下载 VMware-player-12.5.6-5528349 后,双击安装。

  2. 创建虚拟机。打开VMware player,在窗口中点击“创建新的虚拟机”,并加载下载好的 SUSE ISO 镜像。 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 配置虚拟机网络。

    第一步,先看下本地新增的网络连接。查看一下IP地址所在的网段。下面虚拟机设置为相同网段即可。 在这里插入图片描述
    第二步,在虚拟机设置中,设置IP地址。记得在网络适配器中选择自定义NAT模式。 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    最后在Windows的命令行中ping一下看看通不通。

  4. 安装环境依赖项。一个是“python-lxml”,另外一个是“python-urlgrabber”。
    第一步:进入虚拟主机的软件管理界面。 在这里插入图片描述
    第二步:搜索”python-lxml”并安装。 在这里插入图片描述
    第三步:搜索“python-urlgrabber”并安装。 在这里插入图片描述

  5. 用WinSCP连接虚拟机,并上传安装 Vib软件包管理器
    第一步:连接虚拟主机,并把“vmware-esx-vib-author-5.0.0-0.0.847598.i386.rpm”这个文件通过WinSCP上传到SUSE虚拟主机的“tmp”目录下。 在这里插入图片描述
    第二步:右键虚拟主机桌面,打开命令行窗口。键入图中三条命令。

    cd /tmp
    rpm -ivh vmware-esx-vib-author-5.0.0-0.0.847598.i386.rpm
    

    在这里插入图片描述
    第三步:安装完Vib管理器后,在虚拟主机中创建目录,如上图最下面的红框。

    mkdir stage
    mkdir stage/payloads
    mkdir stage/payloads/payload1
    mkdir stage/payloads/payload1/etc
    mkdir stage/payloads/payload1/etc/vmware
    mkdir stage/payloads/payload1/etc/vmware/firewall
    

    四、Vib文件的合成

    根据上面的步骤,我们已经把相关的环境搭建完毕了,下面就是要制作Vib文件了。这个文件制作好之后,只需要安装进Esxi,就能使我们的配置生效了。

    1. 本地新建一个xml文件“descriptor.xml”,切记文件名不要修改。
    <vib version="5.0">
    <type>bootbank</type>
    <name>customEsxiWebPort</name>
    <version>5.0.0-6.5.0</version>
     <vendor>Altaro</vendor>
     <summary>Altaro Boot From Backup</summary>
     <description>Adds outbound ports required by the Boot from Backup feature</description>
     <relationships>
      <depends></depends>
      <conflicts/>
      <replaces/>
      <provides/>
      <compatibleWith/>
     </relationships>
     <software-tags> 
     </software-tags>
     <system-requires>
      <maintenance-mode>false</maintenance-mode>
     </system-requires>
     <file-list>
      <file></file>
     </file-list>
     <acceptance-level>community</acceptance-level>
     <live-install-allowed>true</live-install-allowed>
     <live-remove-allowed>true</live-remove-allowed>
     <cimom-restart>false</cimom-restart>
     <stateless-ready>true</stateless-ready>
     <overlay>false</overlay>
     <payloads>
      <payload name="payload1" type="vgz"></payload>
     </payloads>
    </vib>
    

    上面这段代码中,需要修改的只有下面标签里面的内容,这个根据自己需要改。这是在描述符.xml文件中指定的防火墙规则的名称。 它必须与customPort_service.xml中指定的ID值匹配。 还必须相应地命名customPort_service .xml。 就我而言,我将防火墙规则文件命名为customPort_service.xml。 顺便说一下,这就是在vSphere Client中查找列出的规则的方式。

    <name>customEsxiWebPort</name>
    
    1. 新建一个“customPort_service.xml”文件,这里的文件名可以自定义。里面的内容如下:
    <!-- Firewall configuration information -->
    <ConfigRoot>
      <!-- Known and blessed services -->
      <service id='0088'>                   
        <id>customEsxiWebPort</id>                  
        <rule id='0000'>                    
          <direction>inbound</direction>    
          <protocol>tcp</protocol>          
          <porttype>dst</porttype>          
          <port>1682</port>                 
        </rule>   
    	<rule id='0001'>                    
          <direction>inbound</direction>    
          <protocol>tcp</protocol>          
          <porttype>dst</porttype>          
          <port>902</port>                  
        </rule>                             
        <rule id='0002'>                    
          <direction>inbound</direction>    
          <protocol>tcp</protocol>          
          <porttype>dst</porttype>          
          <port>1688</port>                 
        </rule>   
    	<rule id='0003'>                    
          <direction>inbound</direction>    
          <protocol>tcp</protocol>          
          <porttype>dst</porttype>          
          <port>2233</port>                 
        </rule>   
        <enabled>true</enabled>             
        <required>false</required>          
      </service>                                                                                
    </ConfigRoot>
    

    在上面这段代码中,<service id='0088'>这个标签里的“id”值尽量大一点,不要重复即可。然后下面的<id>customEsxiWebPort</id> 这个标签里的“id”值,要必须跟上面descriptor.xml文件中的<name>customEsxiWebPort</name>的值保持一致。上面的端口,根据自己的需要进行设置,我这里把HTTP的端口设为1682,HTTPS的端口设置为1688。
    3. 使用WinSCP上传XML文件到虚拟主机的tmp目录下。在这里插入图片描述
    4. 把上传的两个xml文件复制到创建的目录中
    首先,descriptor.xml文件上传到stage目录中,第二,customPort_service.xml上传到./stage/payloads/payload1/etc/vmware/firewall这个目录下面。

    cp /tmp/descriptor.xml ./stage
    cp /tmp/customPort_service.xml ./stage/payloads/payload1/etc/vmware/firewall
    

    在这里插入图片描述
    复制完之后,可以用ls命令查看下,是否复制成功。

    1. 最重要的合成
      使用下面的命令进行合成,注意这里的“customEsxiWebPort”。
    vibauthor -C -t stage -v customEsxiWebPort -f
    

    在这里插入图片描述
    出现上图中的“Successfully”提示,表示Vib文件创建成功。
    6. 将创建好的“customEsxiWebPort.vib”文件,用命令复制到虚拟主机SUSE的tmp目录。

    cp customEsxiWebPort.vib /tmp
    

    在虚拟主机SUSE的命令行窗口,通过上述命令把刚刚创建的“customEsxiWebPort.vib”文件复制到tmp目录。
    7. 用WinSCP把“customEsxiWebPort.vib”下载到本地,然后上传到Esxi的tmp目录下。(请忽略图中的文件名不一致问题,我个人在测试过程中合成了几个vib文件,截图的时候弄混了,意思明白即可)从SUSE下载vib文件到本地

    五、Esxi下安装vib文件

    1. 使用putty连接Esxi主机,按顺序键入一下三条命令。请严格安装本文顺序。
    esxcli software vib install -v /tmp/customEsxiWebPort.vib -f
    esxcli software acceptance set --level=CommunitySupported
    esxcli software vib list | grep 'Altaro'
    

    在这里插入图片描述
    通过上述步骤后,我们创建的customEsxiWebPort.vib文件,已经正式安装到Esxi主机里了。可以在命令行查看一下。
    在这里插入图片描述
    2. 最重要的,一定要调整Esxi的管理端口。上述的全部过程,意思是创建了一个防火墙规则文件,防火墙中允许HTTP的1682,HTTPS的1688这两个端口。
    第一步:键入命令“vi /etc/vmware/rhttpproxy/config.xml”,在打开的文件中,找到HttpPort和HttpsPort。
    在这里插入图片描述
    然后在命令行窗口键入“i”进入编辑模式,修改为我们规划好的端口号。然后按下“Esc”键退出编辑模式。最后在命令行窗口键入“:wq”进行保存,wq前有个英文冒号,不要忘记。
    第二步:还是在上面的命令行窗口,键入命令“/etc/init.d/rhttpproxy restart”重启服务。即可。
    3. 至此,所有的工作已经完成。可以进入虚拟机管理页面查看设置的防火墙规则。在这里插入图片描述

    六、最方便的办法

    上面说了这么多,确实非常麻烦,如果你对整个过程已经蒙圈或者不想这么麻烦,这里提供一个我设置好的vib文件,只需要从上面的第五部分开始即可。当然,我设置的端口号是1682和1688,这个改不了了,不介意的话就用我的vib文件,介意的话就自己动手吧。我的vib文件,提取码:151290。

    首先到esxi上,按F2进入本地控制台用root用户登录,看到configure Management network(配置管理网络),打开network adapters(网络适配器),选择需要开启管理接口的网卡,再到ip configration(ip地址配置)中配置。这里可以看到所有的物理网口 4个网口名称为 vmnic 0到4,检查多个网口网线连接状态,Connected状态的为网线连接到其他网络设备。登录后,点击主机,切换到配置选项卡,确认IP地址和MAC地址和检查状态。 1.可进入登录界面,输入用户名和密码; 2.Troublesboot Options 按enter键进入下级页面; 3.在选择ssh选项是enter键切换启用或者禁用。(显示Disable为已开启,是关闭 一、终端开启SSH功能,方便修改出错维护1.按F2进入登录界面,输入用户名和密码;2.Troublesboot Options 按enter键进入下级页面;3.在选择ssh选项是enter键切换启用或者禁用。(显示Disable为已开启,是关闭选项)二、VI编辑器修改网页端口号vi /etc/vmware/rhttpproxy/config.xml原内容80443修改后88334433三、增加防火... 2.Troublesboot Options 按enter键进入下级页面; 3.在选择ssh选项是enter键切换启用或者禁用。 可以用xshell远程连接(必须保证你的笔记本和服务器在同一网段) 或者直接在终端按Alt+F1出现控制台输命令 然后修改默认端口有以下两种方法: 一、关闭防火墙:ESXi修改默认HTTP默认80和443端口 二、不关闭防火墙:按下列7个步骤操作即可 vi /etc/vmware/rhttpproxy/con 等物理服务器提供ESXi系统支持,您可在下单时选择该系统。ESXi服务器开通后,您可根据实际需要修改默认远程端口。下面一起来看下ESXi服务器修改远程端口的操作步骤介绍。以上是ESXi服务器修改远程端口的主要操作步骤介绍,如果您开通的是ESXi服务器,那么可参考上述步骤来修改远程端口,并使用新的端口登录。ESXi本身可以看做一个操作系统,采用Linux内核,可直接安装在物理服务器上,不需安装其他操作系统。1、首先使用SSH工具登录到ESXi服务器(如基于ESXi系统的。5、最后,重启ESXi服务器测试。 前面我们已经实现了,ESXI服务器中的虚拟网络和外面物理网络的对接。完成这些之后,只是迈出了ESXI网络这一步,下面依然有许多关于ESXI网络的功能和方案,以及概念需要我们去学习。 也许看到标题,你会感觉:这不是纯纯的是网络知识吗?怎么和虚拟化扯上了。没错,这是ESXI虚拟化,但是在说到网络时,是不分家的。下面开始学习。 1、概念:顾名思义,端口组:一组端口的组合。 依然是点击到虚拟交换机:我们也许会发现,这里端口组中,显示的是:2。什么含义呢?如下解释: 我们还是看拓扑图,来查看端口组: vCenter Server系统需要绑定端口389,即使没有将此 vCenter Server实例加入到链接模式组。如果此端口上正在运行另一服务,则最好移除该服务,或将其端口更改为其他端口。vCenter Server系统还使用端口443侦听从vSphere Web Access Client和其他SDK客户端传输的数据。如果意外使用了http://server而不是https://server,此端口将非常有用。如果此端口上正在运行另一服务,则最好移除该服务,或将其端口更改为其他端口