巨详细的修改Esxi7.0管理端口教程
创作立场声明:本文所测商品为自费购入。如参加张大妈家的活动获得,我会在文中点明。坚持独立的评价观点是笔者创作的基本底线,绝不会因商品来源不同而有所偏颇,请各位放心。
新买了一个软路由,具体干什么用,会玩的老铁都是知道的,Esxi7.0默认的Web管理页面的端口是80和443,众所周知的原因,这两个端口一般会被运营商ban掉,所以为了能够远程访问Esxi的管理地址,最好修改一下管理端口,当然也可以用穿透的方式,这就看每个人选择了。这里用到的工具非常多。大家可得看仔细了。
Esxi的管理端口修改是在/etc/vmware/rhttpproxy/config.xml这个位置,但是这里修改了之后,Esxi重启之后就恢复默认了,所以不能从根本上解决问题。我网上也搜索了其他大神的做法,说是要把一些内容加到防火墙规则里,然后启动的时候更新防火墙。我也尝试了,不知道怎么回事,我root用户没有修改防火墙文件的权限,所以只能另辟蹊径了。
一、用到的软件
1. SUSE Linux Enterprise Server 11 with SP2 DVD 1。下载地址,提取码:151290。
2. VMware-player-12.5.6-5528349。下载地址,提取码:151290。
2. Vib软件包管理器。下载地址,提取码:151290。
3. WinSCP。下载地址,提取码:151290
4. Putty。下载地址,提取码:151290。
5. 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上传到虚拟主机的“tmp”目录下。
第二部:右键虚拟主机桌面,打开命令行窗口。键入图中命令。
cd /tmp
rpm -ivh vmware-esx-vib-author-5.0.0-0.0.847598.i386.rpm
cd /
第三步:安装完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>
上面这段代码中,需要修改的只有下面<name>标签里面的内容,这个根据自己需要改。这是在描述符.xml文件中指定的防火墙规则的名称。 它必须与customPort_service.xml中指定的ID值匹配。 还必须相应地命名customPort_service .xml。 就我而言,我将防火墙规则文件命名为customPort_service.xml。 顺便说一下,这就是在vSphere Client中查找列出的规则的方式。
<name>customEsxiWebPort</name>
2. 新建一个“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命令查看下,是否复制成功。
5. 最重要的合成
使用下面的命令进行合成,注意这里的“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文件,截图的时候弄混了,意思明白即可)
五、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。


























wmgylc
校验提示文案
hicool
校验提示文案
梁下君子
校验提示文案
Pillowpillow
校验提示文案
红红螃蟹
校验提示文案
i9366333
校验提示文案
钱包掉了
校验提示文案
梦晓生
校验提示文案
ufopig
校验提示文案
i9366333
校验提示文案
ufopig
校验提示文案
红红螃蟹
校验提示文案
梦晓生
校验提示文案
Pillowpillow
校验提示文案
钱包掉了
校验提示文案
梁下君子
校验提示文案
hicool
校验提示文案
wmgylc
校验提示文案