FinalShell连接Ubuntu Linux虚拟机报错解决教程:java.net.connectexception: connection refused: connection
在使用FinalShell远程连接虚拟机Linux系统时,很多用户会遇到 “java.net.ConnectException: Connection refused: connect” 的报错问题。该问题通常是由于Linux虚拟机中未正确安装或启动SSH服务、防火墙阻止22端口、网络模式设置不当等原因引起的。为了帮助用户快速定位并解决这一常见错误,本文将从问题原因分析、详细操作步骤到常见问题排查
在使用 FinalShell 远程连接虚拟机 Linux 系统时,如果出现以下错误:
java.net.ConnectException: Connection refused: connect

说明 Linux虚拟机没有正确开启SSH服务 或 网络未打通。下面提供详细的排查与解决步骤。
一、问题原因分析
-
SSH服务未安装/未启动
Linux虚拟机默认可能没有安装openssh-server。
或者安装了但是服务没有运行。 -
防火墙阻止了22端口
Linux防火墙(如ufw或firewalld)拦截了SSH连接请求。 -
虚拟机网络模式不正确
NAT模式下虚拟机与主机不在同一局域网,FinalShell无法直连。
需要选择 桥接模式 或者 端口转发。 -
SSH配置文件错误
/etc/ssh/sshd_config配置异常,导致连接被拒绝。
二、详细解决步骤
1. 安装SSH服务(通常原因)
在Linux虚拟机中执行以下命令:
sudo apt-get update
sudo apt-get install openssh-server
或
sudo apt-get install openssh-server -y


2. 检查SSH端口是否监听
sudo netstat -tulnp | grep ssh
# 或
sudo ss -tulnp | grep ssh
正常情况应显示 22端口 在监听:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
3. 检查防火墙设置
如果22端口未放行,执行以下命令:
UFW防火墙:
sudo ufw allow 22
sudo ufw reload
Firewalld防火墙:
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
sudo firewall-cmd --reload
4. 检查虚拟机网络模式
-
推荐模式:桥接(Bridge),虚拟机与宿主机在同一网段。
-
NAT模式:需要设置端口转发(如宿主机2222 → 虚拟机22)。
-
Host-only模式:只能宿主机访问虚拟机,不适合远程管理。
查看虚拟机IP:
ip addr
假设虚拟机IP是 192.168.1.100,在FinalShell连接时填入该IP。
5. 修改SSH配置(如仍有问题)
编辑配置文件:
sudo nano /etc/ssh/sshd_config
确保以下配置正确(去掉注释符号 #):
Port 22
PermitRootLogin yes
PasswordAuthentication yes
保存后重启SSH服务:
sudo systemctl restart ssh
6. 使用FinalShell连接
在FinalShell中新建连接:
-
主机:虚拟机IP(如
192.168.1.100) -
端口:22
-
用户名:虚拟机的Linux用户名
-
密码:对应用户密码
点击连接即可。


三、常见问题排查
-
提示
Connection timed out
→ 检查虚拟机IP和网络模式是否正确。 -
提示
Authentication failed
→ 检查用户名/密码是否输入正确,或是否关闭了密码登录。 -
提示
Connection refused
→ 说明SSH服务没启动,或22端口未监听。
转载吱一声~
更多推荐
所有评论(0)