在我的 TurnKey Linux 上,我运行了许多程序。当我使用另一台计算机访问它时,我可以看到网站正在运行,我可以使用 SSH 连接。但无法访问 Webmin(端口 12321)、MySql(3306)和其他程序。这是我的netstat
:
$sudo netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:12320 0.0.0.0:* LISTEN 2073/stunnel4
tcp 0 0 0.0.0.0:12321 0.0.0.0:* LISTEN 2073/stunnel4
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 30017/mysqld
tcp 0 0 127.0.0.1:10000 0.0.0.0:* LISTEN 12859/perl
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2104/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2243/master
tcp 0 0 127.0.0.1:12319 0.0.0.0:* LISTEN 1202/shellinaboxd
tcp6 0 0 :::12322 :::* LISTEN 1274/apache2
tcp6 0 0 :::80 :::* LISTEN 1274/apache2
tcp6 0 0 :::22 :::* LISTEN 2104/sshd
tcp6 0 0 :::443 :::* LISTEN 1274/apache2
udp 0 0 0.0.0.0:10000 0.0.0.0:* 12859/perl
我错过了什么?
答案1
您需要检查防火墙或 iptables。netstat 显示端口在本地使用,并不意味着可以从外部访问它们。
答案2
我确信您已经检查过 Linux 系统上的防火墙软件和/或主机入侵软件,以确保它没有阻止流量。如果没有 - 那么就这样做。:)
除此之外,我还建议检查一下 MySql 配置。netstat 输出显示它只监听本地/环回流量 (127.0.0.1)。因此,您永远无法从其他系统看到它。
答案3
如果 iptables 正在运行,请使用 检查您的规则以iptables -L
查看您是否允许这些端口。还请检查 SELinux 是否已激活:sestatus
,以及处于哪种模式(宽容|强制);如果是强制模式,您可以使用 修改模式sestatus 0
。