如何修改 ESXi HTTP(s) 默认反向代理端口 80 和 443

How to Change Default HTTP/HTTPS Reverse Ports (80/443) on ESXi

Posted by sysin on 2026-07-13
Estimated Reading Time 8 Minutes
Words 1.6k In Total
更新日期:2026-07-13 13:19:09,阅读量:

请访问原文链接:如何修改 ESXi HTTP(s) 默认反向代理端口 80 和 443 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


片头 - 宣传标语:

VMware ESXi - 云计算操作系统

承载虚拟机、容器和 AI 工作负载的核心基石

修改后的效果图:

ESXi HTTPS 8443

本文介绍了如何将 ESXi Host Client(或称 VMware Host Client)默认的 HTTP(S) 反向代理端口(80 和 443)修改为 8080 和 8443(此为示例,可按需修改为指定端口)。适用于目前所有主流的 ESXi 版本。

需要注意的是:此类修改端口的操作不受 VMware 官方支持,请勿在生产环境中使用。

提示:之前称为 ESXi Host Client,ESXi 9.1 开始改名 VMware Host Client,参看:VMware Host Client 9.1 - 界面焕新, 体验升级

ESXi 6.x | 7.0

登录 ESXi Shell

编辑配置文件:vi /etc/vmware/rhttpproxy/config.xml,找到下面两行

1
2
3
4
5
<!-- HTTP port to be used by the reverse proxy -->
<httpPort>80</httpPort>

<!-- HTTPS port to be used by the reverse proxy -->
<httpsPort>443</httpsPort>

将 80 和 443 修改为指定的值并保存,例如:

1
2
3
4
5
<!-- HTTP port to be used by the reverse proxy -->
<httpPort>8080</httpPort>

<!-- HTTPS port to be used by the reverse proxy -->
<httpsPort>8443</httpsPort>

重启服务生效:/etc/init.d/rhttpproxy restart

还是无法访问?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cat > /etc/vmware/firewall/custom-rhttpproxy <<EOF
<ConfigRoot>
<service>
<id>rhttpproxy-sysin</id>
<rule id='0000'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>8443</port>
</rule>
<rule id='0001'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>8080</port>
</rule>
<enabled>true</enabled>
<required>false</required>
</service>
</ConfigRoot>
EOF

localcli network firewall refresh

如何恢复默认值?当然也是编辑上述配置文件。

ESXi 8.0

ESXi 8.0 的 Security Domain Enforcement policy 有所变更,参看:Domain enforcement change warnings observed on ESXi Host (87510)。修改方法也有所不同。

登录 ESXi Shell

1、禁用 rhttpproxyDom 强制策略

1
esxcli system secpolicy domain set -n rhttpproxyDom -l disabled

2、编辑配置文件

编辑配置文件:/etc/vmware/rhttpproxy/config.xml,找到下面两行

1
2
3
4
5
<!-- HTTP port to be used by the reverse proxy -->
<httpPort>80</httpPort>

<!-- HTTPS port to be used by the reverse proxy -->
<httpsPort>443</httpsPort>

将 80 和 443 修改为指定的值并保存,例如:

1
2
3
4
5
<!-- HTTP port to be used by the reverse proxy -->
<httpPort>8080</httpPort>

<!-- HTTPS port to be used by the reverse proxy -->
<httpsPort>8443</httpsPort>

3、重启反向代理服务

1
/etc/init.d/rhttpproxy restart

可选:检查服务运行状态

1
/etc/init.d/rhttpproxy status

4、开启自定义端口防火墙规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cat > /etc/vmware/firewall/custom-rhttpproxy <<EOF
<ConfigRoot>
<service>
<id>rhttpproxy-sysin</id>
<rule id='0000'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>8443</port>
</rule>
<rule id='0001'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>8080</port>
</rule>
<enabled>true</enabled>
<required>false</required>
</service>
</ConfigRoot>
EOF

