CentOS 7安装Deluge

未分类

Deluge 支持 Linux (Debian, Fedora, OpenSUSE, Arch, Gentoo )、Win、Mac、FreeBSD 多个平台,非常稳定,而且支持单一种子限速功能。部分 PT 站会对单一种子的速度有限制,如果超速,账号可能会被警告甚至封禁。如果挂的PT站有限速要求,推荐使用Deluge。比较遗憾的是,Deluge没有官方的CentOS源。如果需要在CentOS安装,可尝试下第三方的源。

Deluge 有 GUI for the desktop,Web UI for the browser 和 Console UI for the command line 三个 interfaces,这里安装的是 Web UI for the browser,可以通过浏览器管理 Deluge。

Delgue 在 NUX 源中,因而安装需要添加 NUX。部分依赖包需要 EPEL 源,如果没有安装 EPEL 源,也需要添加。

# 安装 EPEL 源
yum -y install epel-release
# 安装 NUX 源
yum -y install wget
wget http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
rpm -ivh nux-dextop-release-0-5.el7.nux.noarch.rpm

添加源后,接着安装 Deluge:

yum -y install deluge-web

运行

systemctl start deluge-web

访问 http://ip 地址:8112 即可访问 Web 界面。如果开启了防火墙,需要开放 8112 端口:

firewall-cmd --permanent --zone=public --add-port=8112/tcp
firewall-cmd --reload

开机自启动

systemctl enable deluge-web

附带 http://ip 地址:8112,deluge的web页面:

未分类

Ubuntu安装deluge教程可以参考官方:https://dev.deluge-torrent.org/wiki/Installing/Linux/Ubuntu

vagrant+virtualbox遇到的坑

这两天用vagrant+virtualbox搭建环境,按照以前的方法,先把它们都下载下来都是最新版本。接着傻瓜式的安装,添加box、初始化,接着vagrant up启动。然而并没有启动起来,光标一直在那里闪烁。瞬间意识到踩坑了。经过百度,Google,都说是版本问题,果断换版本。
这时候的用的版本VirtualBox-5.1.18-114002-Win.exe、vagrant_1.9.3.msi。完事之后vagrant up,结果命令错误,一个很奇怪的问题,提示没有配置系统变量,但是我已经配置了,还是提示一样的错误。
具体提示

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
"rsync" could not be found on your PATH. Make sure that rsync
is properly installed on your system and available on the PATH.

解决方法:

打开目录,C:UsersAdministrator.vagrant.dboxescentos7.0virtualboxVagrantfile

Vagrant.configure("2") do |config|
  config.vm.base_mac = "525400cae48b"
  config.vm.synced_folder ".", "/vagrant", type: "rsync"
end

改成

Vagrant.configure("2") do |config|
  config.vm.base_mac = "525400cae48b"
  config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
end

使用Vagrant和VirtualBox一步步地创建一个Base Box

Vagrant和VirtualBox软件的安装步骤省略,去官网下载最新的版本然后下一步下一步地安装就行了,和正常的安装软件没有什么区别。下面看看利用vagrant和virtualbox如果一步步打造出自己的可复用性强的开发环境。

开始前确保您的计算机支持虚拟化技术,在BIOS中可以开启。

一、在virtualbox中新建一个虚拟机

我这里使用的是CentOS-6.5-x86_64-minimal.iso这个镜像文件来安装的,1G内存,8G虚拟硬盘的配置(后面可以修改)。虚拟机名为centos。

安装好后该虚拟机已经自带了ssh服务,如果没有,需要自己先进行安装。

未分类

开启虚拟机,并登陆root用户。

二、配置虚拟机

创建admin用户组

[root@localhost ~]# groupadd admin

创建vagrant用户并添加到admin用户组

[root@localhost ~]# useradd -g admin vagrant

为vagrant用户设置密码,密码为vagrant(会提示密码太弱,可以不用管它)

