报错
报“java.net.ConnectException: Connection refused:connect ”错误
原因和解决
1)端口号被占用:杀死占用端口号(一般为8080)的进程,释放端口;彻底关闭 Tomcat 服务器,或者重新启动项目。
2)使用以下命令检查服务器中允许的最大进程数: ulimit -u。如果将此值设置为较低值,例如1024,则使用以下值将其增加到131072或无限制:ulimit -u 131072 或者 ulimit -u无限制 。
3)客户端和服务器,它们中的任何一个或两个都不在网络中。 它们可能没有连接到LAN或互联网或任何其他网络,在这种情况下,Java将会抛出 客户端的“ java.net.ConnectException:Connection refused ”异常。
4)服务器未运行用 是服务器已关闭但未运行。在这种情况下,你也会得到java.net.ConnectException:连接被拒绝错误。可ping来检查服务器是否正在运行并侦听端口。
5)服务器正在运行但没有侦听端口,客户端正在尝试连接。 服务器正在运行但是正在侦听不同的端口。验证配置。如果你正在处理一个大项目,并有一个分层配置文件,它可能是默认配置或其他一些设置覆盖了您正确的设置。
6)主机端口组合不允许使用防火墙
几乎每个企业网络都受防火墙保护。如果您正在连接其他公司网络,例如在任何电子交易系统中,需要提高防火墙 双方要求确保他们允许彼此的IP地址和端口号。如果防火墙不允许连接,也会收到相同的java.net.ConnectException:Java应用程序中的连接拒绝异常。
7)主机端口组合不正确。 提供的主机端口组合不正确,或者服务器端的早期主机端口组合已经更改。检查客户端和服务器端的最新配置。 8)连接字符串中的协议不正确
TCP是许多高级协议的基础协议,包括HTTP,RMI等。通过连接时字符串,你需要确保你传递正确的协议,服务器期望。例如服务器已暴露,通过 RMI 而不是连接字符串的服务应该以rmi:// 开头。 以上是百度找到的有关原因和解决办法,而我遇到的错误很低级:Tomcat没启动。
初始化的服务器
如果是初始化的服务器最有可能的原因如下所示:
问题 无法使用远程连接工具连接Linux服务器(Ubuntu系统)。原因是Linux服务器上没有安装ssh服务。
4.解决 获取管理员权限,执行命令:sudo -s回车
服务端(必须)
1.安装ssh服务端
sudo apt-get install openssh-server;
2.确认sshserver是否启动了
ps -e | grep ssh
如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了
3.启动sshserver
/etc/init.d/ssh start
4.SSH配置(如果需要)
修改配置文件/etc/ssh/sshd_config,这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号如32,然后重启服务
5.重启sshserver
/etc/init.d/ssh restart
客户端(非必须)
1. 安装客户端(客户端不是必须的)
apt-get install ssh
2.如果安装失败,则使用下面命令进行安装
apt-get install openssh-client
3. SSH登录(客户端)
ssh 192.168.159.128
其他
如果没什么特别需求,到这里 OpenSSH Server 就算安装好了。但是进一步设置一下,可以让 OpenSSH 登录时间更短,并且更加安全。这一切都是通过修改 openssh 的配置文件 sshd_config 实现的。
首先,您刚才实验远程登录的时候可能会发现,在输入完用户名后需要等很长一段时间才会提示输入密码。其实这是由于 sshd 需要反查客户端的 dns 信息导致的。我们可以通过禁用这个特性来大幅提高登录的速度。首先,打开 sshd_config 文件:
sudo nano /etc/ssh/sshd_config
找到 GSSAPI options 这一节,将下面两行注释掉:
#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no,
然后重新启动 ssh 服务即可:
sudo /etc/init.d/ssh restart
再登录试试,应该非常快了
利用 PuTTy 通过证书认证登录服务器
SSH 服务中,所有的内容都是加密传输的,安全性基本有保证。但是如果能使用证书认证的话,安全性将会更上一层楼,而且经过一定的设置,还能实现证书认证自动登录的效果。
首先修改 sshd_config 文件,开启证书认证选项:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys修改完成后重新启动 ssh 服务。
下一步我们需要为 SSH 用户建立私钥和公钥。首先要登录到需要建立密钥的账户下,这里注意退出 root 用户,需要的话用 su 命令切换到其它用户下。然后运行:
ssh-keygen
这里,我们将生成的 key 存放在默认目录下即可。建立的过程中会提示输入 passphrase,这相当于给证书加个密码,也是提高安全性的措施,这样即使证书不小心被人拷走也不怕了。当然如果这个留空的话,后面即可实现 PuTTy 通过证书认证的自动登录。
ssh-keygen 命令会生成两个密钥,首先我们需要将公钥改名留在服务器上:
cd ~/.ssh mv id_rsa.pub authorized_keys然后将私钥 id_rsa 从服务器上复制出来,并删除掉服务器上的 id_rsa 文件。
服务器上的设置就做完了,下面的步骤需要在客户端电脑上来做。首先,我们需要将 id_rsa 文件转化为 PuTTy 支持的格式。这里我们需要利用 PuTTyGEN 这个工具:
点击 PuTTyGen 界面中的 Load 按钮,选择 id_rsa 文件,输入 passphrase(如果有的话),然后再点击 Save PrivateKey 按钮,这样 PuTTy 接受的私钥就做好了。
打开 PuTTy,在 Session 中输入服务器的 IP 地址,在 Connection->SSH->Auth 下点击 Browse 按钮,选择刚才生成好的私钥。然后回到 Connection 选项,在 Auto-login username 中输入证书所属的用户名。回到 Session 选项卡,输入个名字点 Save 保存下这个 Session。点击底部的 Open 应该就可以通过证书认证登录到服务器了。如果有 passphrase 的话,登录过程中会要求输入 passphrase,否则将会直接登录到服务器上,非常的方便。
ssh -l cookie 192.168.152.10
ssh cookie@192.168.152.10