无法连接到 tomcat/telnet 到远程主机

无法连接到 tomcat/telnet 到远程主机

我想连接到在我的笔记本电脑上运行的 VM 上安装的 tomcat,但是我无法连接到它。

  • 我停止了 IPTables 以确保这不是防火墙问题。
  • 我可以 ping 到那台机器。
  • 我可以从我的虚拟机访问互联网。
  • 我可以通过 SSH 连接到我的虚拟机

下面是我从笔记本电脑运行的 NMAP 命令的输出,显示我只能访问虚拟机的 ssh 端口

>nmap.exe -A 192.168.158.131

Starting Nmap 7.01 ( https://nmap.org ) at 2015-12-28 17:29 India Standard Time
Nmap scan report for 192.168.158.131
Host is up (0.00030s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 5.3 (protocol 2.0)
| ssh-hostkey:
|   1024 b4:b1:e4:d4:73:f7:16:95:8f:2a:5e:df:ea:f3:82:da (DSA)
|_  2048 4e:e9:f2:8c:eb:3c:ca:38:9d:3a:6f:d6:35:48:13:1e (RSA)
MAC Address: 00:0C:29:D7:C5:BA (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3
OS details: Linux 2.6.32 - 3.10, Linux 2.6.32 - 3.13
Network Distance: 1 hop

TRACEROUTE
HOP RTT     ADDRESS
1   0.29 ms 192.168.158.131

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.37 seconds

我还从我的虚拟机运行了 netstat -tuplen 命令,它清楚地表明 Tomcat 端口 8086 可供外部访问。

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      0          13838      2288/sshd
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      0          13324      2180/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      0          14435      2646/master
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      495        14221      2529/mysqld
tcp        0      0 :::8086                     :::*                        LISTEN      500        43936      5923/java
tcp        0      0 :::22                       :::*                        LISTEN      0          13845      2288/sshd
tcp        0      0 ::1:631                     :::*                        LISTEN      0          13323      2180/cupsd
tcp        0      0 ::1:25                      :::*                        LISTEN      0          14437      2646/master
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      500        44062      5923/java
tcp        0      0 :::8009                     :::*                        LISTEN      500        43937      5923/java
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               0          32209      5546/dhclient
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               0          13332      2180/cupsd

答案1

几天前我遇到了同样的问题,因此我使用 netstat 实用程序检查了监听端口,发现 tomcat 端口绑定的是 IPv6 而不是 IPv4。

然后,我在 catalina.sh 中添加了下面的行以便在 IPv4 上绑定 tomcat 端口。

JAVA_OPTS= $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses

这样我的问题就解决了。希望这个解决方案也适用于你。

答案2

我的 IPTABLES 没有正确关闭。需要通过 sudo 来关闭它们。当我以普通用户身份关闭它们时,它们不知何故没有给出错误。

答案3

我遇到了同样的问题,并尝试了 @Vaibhav Panmand 建议的答案,但它没有解决我的问题。为了将我的 tomcat 绑定到 IPv4 而不是 IPv6,我编辑了 /etc/sysctl.conf,并进行了以下配置更改:

net.ipv6.conf.all.disable_ipv6 = 1 
net.ipv6.conf.default.disable_ipv6 = 1 
net.ipv6.conf.lo.disable_ipv6 = 1 

保存此文件后,我执行了“sudo sysctl -p”命令并重新启动了 tomcat。瞧!我的 tomcat 使用的是 IPv4 而不是 IPv6。我希望这能帮助那些遇到与我类似的修复的人。

相关内容