[root@localhost ~]# passwd vagrant

修改sudoers文件

[root@localhost ~]# vi /etc/sudoers

在该文件添加下面两行代码,并注释掉requiretty行

Defaults env_keep="SSH_AUTH_SOCK"
%admin ALL=NOPASSWD: ALL

配置网卡:将ONBOOT=no 改为 ONBOOT=yes

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=08:00:27:25:4A:9A
TYPE=Ethernet
UUID=751ae3bb-eb75-4f60-b5c3-7f1afa1dfce1
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

配置好网卡后需要重启网络服务:

[root@localhost ~]# service network restart

三、设置端口转发

配置virtualbox端口转发(NAT模式)

未分类

主机ip127.0.0.1

主机端口22(或者其他未被占用端口,最好还是设置成22)

子系统ip可以在虚拟通过ifconfg命令查看到,即eth0网卡的ip地址

子系统端口为22

设置好端口转发规则之后,就能在本地的命令行工具(Xshell,putty..)里通过命令 ssh [email protected] 连接到该虚拟机。

四、添加vagrant公钥,使vagrant用户可以免密码ssh连接该虚拟机

在虚拟机里切换到vagrant用户

[root@localhost ~]# su vagrant
[vagrant@localhost root]$ cd ~
[vagrant@localhost ~]$

然后执行:

[vagrant@localhost ~]$ mkdir ~/.ssh/
[vagrant@localhost ~]$ cd ~/.ssh
[vagrant@localhost .ssh]$ sudo yum -y install wget
[vagrant@localhost .ssh]$ wget http://github.com/mitchellh/vagrant/raw/master/keys/vagrant
[vagrant@localhost .ssh]$ wget http://github.com/mitchellh/vagrant/raw/master/keys/vagrant
[vagrant@localhost .ssh]$ mv vagrant.pub authorized_keys

清理缓存

[vagrant@localhost .ssh]$ sudo yum clean all

然后关闭此虚拟机,通过virtualbox将其电源关闭

五、打包生成box文件

在本地命令行进入该虚拟机目录

cd UsersAdminVirtualBox VMscentos

进行打包

vagrant package --output mycentos.box --base centos

未分类

完成之后你将会在C:UsersAdminVirtualBox VMscentos目录下看到一个mycentos.box文件,我的这个文件有544M。

VirtualBox VMs这个目录可以在virtualbox全局设定-常规里进行修改

到此一个Base Box就制作完成了。

这个box是很干净的,然后可以在这个box的基础上去搭建自己的开发环境,比如lnmp等等。再次进行打包,最后一个带开发环境的box就做好了,可以自己用也可以分发给其他小伙伴使用,不用以后每次都要去搭建一遍环境。

六、附上vagrant常用操作命令

vagrant box list 查看在vagrant里已经安装了哪些box

vagrant box add name boxname.box 添加一个本地的box镜像到vagrant 这个box镜像可以自己制作也可以使用网上的(vagrant box add ubuntu ubuntu/trusty64)

vagrant init name 初始化一个虚拟机,这个name是通过vagrant box list查看

vagrant up 启动虚拟机 在virtualbox中可以看到启动后的虚拟机,第一次启动时时间会长一点

vagrant ssh 连接虚拟机

vagrant reload 重启虚拟机

vagrant status 查看虚拟机当前状态

七、常见问题处理

问题1:

default: in which case you may ignore this message.
==> default: Mounting shared folders...
default: /vagrant => E:/vagrantbox/centos67
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=500,gid=500 vagrant /vagrant

The error output from the command was:

mount: unknown filesystem type 'vboxsf'

上面这样的问题可以执行下命令 vagrant plugin install vagrant-vbguest ,然后重启vagrant reload来解决。

问题2:

vagrant up的时候出现 “rsync” could not be found on your PATH. Make sure that rsync is properly installed on your system and available on the PATH. 出现这样的错误

