无法与 VPS 建立 TCP 连接

无法与 VPS 建立 TCP 连接

Vince Stewart
我在 Ubuntu 12 上有一个 VPS,在 Ubuntu 12 上有一个家用电脑。我在 VPS 上有一个 Java 应用程序,它打开一个监听端口 4000 的 tcp 套接字和一个 Http 监听器。我的 ssh 服务在端口 55555 上运行。启动应用程序后,我在命令行中输入以下内容时会收到此报告:netstat -t -l

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:55555                 *:*                     LISTEN     
tcp6       0      0 [::]:http-alt           [::]:*                  LISTEN     
tcp6       0      0 [::]:55555              [::]:*                  LISTEN     
tcp6       0      0 vps.mdomai.com:4000     [::]:*                  LISTEN     

使用denyhosts操作我的/etc/hosts.allow只有一行

ALL: xxx.xxx.xxx.xxx
(xxx.xxx.xxx.xxx is my static home IP address)

/etc/hosts.deny 是:

ALL:ALL

我可以使用以下方式从家里连接:

telnet yyy.yyy.yyy.yyy 55555  or telnet yyy.yyy.yyy.yyy 8080
(yyy.yyy.yyy.yyy is for my VPS address)

但有:

telnet yyy.yyy.yyy.yyy 4000 

抛出错误(“无法连接到远程主机:连接被拒绝”)。这似乎是防火墙问题。我很确定我没有更改 iptables,所以应该是 VPS 默认设置。非常感谢您的任何建议。当我发出 sudo ufw raw 时,我得到:

IPV4 (raw):
Chain INPUT (policy ACCEPT 21043 packets, 2314421 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 21077 packets, 2152970 bytes)
pkts      bytes target     prot opt in     out     source               destination         
Chain PREROUTING (policy ACCEPT 318 packets, 41345 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 42 packets, 7128 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 347 packets, 24571 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 347 packets, 24571 bytes)
pkts      bytes target     prot opt in     out     source               destination         
Chain PREROUTING (policy ACCEPT 6241 packets, 691583 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 5965 packets, 657366 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 5936 packets, 614188 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 10872 packets, 1131008 bytes)
pkts      bytes target     prot opt in     out     source               destination         
Chain PREROUTING (policy ACCEPT 6241 packets, 691583 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 5936 packets, 614188 bytes)
pkts      bytes target     prot opt in     out     source               destination         


IPV6:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination         

答案1

您仅按照要求打开了 ipv6 端口 4000。

tcp6 0 0 vps.mdomai.com:4000 [::]:* LISTEN

您是否尝试过通过 vps.mdomai.com:4000 上的 ipv6 ?

如果你去的话会怎样:

netstat -an --inet | grep LISTEN

答案2

我现在提供我的问题的最终解决方案,因为我认为它突出了非专家(比如我)的一个重要问题。那就是/etc/hosts文件条目。

我在我的 VPS 和家用电脑上使用相同的 Java 应用程序,它们应该通过 TCP 进行通信。我的家用电脑通过具有固定 IP 地址的 DSL 调制解调器访问互联网。当我尝试将消息从家里发送到 VPS 时,Java 报告超时(这仅意味着无法建立连接)。

我已经为我的计算机分配了本地网络内的固定地址(即 192.168.1.57),因为这似乎很合理。但我最终做出的关键更改是将我的计算机的互联网地址(即 192.168.1.57)注册到 Ubuntu 文件中/etc/hosts;现在,在家用机器上运行的 Java 将其自己的“inet 地址”读取为 192.168.1.57,而不是 127.1.0.1,一切开始正常工作。我还需要为 VPS 提供我的 DSL 固定 IP 地址(203.xxx)和一个端口号,该端口号被端口转发到 192.168.1.57 机器。我希望这能对某些人有所帮助。

相关内容