今天在访问测试服务器时,通过xshell 访问不了,登录阿里云服务器后台管理,通过远程连接方式登录出现访问公网IP地址需要在实例安全组白名单中增加Workbench的服务器白名单,如下图所示:
问题:
2023-06-19 09:48:48 登录主机: i-uf6fu80p2koveylne1v5失败!
原因:Already closed: Window[client/remote](ChannelShell$$EnhancerByCGLIB$$9399582a[id=0, recipient=0]-ClientSessionImpl[admin@/47.101.223.230:22])
访问公网IP地址需要在实例安全组白名单中增加Workbench的服务器白名单:
47.96.60.0/24
118.31.243.0/24
需到阿里云服务器控制台实例管理安全组中,配置如下图:
以上操作后,通过root/admin 远程访问还是访问不了,后用root 通过VNC访问进入命令行,在切换为admin访问时报:
Linux系统报错too many open files,原因分析及解决方法如下:
根本原因:打开的文件超过了系统限制的数量
解决方法
1、查询
1.1、查询某个进程已经开启的文件句柄
lsof -p 进程pid | wc -l
举例:
查看所有进程各自打开的文件数
#lsof -n|awk '{print $2}' |sort|uniq -c|sort -nr|more
1.2、查看当前操作系统已经打开的文件总量
#cat /proc/sys/fs/file-nr
注:第一个值是已开启的,第二个值是分配但未使用,第三个值是总限制数
1.3、查看操作系统允许打开的文件总量限制
#cat /proc/sys/fs/file-max
1.4、查看进程可以打开的文件数量限制
#ulimit -a
注:open files指限制每个进程可以最大打开的文件数
2、设置文件开启数量限制
2.1、限制某个用户的
vim /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
*soft nofile 65535
*hard nofile 65535
注:第一行指root用户的每个进程可开启最大的文件数(软限制,只警告)
第二行指root用户的每个进程可开启最大的文件数(硬限制,无法开启多的文件了)
第三、四行指所有用户的。
设定的值不能超过/proc/sys/fs/nr_open里的值,完全够用了。
2.2、限制系统文件开启最大数
vim /etc/sysctl.conf
fs.file-max = 6815744
执行生效:sysctl -p
配置如下图所示:
再次通过命令后,切换 su admin能够正常切换:
经过以上操作,系统能正常通过xshell 以用户admin连接了。