找到C:Usersadmin.vagrant.dboxescentos7virtualbox类似这样的目录下面的Vagrantfile文件

修改type配置项: config.vm.synced_folder “.”, “/vagrant”, type: “virtualbox”

VirtualBox硬盘镜像压缩 减小体积

缘起

罪魁祸首依然是mac,自从换了MBP,硬盘空间真的是捉襟见肘。由于需要看Android源码,搞了个Ubuntu虚拟机来编译源码,源码所在的硬盘镜像非常的大,一度达到40G,这在空间不足的情况下是不能忍的。

然后翻了下Android源码的镜像盘的物理文件居然比系统里实际的大小要大不少,这怎么能忍。。。。。。分析后发现,virturabox居然只会增大分配磁盘空间,居然不会自动释放空间,同时不提供对虚拟磁盘的释放操作界面,简直蠢。。。。。

好在搜索之后发现,virtualbox提供了命令行压缩磁盘的操作,那么就可以通过命令行操作曲线救国了,只是比较麻烦就是了。

操作

指导思想

1、虚拟机: 清理系统,卸载、删除系统垃圾文件

2、虚拟机: 将磁盘数据靠“前”移动,并将剩余磁盘空间写“零”

3、物理主机: 清除“零”字节空间,使用 VBoxManage modifyhd 工具压缩 VDI 磁盘镜像文件

Windows 虚拟机

1、虚拟机: 删除系统垃圾文件,运行磁盘整理程序…

2、虚拟机: 用 SDelete 工具写”零”,下载地址 http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx,在命令行下执行 “sdelete -c <盘符>”… 关机…(如果是多个磁盘,请加上不同的盘符分别执行)

3、物理主机: 执行 “VBoxManage modifyhd /the-path-of-VDI.vdi –compact”

Linux 虚拟机

1、虚拟机: 清理、卸载系统垃圾文件

2、填0操作(如果是多个盘,请分别执行)

sudo dd if=/dev/zero of=/EMPTY  bs=1M 

sudo rm -f /EMPTY

3、物理主机: 执行 “VBoxManage modifyhd /the-path-of-VDI.vdi –compact”

vm虚拟机格式

如果你的虚拟硬盘是Vmware的VMDK格式,那就要麻烦点,因为VirtualBox不支持直接压缩VMDK格式,但是可以变通下:先转换成VDI并压缩,再转回VMDK。执行命令:

VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifyhd cloned.vdi --compact
VBoxManage clonehd "cloned.vdi" "compressed.vmdk" --format vmdk

事实上,执行命令的过程中可以发现:在从VMDK转换到VDI的过程中似乎已经做了压缩,文件大小已经减少了很多,第二条命令反而没见到文件大小有什么变化,所以这里第二条命令应该可以省略了。

VMDK 的压缩,也可以使用 vmware-vdiskmanager,只需要一条命令(参考):

vmware-vdiskmanager -k disk.vmdk

总结

同样是虚拟机软件,vmware和vbox都是十分好用的(当然国内大多vmware都是盗版咯)。在大部分情况下,vmware和vbox的体验无差异,甚至于vbox开源免费,体积小巧,用起来更为合适。但是在一些细节上,比如磁盘压缩功能,vbox就不想VMware一样有界面工具支持,这也和大部分开源软件一样,界面是比较简陋的,但是功能不少,各种命令行各种参数用起来一般也能达到目的。

virtualbox的Linux虚拟磁盘大小调整及注意事项

安利

由于windows上面使用npm的体验很不好(目录嵌套导致的长目录错误), 所以不得不用linux系统.

然而无论是Debian还是Red Hat的包管理器, 都不能及时的提供最新的软件版本, 如果去官网编译安装的话, 总会由于网络问题中断, 一度很苦恼.

直到有一天, 一位dalao(@anciety)向我推荐了基于Arch Linux的Manjaro, 我才找到了一个真正满意的一款系统(各种意义上)

起因

