安装 msfconsole 报内存不够
由于渗透需要,我们要在服务器上安装 msf。但是服务器的内存一般都比较小,怎么解决呢?
报错
安装 msf 后启动 msfconsole
报错:
1
/opt/metasploit-framework/embedded/lib/ruby/gems/2.4.0/gems/activesupport-4.2.10/lib/active_support/core_ext/kernel/agnostics.rb:7:in ``': Cannot allocate memory - infocmp (Errno::ENOMEM)
解决
增加 swap 分区文件大小即可。Swap 分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38# 以下命令默认为 root 用户
> free -m # 查看内存状态
total used free shared buff/cache available
Mem: 992 189 79 13 722 614
Swap: 0 0 0
# Swap 也就是虚拟内存,为 0
# 选择一个较大的分区,建立分区文件
> dd if=/dev/zero of=/opt/swap bs=1024 count=1024000
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 16.6877 s, 62.8 MB/s
# 该命令表示在 opt 分区建立名为 swap,大小为 1G 的虚拟内存文件
# 将 swap 文件设置为 swap 分区文件
# 更改 swap 文件的权限
> chmod 600 /opt/swap
> mkswap /opt/swap # 格式化 swap 分区
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=fc47f29e-31af-401e-856d-0fec5262179e
# 激活swap,启用分区交换文件
> swapon /opt/swap
# 现在看下结果
> free -m
total used free shared buff/cache available
Mem: 992 191 63 13 737 625
Swap: 999 0 999
# 将分区设置为开机自动挂载
> vim /etc/fstab
# 增加
/opt/swap swap swap defaults 0 0
再次启动 msfconsole 即可。(不够大可增加 swap)
当然了,能装就得能卸。但我们不再需要 msf 的时候,就把分配的 swap 清理一下:
卸载 swap 分区:
1
2
3
4
5# 首先停止swap分区
> swapoff /opt/swap
# 删除掉swap文件即可
> rm -rf /opt/swap
来呀快活呀