使用内网ip可以正常启动, 但是使用外网IP 不能正常启动

tiup playground --host 112.74.106.92 Error: run /root/.tiup/components/playground/v1.7.0/tiup-playground (wd:/root/.tiup/data/Spe6Rko) failed: exit status 2 有什么好的方法解决

1赞

来自 @kongdom 应该就是防火墙的原因

1赞

来自 @buptzhoutian 的回复:
不了解情况,如果是公有云的话,也可能是因为外网地址是 EIP,不能在机器内部指定的

1赞

来自 @myronwang 的回复:对,这个情况要确认下。看外网 IP 是绑定本机上,还是云主机的 EIP

1赞

云服务器的话,要去控制台开放端口

1赞

都已经开放了 开放端口号:

firewall-cmd --permanent --zone=public --add-port=2379/tcp

firewall-cmd --permanent --zone=public --add-port=9090/tcp

firewall-cmd --permanent --zone=public --add-port=3000/tcp

firewall-cmd --reload

云主机的控制的 端口号 全部开放了

1赞

systemctl stop firewalld.service 防火墙关闭了都不行

1赞

云主机的 控制台的端口号 全部都开放的

1赞

看来真的不能用 公网的 IP 内网IP(172.23.151.35) 和 127.0.0.1 才能用, 不知有什么好的解决方法么
tiup playground --host 0.0.0.0 此种方式只能启动的是内网IP
Waiting for tiflash instances ready
CLUSTER START SUCCESSFULLY, Enjoy it ^-^
To connect TiDB: mysql --comments --host 172.23.151.35 --port 4000 -u root -p (no password)
To view the dashboard: http://172.23.151.35:2379/dashboard
PD client endpoints: [172.23.151.35:2379]
To view the Prometheus: http://172.23.151.35:9090
To view the Grafana: http://172.23.151.35:3000

1赞

问题解决了吗?

1赞

ip addr 命令的结果贴出来看看?确定机器上真实存在一个网卡而且它的地址是112.74.106.92 吗?

1赞

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:18:54:00 brd ff:ff:ff:ff:ff:ff
inet 172.23.151.35/20 brd 172.23.159.255 scope global dynamic eth0
valid_lft 315230756sec preferred_lft 315230756sec
inet6 fe80::216:3eff:fe18:5400/64 scope link
valid_lft forever preferred_lft forever
[root@iZwz9cst9esm4oileq1g9cZ ~]#
172.23.151.35 是内网IP 外网IP 是 阿里云分配给我的

你好。112.74.106.92 这个公网 IP 没有绑定到本机物理网卡上,当然不能直接使用。(这是阿里的 EIP,云主机上的服务是不能直接监听这个地址的)
如果你要通过公网 IP 访问,可以使用 --host 0.0.0.0 先监听到本机的所有网卡上,然后通过控制台(可能叫组策略、组安全策略等)开放公网 IP 的 TiDB 相关服务端口,同时确保本机防火墙也开放相应端口,这样通常是可以通过公网 IP 访问 TiDB 服务的,如使用 mysql 命令行工具连接 112.74.106.92:4000。(EIP 绑定到云主机后,相当于做了一个 IP 映射)

没有 就是公有云的 公网IP 不能启动 , --host 内网IP 和 127.0.0.0 或者 0.0.0.0 能够启动 0.0.0.0 实际启动的是 内网IP

你这种场景,使用公有云的公网 IP,肯定是不能启动的,因为本机根本没有绑定这个 IP。说白了,操作系统判断这个 IP 不是自己的,那怎么能使用呢?
这个你可以自己找台虚拟机做测试,比如你虚拟机本机 IP 为 10.10.10.10,现在你安装一个 nginx 服务,却要监听到 10.10.10.20,这显然是不行的,因为你本机没有 10.10.10.20
因此,你这种场景,这个现象是正常现象。

tiup playground --host 0.0.0.0 方式 我试过 但是实际启动的是 内网IP To connect TiDB: mysql --comments --host 172.23.151.35 --port 4000 -u root -p (no password)
To view the dashboard: http://172.23.151.35:2379/dashboard
PD client endpoints: [172.23.151.35:2379]
To view the Prometheus: http://172.23.151.35:9090
To view the Grafana: http://172.23.151.35:3000 但是实际上把云主机的防火墙关闭掉, 控制台的所有的端口 都开放过, 但是通过外网IP 确实无法访问, 也许官方处于安全考虑,把 外网的访问权限给关闭了的

实际启动的是内网 IP,这是正常现象,因为你云主机只有一个内网 IP,正如我上面描述的一样。
至于不能通过外网 IP 访问,这个建议你咨询下阿里云客服,让他们协助你排查下。

注:你如果在本机能正常访问 TiDB,或者 http://172.23.151.35:3000 Grafana 等,就说明服务已经正常运行了。至于绑定的 EIP 能否访问,就是 EIP 到云主机网络的问题了,这个你找客服协助排查下,就应该能得到结论。