最近由于安装了很多东西(主要是openvas的nvts feed), 把当初分配的8G空间占满了, 所以需要对虚拟磁盘进行扩充.

本应该是很简单的操作, 但是由于我之前创建过快照, 所以有一个坑, 导致修改后在Gparted中不显示新增的空间, 下面会提到.

正文

1、首先确认你当时创建的是动态分配空间的磁盘, 可以在虚拟机的”设置->存储”中选择控制器下的磁盘文件查看.

2、找到并复制该磁盘文件的路径,如:”F:GuestOSmanjaromanjaro.vdi”

3、找到你VirtualBox的安装目录, 里面有一个”VBoxManage.exe”程序

4、我假设你至少是Win7的系统了, 此时可以在VBox的目录空白处按住Shift单击鼠标右键, 选择”在此处打开命令窗口”.(如果你真的是xp, 请手动运行cmd然后cd到该目录吧..)

5、将命令 “VBoxManage modifyhd <vdi文件路径> –resize <文件大小(MB)>”, 替换为你的, 比如这里我要把磁盘空间提升到20G, 就输入:

VBoxManage modifyhd “F:GuestOSmanjaromanjaro.vdi” –resize 20480

要注意大小的单位只能是mb, 自己要先算好, 不需要单位只写数字.

PS: 如果你不是vdi格式的文件, 可以使用命令转换:

VBoxManage clonehd 源硬盘格式文件 目录硬盘格式文件 –format 目标格式后缀

6、回车执行命令, 很快进度就会到100%, 然后就完成了磁盘的扩容了, 不过这里有一个坑, 如果你建立过快照的话, 当前系统状态是基于你最后那个快照的, 所以你还需要对那个快照进行同样的扩容操作 ,如:

VBoxManage modifyhd “F:GuestOSmanjarosnapshots{xxxxxxxx-xxxx-xxxx-xxxx-xxxx}.vdi” –resize 20480

把里面的xxx换成你对应的文件名即可.

这可真是个大坑, 我当时在百度搜的五六篇文章都没有提到有快照时的情况, 导致我的vbox虽然提示我虚拟空间已经是20G了, 但在系统中查看未使用空间时总是显示一共就8G…然后又去百度vbox扩容后问题, 说的全是怎么用gparted分配空间, 最终在Google上搜vbox resize problem, 找到了一大堆官网的提问, 进去一看好多都是跟我一样的问题, 于是乎…问题解决.

附上参考:

https://www.virtualbox.org/ticket/9103

https://forums.virtualbox.org/viewtopic.php?f=35&t=50661

扩充完毕后, 就可以进行空间分配了, 即将新增的未使用空间添加到你要扩容的分区, 用gparted是一个不错的选择, 图形化, 方便快捷.

7、为虚拟机挂载一个有gparted的live光盘, 我直接用的ubuntu盘, 挂载之后选择live, 然后启动系统, 安装引导程序界面加载完后, 选择”Try Ubuntu”, 即可进入到Ubuntu live

8、打开终端, 运行

sudo gparted

9、选择你要扩容的分区, 我这里是 “/dev/sda1”, 右键 “Resize/Move”, 然后把上面的空间大小选择区域右侧拉到头, 点击 “Resize/Move”, 就可以了, 应该会有个提示提醒你如果操作不当可能会导致引导失败什么的, 点OK, 然后应用设置, 就可以了.

重启之后, 分区大小已扩增。

Virtualbox的centos7 nat和桥接网络配置

在实际配置虚拟机的过程中,网络配置时候一个很繁琐的过程,经常一个点没注意到,就访问不了了。在此,做一个简单的教程以供后续使用时可以参考!

方法一: 使用NAT网络

1. 选择网卡

安装centos7的时候注意选择两个网卡(配置CentOS7虚拟机里面能上外网,而主机与CentOS7虚拟机也能连通)

