玩转软路由 篇二:巨详细的修改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。下载地址,提取码:mns6。

2. VMware-player-12.5.6-5528349。下载地址,提取码:hhzl。

3. Vib软件包管理器。下载地址,提取码:fy32。

4. WinSCP。下载地址,提取码:f5th。

5. Putty。下载地址,提取码:5hzk。

二、工作原理

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文件,截图的时候弄混了,意思明白即可)

从SUSE下载vib文件到本地

从本地上传vib文件到Esxi

五、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。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348