localcli network firewall refresh

5、恢复反向代理服务的默认安全强制策略。

1
2
3
4
esxcli system secpolicy domain set -n rhttpproxyDom -l enforcing
# 报错:IO error: [Errno 111] Connection refused
# 应使用 localcli,区别在于绕过 hostd
localcli system secpolicy domain set -n rhttpproxyDom -l enforcing

ESXi 8.0U1 | U2 | U3

ESXi 8.0U1 开始,修改方法完全不同了。

登录 ESXi Shell

1、在当前目录下创建一个 json 配置文件用于指定 HTTP(S) 端口值。

1
2
3
4
5
6
7
8
cat >> proxy.json << __PROXY__
{
"proxy": {
"http_port": 8080,
"https_port": 8443
}
}
__PROXY__

或者

1
2
3
4
5
6
7
8
cat > proxy.json <<EOF
{
"proxy": {
"http_port": 8080,
"https_port": 8443
}
}
EOF

2、执行如下命令配置 rhttpproxy 属性

1
configstorecli config current set -c esx -g services -k rhttpproxy -infile proxy.json

可选:检查配置结果

1
configstorecli config current get -c esx -g services -k rhttpproxy

3、重启反向代理服务

1
/etc/init.d/rhttpproxy restart

可选:检查服务运行状态

1
/etc/init.d/rhttpproxy status

4、开启防火墙规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cat > /etc/vmware/firewall/custom-rhttpproxy <<EOF
<ConfigRoot>
<service>
<id>rhttpproxy-sysin</id>
<rule id='0000'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>8443</port>
</rule>
<rule id='0001'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>8080</port>
</rule>
<enabled>true</enabled>
<required>false</required>
</service>
</ConfigRoot>
EOF

localcli network firewall refresh

ESXi 9.0 | 9.1

登录 ESXi Shell

1、在当前目录下创建一个 json 配置文件用于指定 HTTP(S) 端口值。

1
2
3
4
5
6
7
8
cat >> proxy.json << __PROXY__
{
"proxy": {
"http_port": 8080,
"https_port": 8443
}
}
__PROXY__

或者

1
2
3
4
5
6
7
8
cat > proxy.json <<EOF
{
"proxy": {
"http_port": 8080,
"https_port": 8443
}
}
EOF

2、执行如下命令配置 rhttpproxy 属性

1
configstorecli config current set -c esx -g services -k rhttpproxy -infile proxy.json

可选:检查配置结果

1
configstorecli config current get -c esx -g services -k rhttpproxy

3、重启反向代理服务

1
/etc/init.d/rhttpproxy restart

可选:检查服务运行状态

1
/etc/init.d/rhttpproxy status

4、开启防火墙规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cat > /etc/vmware/firewall/custom-rhttpproxy <<EOF
<ConfigRoot>
<service>
<id>rhttpproxy-sysin</id>
<rule id='0000'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>8443</port>
</rule>
<rule id='0001'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>8080</port>
</rule>
<enabled>true</enabled>
<required>false</required>
</service>
</ConfigRoot>
EOF

localcli network firewall refresh

本站定制映像

更多:VMware 产品下载汇总


捐助本站 ❤️ Donate

点击访问官方网站


文章用于推荐和分享优秀的软件产品及其相关技术,所有软件默认提供官方原版(免费版或试用版),免费分享。对于部分产品笔者加入了自己的理解和分析,方便学习和研究使用。任何内容若侵犯了您的版权,请联系作者删除。如果您喜欢这篇文章或者觉得它对您有所帮助,或者发现有不当之处,欢迎您发表评论,也欢迎您分享这个网站,或者赞赏一下作者,谢谢!

支付宝赞赏 微信赞赏

赞赏一下


☑️ 尊敬的读者,欢迎留言❗️
敬请注册!点击 “登录” - “用户注册”(已知不支持 21.cn/189.cn 邮箱)。 请勿使用联合登录(已关闭)