两个网卡分别为:

  • nat(虚拟机访问互联网,使用10.0.2.x段)
  • host-only(虚拟机和主机互相通信,使用192.168.56.x段)

在偏好设置里面设置网络。如下图配置:

未分类

未分类

2. 虚拟机网络设置

接下来对CentOS7虚拟机网络设置,添加网卡1和网卡2,分别选择连接方式和对应的网卡:

未分类

未分类

注意需要记下两个网卡的mac地址,后面需要在网络配置中使用到(如果第一步安装centos7的时候网络没有选择两个的话)

3. 配置网卡

开机,进入 /etc/etc/sysconfig/network-scripts/目录,可以看到目前只有ifcfg-enp0s3和ifcfg-enp0s8配置文件(如果安装centos7没有选择两个网卡的话,应该只有ifcfg-enp0s3 一个配置文件,如果只有一个配置文件,则另外一个就用这个copy过来改,需要更改UUID的值),如下图:

未分类

3.1 编辑ifcfg-enp0s3文件

vim ifcfg-enp0s3

未分类

注意看,是否已经将ONBOOT=no改为yes(最开始默认为NO,yes意思是,“BOOT开机”时候就能使用这张网卡),再添加BOOTPROTO为dhcp(只有“静态static”和“动态dhcp”两种方式),保存,退出,重启网络。
此时,已经可以ping通baidu的话,就说明虚拟机可以访问外网了

3.2 编辑ifcfg-enp0s8文件

vim ifcfg-enp0s8

未分类

注意:上面的NETMAST拼写错误,应该为NETMASK
注意此时宿主机要能ping通虚拟机的话,需要再配置一下

vi /etc/sysconfig/network
NETWORKING=yes
GATEWAY=192.168.56.1 (经后面测试,这个不能加入)

未分类

4. 执行重启网络命令

service network restart

此时应该就可以访问外网,并且可以与宿主机通信了

未分类

宿主机也能ping通虚拟机

未分类

方法二: 使用桥接网络

使用桥接网络也能够连通主机与虚拟机之间的网络,并且能够访问互联网

1. 设置桥接模式,virtualbox中设置

未分类

2. 配置centos的网卡地址

未分类

3. 测试

主机能ping通虚拟机:

未分类

虚拟机也能ping通主机:

未分类

VirtualBox虚拟机上的Ubuntu Linux Java开发环境部署记录

创建虚拟机时需注意三点:

  • 在BIOS中开启Intel VT,以支持64位虚拟机系统;
  • 对于Ubuntu 16以上版本,至少分配10G以上初始控件。

未分类

  • 增加一块网卡,选择Host-Only网络,用于主机和虚拟机的网络连接。

未分类

Ubuntu安装好以后,创建用户和root密码,进入系统。

点击虚拟机面板“管理-全局设定”,将网络地址设置为与主机同一个网段:

未分类

进入Ubuntu网络设置(点击右上角图标),把Host-Only网卡设为手动获取IP地址,填入主机同网段IP:

未分类

重启一下网络,用主机ping一下虚拟机地址进行验证。

必须注意的是,如果主机使用Wifi网络连接,需要在主机的无线网络属性中勾选Internet连接共享,共享的网段为192.168.137.1,上述设置要随之变化。

未分类

接下来安装增强功能,点击“设备-安装增强功能”,将自动加载光盘:

未分类

打开终端运行autorun.sh:

sudo ./autorun.sh

共享粘贴板中勾选双向:

未分类

First of all,更新一下系统:

sudo apt upgrade

安装FTP:

sudo apt-get install vsftpd

设置FTP路径:

sudo mkdir /usr/ftp

新建一个用于FTP的用户,设置密码以及工作目录:

sudo useradd -d /home/ftp -s /bin/bash ftpuser
passwd ftpuser

接下来有两种方法让ftpuser拥有更改ftp目录的权限,选项一:授予ftpuser用户读写ftp目录权限:

