我正在尝试设置一个 MySQL 数据库以供外部使用。我有一个装有 Plesk 和 Docker 的 Ubuntu 服务器。
主要问题是,当登录服务器时,端口似乎已被使用/打开,但在外部却并非如此。
当我尝试本地登录时没有问题,因为它显示端口 6991 已打开。
root@server:/# nmap -p 6990-6992 localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-13 09:37 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000034s latency).
rDNS record for 127.0.0.1: localhost.localdomain
PORT STATE SERVICE
6990/tcp open unknown
6991/tcp open unknown
6992/tcp closed unknown
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
nmap
当我从外部机器执行相同操作时:
user2@server2:/# nmap -p 6990-6992 [public ip]
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-13 09:45 UTC
Nmap scan report for [URL] ([public ip])
Host is up (0.000085s latency).
Other addresses for [URL] (not scanned):
PORT STATE SERVICE
6990/tcp closed unknown
6991/tcp closed unknown
6992/tcp closed unknown
Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds
服务器厂商的防火墙端口6991、6990也开放。
我尝试检查端口以启动一个简单的 pythonhttp
服务器,并且成功了。
root@server:/# docker stop mysql
mysql
root@server:/# python3 -m http.server 6991
Serving HTTP on 0.0.0.0 port 6991 (http://0.0.0.0:6991/) ...
user2@server2:/# nmap -p 6991 [public ip]
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-13 11:52 UTC
Nmap scan report for [URL] ([public ip])
Host is up (0.020s latency).
PORT STATE SERVICE
6991/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.36 seconds
也许某些 Plesk 魔法阻塞了端口?
我也尝试过直接设置MYSQL_TCP_PORT
为 6991,但 Docker 不会公开此端口。我无法使用 Plesk 界面进行重定向。
答案1
我遇到了完全相同的问题,这让我抓狂。谢谢你发布这篇文章,否则我还在搜索。我怀疑我们的硬件防火墙有问题,但那是 9 月中旬的一次 plesk 更新,直到我读到变更日志经过进一步的研究,我偶然发现了解决方案:
将您的 plesk 更新到最新版本。如果您已经更新了,但此方法仍未解决问题,请尝试以下操作:
- 通过 ssh 登录您的服务器。
- 删除该
{"ip":"127.0.0.1"}
行/etc/docker/daemon.json
- 重启docker
systemctl restart docker
- 重启容器
docker container restart ContainerID