安装 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


来呀快活呀


安装 msfconsole 报内存不够
https://www.tr0y.wang/2019/01/19/安装msfconsole时内存不够/
作者
Tr0y
发布于
2019年1月19日
更新于
2024年6月3日
许可协议