setfacl -R -m u:ftpuser:rwx /usr/ftp

选项二:将ftpuser添加到用户组ftp中,赋予用户组权限:

usermod -a -G ftp ftpuser
chown -R :ftp /usr/ftp
chmod -R g+rwx /usr/ftp
chmod g+s /usr/ftp

检查vsftpd.conf配置文件:

cat /etc/vsftpd.conf | grep -v "#" | more

在配置文件结尾加上如下字段:

write_enable=YES
local_root=/usr/ftp
chroot_local_user=YES
chroot_list_enable=YES

重新启动vsftpd服务:

sudo service vsftpd restart

打开Ubuntu自带浏览器尝试访问即可。

接下来安装Oracle JDK,这里以8u131版本为例,在Oracle官网上下载 jdk-8u131-linux-x64.tar解压到/usr/java目录(可通过上一步安装的FTP来将JDK安装文件传输到虚拟机目录):

sudo tar -xzvf jdk-8u131-linux-x64.tar.gz
sudo mkdir /usr/java
sudo mv usr/ftp/jdk1.8.0_131 /usr/java/jdk1.8

重命名为jdk1.8是为了之后配置环境变量方便,编辑.bashrc文件:

sudo gedit ~/.bashrc

在文件末尾加上以下内容:

# Java
JAVA_HOME=/usr/java/jdk1.8
JRE_HOME=$JAVA_HOME/jre
JAVA_BIN=$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH

让更改立即生效:

source ~/.bashrc

验证一下是否配置成功:

java -version

未分类

安装扩展包使Virtualbox能够识别USB设备

在默认情况下,Virtualbox是无法读取插到主机的U盘、u盾等USB设备的。但是,Virtualbox官方网站还是提供了解决办法。

那就是安装VirtualBox x.x.xxx Oracle VM VirtualBox Extension Pack 这个扩展包。该包的功能简单地说就是提供了USB2.0设备支持,Virtualbox远程桌面协议、Intel PXE启动支持。

下载地址:https://www.virtualbox.org/wiki/Downloads

使用步骤:

1、下载并且安装

2、当主机为WIN,那么在安装好之后就可以支持USB了,当主机为linux时候,还需要把用户加到vboxusers组里

A.在Ubuntu、Debian、Deepin、Linux Mint里
终端打开:sudo gedit /etc/group
找到这一行:vboxusers:x:126:
添加你的用户名,如你的用户名位kevin,则改成 vboxusers:x:126:kevin 然后保存退出

B.在Redhat、Fedora、Centos
su -
vi /etc/group
找到这一行:vboxusers:x:126:
添加你的用户名,如你的用户名位kevin,则改成 vboxusers:x:126:kevin 然后保存退出

保存修改后,重启计算机,打开终端,输入 id 看看用户次要组里是不是有了 vboxusers 呢。

这样打开Virtualbox,启动虚拟系统,分配USB设备就行了。

通过克隆虚拟机磁盘实现快速迁移VirtualBox虚拟机

Windos server上使用VirualBox迁移虚拟机时,可以使用自带的导入导出功能,但是当虚拟机比较大超过几十个G的容量,就会特别慢。一般比较快捷的方式是直接克隆虚拟机磁盘,然后复制虚拟机磁盘到新的机器上,创建一个新的虚拟机,选中克隆的磁盘。

查看虚拟机虚拟磁盘位置:

克隆磁盘命令,使用安装目录下的VBoxManage.exe执行克隆,命令行执行:

C:>F:VirtualBoxVBoxManage clonehd F:win2008_1win2008_1-disk1.vdi F:VM-BACK
win2008_1-247.vdi

克隆完成后会重新生成一个新的UUID,如果直接拷贝原来的虚拟磁盘启动会报错。

在新的虚拟机中创建此虚拟机:

使用克隆的磁盘启动:

启动虚拟机即可,第一次加载会比较慢。克隆虚拟机也是使用相同的方式。