java.net.ConnectException: Connection refused: connect

2024-05-10 1040阅读

这个异常通常表示客户端尝试连接到服务器,但服务器拒绝了连接请求。主要原因可能包括:

java.net.ConnectException: Connection refused: connect
(图片来源网络,侵删)
  1. 服务器未运行或未启动服务: 如果您正在尝试连接到的服务器未运行或未启动相关的服务,就会导致连接被拒绝。

  2. 防火墙问题: 防火墙设置可能会阻止对特定端口的连接。您需要确保服务器上所需的端口未被防火墙屏蔽。sudo ufw status

  3. 错误的主机或端口: 确保您尝试连接的主机名或 IP 地址以及端口号是正确的。

    1. 要查看 Ubuntu 服务器上正在运行的端口,您可以使用一些命令来列出当前打开的网络连接或正在监听的端口。以下是几种常用的方法:

    • netstat 命令:使用 netstat 命令可以列出当前系统上所有的网络连接、路由表信息以及网络接口统计信息。您可以使用以下命令来列出所有正在监听的端口:
      1.  

        bashCopy code

        sudo netstat -tuln

        这将显示所有正在监听的 TCP (-t) 和 UDP (-u) 端口,以及端口号、协议和监听地址。

      2. ss 命令:

        ss 是 netstat 的替代工具,更加强大和高效。您可以使用以下命令来列出所有正在监听的端口:

         

        bashCopy code

        sudo ss -tuln

        这与上面的 netstat 命令类似,会列出所有正在监听的 TCP (-t) 和 UDP (-u) 端口。

      3. lsof 命令:

        lsof 命令可以列出打开的文件和网络连接。您可以使用以下命令来查看哪些进程在监听哪些端口:

         

        bashCopy code

        sudo lsof -i -P -n

        这将显示所有打开的网络连接,包括进程的 PID、监听地址和端口号。

      4. 并发连接限制: 某些服务器可能限制了同时处理的连接数,当达到限制时会拒绝新的连接请求。

      检查服务器上特定端口是否正确打开并监听连接,您可以使用以下方法:

      1. 使用 telnet: telnet 是一种常用的网络调试工具,可以用来测试网络连接。您可以使用以下命令来尝试连接到服务器的特定端口:

         

        bashCopy code

        telnet server_ip port

        其中 server_ip 是服务器的 IP 地址,port 是要测试的端口号。如果连接成功,将会看到一条成功的提示消息;否则,可能会显示连接失败的消息。

      2. 使用 nc(netcat): nc 是另一个网络工具,可以用来在网络上传输数据。您可以使用以下命令来检查服务器上的端口是否打开:

         

        bashCopy code

        nc -zv server_ip port

        这个命令会尝试连接到服务器的特定端口,但不会发送任何数据。如果端口打开并监听连接,将会输出类似于 Connection to server_ip port succeeded! 的成功消息;否则,将会显示连接失败的消息。

      3. 使用 nmap: nmap 是一个网络扫描工具,可以用来扫描远程主机的端口状态。您可以使用以下命令来扫描服务器的端口状态:

         

        bashCopy code

        sudo nmap -p port server_ip

        其中 port 是要扫描的端口号,server_ip 是服务器的 IP 地址。nmap 将会显示该端口的状态,包括是否开放、关闭或过滤。

      通过以上方法,您可以检查服务器上特定端口的状态,以确保它是否正确打开并监听

      要使用 FinalShell 连接到本地的 Ubuntu,您需要确保已经安装了 SSH 服务器并且已经启动。默认情况下,大多数 Ubuntu 安装都包含 OpenSSH 服务器,但如果您的系统没有安装,您可以使用以下命令安装它:

       
      

      bashCopy code

      sudo apt update sudo apt install openssh-server

      安装完成后,您需要启动 SSH 服务器。如果它已经在运行,则无需执行任何其他操作。您可以使用以下命令来检查 SSH 服务器的状态:

       
      

      bashCopy code

      sudo service ssh status

      如果 SSH 服务器未运行,您可以使用以下命令启动它:

       
      

      bashCopy code

      sudo service ssh start

      一旦 SSH 服务器正在运行,您就可以使用 FinalShell 连接到您的本地 Ubuntu。打开 FinalShell,点击“新会话”,然后输入您的本地 Ubuntu 的 IP 地址、用户名和密码,并选择 SSH 协议。点击“连接”即可连接到您的本地 Ubuntu。默认情况下,SSH 使用的端口号是 22,如果您更改了 SSH 服务器的端口号,您需要在 FinalShell 中相应地更改端口号。

      连接成功后,您应该可以在 FinalShell 中远程管理您的本地 Ubuntu 了。

      要查看本地 Ubuntu 的 IP 地址,可以使用以下命令:

       
      

      bashCopy code

      ip addr show

      这将显示本地 Ubuntu 上所有网络接口的配置信息,包括每个接口的 IP 地址。通常来说,您会在 inet 或 inet6 行找到 IP 地址,IPv4 地址通常显示为以 192.168.x.x、10.x.x.x 或 172.x.x.x 开头的地址。

      要查看本地 Ubuntu 的用户名,您可以在终端中执行以下命令:

       
      

      bashCopy code

      whoami

      这将显示当前登录用户的用户名。

      要查看本地 Ubuntu 的密码,您必须知道该用户的密码。如果您是系统管理员或具有 sudo 权限的用户,您可以更改用户的密码。例如,要更改当前用户的密码,可以执行以下命令:

       
      

      bashCopy code

      passwd

      然后按照提示输入新密码即可。如果您不是管理员或没有 sudo 权限,并且忘记了密码,您可能需要重置密码或者联系管理员来帮助您重置密码。

      综上所述,通过上述命令,您可以查看本地 Ubuntu 的 IP 地址和用户名,但是要查看密码,您需要知道或者重置密码。

      检查目标服务器上特定端口是否正确打开并监听连接:

      1. telnet 命令:

        使用 telnet 命令可以尝试连接到目标服务器的特定端口。如果连接成功,表示端口是打开的并且服务器正在监听连接。如果连接失败,则可能是端口未打开或服务器未启动服务。例如,要检查服务器上的端口 80 是否打开,您可以执行以下命令:

         

        Copy code

        telnet server_ip 80

        其中 server_ip 是目标服务器的 IP 地址,80 是要检查的端口号。

      2. nc(netcat)命令:

        使用 nc 命令可以在网络上传输数据,并且可以用来检查服务器上的端口是否打开。如果端口打开并监听连接,nc 命令会成功连接到服务器。例如,要检查服务器上的端口 22 是否打开,您可以执行以下命令:

         

        Copy code

        nc -zv server_ip 22

        其中 server_ip 是目标服务器的 IP 地址,22 是要检查的端口号。

      3. nmap 命令:

        使用 nmap 命令可以扫描目标服务器上的端口状态。它会显示每个端口的状态,包括是否开放、关闭或过滤。例如,要扫描服务器上的所有端口,您可以执行以下命令:

         

        cssCopy code

        sudo nmap -p- server_ip

        其中 server_ip 是目标服务器的 IP 地址。 -p- 表示扫描所有端口。

      通过以上方法,您可以检查目标服务器上特定端口是否正确打开并监听连接。

      要检查 SSH 服务器的配置,您可以查看 SSH 配置文件,并检查其中的参数设置。在大多数 Linux 发行版中,SSH 服务器的配置文件通常是 /etc/ssh/sshd_config。您可以使用文本编辑器打开该文件,并查看其中的配置。

      以下是一些常见的配置选项,您可以在配置文件中找到并检查它们:

      1. 端口号: 默认情况下,SSH 服务器使用端口 22。您可以在配置文件中找到 Port 参数,并检查是否设置了正确的端口号。

      2. 允许的用户: 您可以使用 AllowUsers 参数指定允许连接到 SSH 服务器的用户列表。检查这个参数,确保只有合适的用户被允许连接。

      3. 身份验证方式: SSH 支持多种身份验证方式,包括密码、公钥和证书等。检查 PasswordAuthentication 和 PubkeyAuthentication 参数,确保所需的身份验证方式已启用。

      4. 允许的 IP 地址: 使用 AllowTcpForwarding、GatewayPorts 和 PermitRootLogin 等参数可以控制允许的 IP 地址和连接方式。确保这些参数设置为您期望的方式。

      5. 会话超时和限制: 您可以使用 ClientAliveInterval 和 ClientAliveCountMax 参数设置会话超时和限制。这有助于防止空闲连接占用服务器资源。

      6. 日志记录: 确保日志记录级别设置正确,以便适当地记录 SSH 服务器活动。您可以使用 LogLevel 参数来设置日志级别。

      7. 其他安全设置: 检查其他安全相关的参数,如 HostKey、Protocol、PermitEmptyPasswords 等,以确保服务器的安全性。

      检查配置文件后,确保做出任何必要的更改,并重新加载 SSH 服务器以使更改生效。您可以使用以下命令重新加载 SSH 服务器配置:

       
      

      bashCopy code

      sudo systemctl reload sshd

      或者,如果您使用的是旧版的 Ubuntu 或者其他类似的系统,您可以使用以下命令:

       
      

      bashCopy code

      sudo service ssh restart

      重新加载或重启 SSH 服务器后,检查是否有任何错误消息,并确保服务器正常工作。

      发现 /etc/ssh/sshd_config 文件为空,这可能表示 SSH 服务器配置文件丢失或损坏。SSH 服务器(sshd)通常使用此文件来配置其行为。缺少配置文件可能会导致 SSH 服务器无法正常工作。我的问题-》sudo apt-get install --reinstall openssh-server;sudo systemctl reload sshd

      在这种情况下,您可以尝试通过以下方法解决问题:

      1. 恢复备份文件: 如果您曾经备份过 /etc/ssh/sshd_config 文件,可以尝试将备份文件恢复到该位置。

      2. 重新安装 SSH 服务器: 如果您无法找到原始的 sshd_config 文件,可以尝试重新安装 SSH 服务器软件包,以恢复默认的配置文件。您可以使用以下命令重新安装 OpenSSH 服务器:

        sudo apt-get install --reinstall openssh-server
        

        或者,如果您使用的是其他 Linux 发行版,请使用相应的软件包管理器来重新安装 SSH 服务器。

      3. 手动创建配置文件: 如果您无法找到备份文件,并且重新安装也无法解决问题,您可以尝试手动创建 sshd_config 文件。您可以从 SSH 文档或者其他来源获取默认的配置模板,并手动创建并编辑 /etc/ssh/sshd_config 文件。

      4. 检查其他位置: 在某些情况下,SSH 配置文件可能存储在其他位置,而不是 /etc/ssh/sshd_config。您可以尝试在系统中搜索其他可能的 SSH 配置文件,并查看它们是否存在。

      无论您选择哪种方法,确保在修改或恢复配置文件后重新加载 SSH 服务器以使更改生效。您可以使用以下命令重新加载 SSH 服务器配置:

      sudo systemctl reload sshd

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]