Yesterday, I noticed an interesting error when trying to connect directly to the vSphere MOB on an ESXi 6.0 host. The following error message was displayed on the browser:

503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x4bf02038] _serverNamespace = /mob _isRedirect = false _pipeName =/var/run/vmware/proxy-mob)

This was the first time I had noticed this as I normally use the vSphere MOB for debugging purposes or exploring the vSphere API. The vSphere MOB is also a quick an handy way to unregister vSphere Plugins when connecting to vCenter Server.

I did some further investigation and it turns out that in vSphere 6.0, the vSphere MOB will be disabled by default on an ESXi 6.0 host. The reason for this is to provide security hardening out of the box for ESXi versus having an administrator harden after the fact. If you are familiar with the vSphere Security Hardening Guides, you will recall one of the guidelines is to disable the vSphere MOB on an ESXi host and with vSphere 6.0, this is now done automatically for you. This information will also be documented as part of the vSphere 6.0 documentation when it GAs.

If you still need to access the vSphere MOB on an ESXi how, this of course can be re-enabled from the default. There is also a new ESXi Advanced Setting called Config.HostAgent.plugins.solo.enableMob which easily controls whether the vSphere MOB is enabled or disabled as seen in the screenshot below.

You have the option of using either the vSphere C# Client as shown in the screenshot above or the vSphere Web Client to configure the ESXi Advanced Setting:

You can also configure this property using the vim-cmd in the ESXi Shell.

Listing the ESXi Advanced Setting using vim-cmd:

vim-cmd hostsvc/advopt/view Config.HostAgent.plugins.solo.enableMob

Configuring the ESXi Advanced Setting to true:

vim-cmd hostsvc/advopt/update Config.HostAgent.plugins.solo.enableMob bool true

If you prefer to automate this using PowerCLI or vSphere API, this can also be done. Below are two examples using the Get-VmHostAdvancedConfiguration and Set-VMHostAdvancedConfiguration PowerCLI cmdlets.

Listing the ESXi Advanced Setting using PowerCLI:

Get-VMHost | Get-VmHostAdvancedConfiguration -Name Config.HostAgent.plugins.solo.enableMob | Format-List

Configuring the ESXi Advanced Setting to true:

Get-VMHost | Set-VMHostAdvancedConfiguration -Name Config.HostAgent.plugins.solo.enableMob  -Value True

If you rely on using the vSphere MOB on ESXi and would like this to be your default, I would recommend you update either your ESXi Kickstart or Host Profile to include this additional configuration so that you do not get like I did 🙂 If you only need to use the vSphere MOB on occasion or do not have a use for it at all, then leaving the default is sufficient.

10 thoughts on “Quick Tip - vSphere MOB is disabled by default in ESXi 6.0

  1. Was just going through the hardening guide and saw the MOB item. One thing thing to worry about in 6. The PowerCLI that you show, I’m assuming that only works in 6?

  2. Thanks. This is exactly what I needed to get the esxi-simple-web to work for ESXi 6.0. Keep being brilliant man.

  3. Hi William,

    After updating PSC to the latest patch, I’ve got this error when I try to access this node using HTTPS protocol:

    503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x7f326a5f8920] serverNamespace = / isRedirect = false _pipeName =/var/run/vmware/vpxd-webserver-pipe)

    It somehow looks similar to what you have here. Could you suggest how to troubleshoot this issue please?

  4. I got error

    “Failed to login: Invalid response code: 503 Service Unavailable”

    when I execute

    vim-cmd hostsvc/advopt/update Config.HostAgent.plugins.solo.enableMob bool true

    command from direct SSH connection.

    Please, any help will be appreciated

  5. PowerCLI C:\> Get-VMHost | Get-VmHostAdvancedConfiguration -Name config.HostAgent.plugins.solo.enableMob | Format-List

    WARNING: Use Get-AdvancedSetting cmdlet instead.

    Name : Config.HostAgent.plugins.solo.enableMob
    Value : False

    Do you know what the correct syntax would be using the newer cmdlet?

Thanks for the comment!

This site uses Akismet to reduce spam. Learn how your comment data is processed.