更多>>关于我们

西安鲲之鹏网络信息技术有限公司从2010年开始专注于Web(网站)数据抓取领域。致力于为广大中国客户提供准确、快捷的数据采集相关服务。我们采用分布式系统架构,日采集网页数千万。我们拥有海量稳定高匿HTTP代理IP地址池,可以有效获取互联网任何公开可见信息。

您只需告诉我们您想抓取的网站是什么,您感兴趣的字段有哪些,你需要的数据是哪种格式,我们将为您做所有的工作,最后把数据(或程序)交付给你。

数据的格式可以是CSV、JSON、XML、ACCESS、SQLITE、MSSQL、MYSQL等等。

更多>>官方微博

西安鲲之鹏
陕西 西安

加关注

  • 【经验分享】PC通过使用“远程ADB”(ADB over network)时连接设备时出现“unauthorized”,且设备不出现授权对话框问题的解决方法:
    (1)ADB客户端和服务端(安卓设备的adbd服务)之间的权鉴是通过公钥私钥对比进行的;
    (2)如果安卓设备保存有ADB客户端的公钥(Linux:  ~/.android/adbkey.pub, Windows: C:\Users\Administrator\.android\adbkey.pub),则直接通过验证。
    (3)如果安卓设备没有ADB客户端的公钥,则弹出"Allow USB debugging?对话框",如果选择同意,则授权通过并自动保存客户端公钥到指定位置(保存于/data/misc/adb/adb_keys文件内)。
    (4)"Allow USB debugging?对话框"只在通过USB连接设备的时候才会出现,“远程ADB”(ADB over network)模式不会出现,这样就无法像USB连接模式那样进行授权。
    (5)只要我们事先把ADB客户端的公钥文件adbkey.pub复制到设备的/data/misc/adb/adb_keys文件内,重启ADB客户端,重连设备,将会自动通过验证。

    上述步骤笔者在Bliss OS X86 系统下进行过多次实测。
    发布时间:2020-01-19 19:35:14
  • 【经验分享】Bliss OS X86系统如何开启自动开始“远程ADB”(ADB over network)?
    在开发者选项中可以手动开启“ADB over network”,但是重启后会自动关闭(This setting is reset on reboot)。
    解决方法:
    在/etc/init.sh中加入
    setprop service.adb.tcp.port 5555
    stop adbd
    start adbd

    重启后“ADB over network”将会自动启动!

    PS:原生的Android X86系统默认情况下开机“ADB over network”就是开启的,不需要像Bliss OS这样的额外设置。
    发布时间:2020-01-17 14:05:28
  • 【经验分享】Android X86模拟器如何修改屏幕分辨率大小?
    目的:设置屏幕分辨率为 1080x1920
    方法:
    (1) Alt + F1,切换到终端模式;
    (2) su,获取root权限;]
    (3)执行wm size 1080x1920,再按Alt + F7返回图形界面即可;

    如果想要在启动的时候自动设置,可以把上述命令添加到/etc/init.sh中,Bliss OS中亲测有效。
    发布时间:2020-01-15 12:59:26
  • 【经验分享】“KVM(QEMU) + Bliss OS X86 + MockLocation APP"打造支持虚拟定位的Android模拟器,用于APP数据采集小试牛刀: 采集某外卖平台数据。
    MockLocation APP是什么?  详见我这篇文章 >>> http://www.site-digger.com/html/articles/20200110/777.html ​​​​
    发布时间:2020-01-13 10:59:56
  • 【经验分享】推荐一款开源Android x86系统Bliss OS (x86),项目主页是https://blissroms-x86.github.io/

    经过实测我觉得Bliss有如下优点:
    (1) 比原生的Android x86(https://www.android-x86.org/)稳定,特别是应用兼容性较好,好多在原生Android x86下闪退的App,在Bliss下都能稳定运行。如图3和4所示,美团APP可以稳定运行,而在原生Android x86下会不停崩溃,无法正常工作。因此Bliss更适合作为安卓模拟器。
    (2) 支持平板模式和桌面UI两种模式,可以在设置里自由切换。这点比Phoenix OS要好,Phoenix OS貌似只有桌面模式,不适合作为安卓模拟器。
    (3) 无内置广告。吐槽一下Phoenix OS,刚开始没有广告,用一段时间就会提示让你购买会员,否则就会出现关不掉的广告。

    Bliss的缺点:
    (1) 启动比较慢,实测约50秒。
    (2) 不要升级内置的SuperSU,我试了多次,一升级重启后就卡在系统Logo界面,无法正常进入系统。
    发布时间:2020-01-12 10:50:54
  • 【经验分享】qemu-system-x86_64使用网桥出现
    failed to parse default acl file `/etc/qemu/bridge.conf`
    qemu-system-x86_64: -net bridge,br=br0: bridge helper failed
    问题(如附图1所示)的解决方法:

    原因是缺少/etc/qemu/bridge.conf文件。

    (1) mkdir /etc/qemu
    (2) echo 'allow br0' > /etc/qemu/bridge.conf
    发布时间:2020-01-12 10:05:12
  • 【开源分享】发布一款Android X86虚拟定位的App,支持命令行设置经纬度参数,无需UI操作,专为安卓App自动化模拟操作设计。

    用法举例:

    # 切换定位到"秦始皇陵"(34.384225, 109.254423)  
    adb shell am start -n cn.webscraping.qi.mocklocation/cn.webscraping.qi.mocklocation.MainActivity --es lat 34.384225 --es lng 109.254423  

    详细介绍见 >>> http://t.cn/AisHGPoY
    发布时间:2020-01-10 15:15:48
  • 【经验分享】Chrome + Remote Debugging模式(注意:不是Selenium + Chromedriver模式)登录淘宝出现“验证码爆错”(如附图所示)。原因Chrome V79版本在Remote Debugging模式时会爆出navigator.webdriver属性,从而被风控。换用V72或V73版本可以顺利登录!(前一条微博也说得是这个事儿) ​​​​
    发布时间:2020-01-02 15:20:22
  • 【经验分享】不经意见发现Chrome v73版本在Remote Debugging模式下(注意:不是Selenium + Chromedriver模式)不会暴露出navigator.webdriver!如附图1所示。

    作为对比,我又测试了其它的版本:
    (1)如图2所示,是Chrome V63版本,在Remote Debugging模式下会暴露出navigator.webdriver;
    (2)如图3所示,是Chrome V79版本,在Remote Debugging模式下也会暴露出navigator.webdriver;
    发布时间:2019-12-31 18:03:03
  • 【Mark收藏】MurmurHash3.js - A javascript implementation of MurmurHash3's hashing algorithms.    >>>  http://t.cn/z8Yont3

    Usage
    // Return a 32bit hash as a unsigned int:
    > murmurHash3.x86.hash32("I will not buy this record, it is scratched.")
      2832214938

    // Return a 128bit hash as a unsigned hex:
    > murmurHash3.x86.hash128("I will not buy this tobacconist's, it is scratched.")
      "9b5b7ba2ef3f7866889adeaf00f3f98e"
    > murmurHash3.x64.hash128("I will not buy this tobacconist's, it is scratched.")
      "d30654abbd8227e367d73523f0079673"

    // Specify a seed (defaults to 0):
    > murmurHash3.x86.hash32("My hovercraft is full of eels.", 25)
      2520298415

    // Rebind murmurHash3:
    > somethingCompletelyDifferent = murmurHash3.noConflict()
    > murmurHash3
      undefined
    > somethingCompletelyDifferent.version
      "2.1.2"
    发布时间:2019-12-31 11:11:58
当前位置: 首页 > 技术文章 >
KVM在Ubuntu下的安装配置
发布时间:2018-12-29

先说一下为什么选择KVM。笔者曾使用VMware虚拟机多年,它的GUI管理工具做的很出色,容易维护,但是期间遇到了一些问题,始终无法得到根治,后来换用KVM问题得到了解决。结合我的实际体验说一下KVM的优势:

 

  • KVM不需要桌面图形环境支持,能够在Linux Server版本下运行。
  • KVM的各种操作(创建、修改、起停、状态查看、删除、克隆等等)都在命令行下进行,不需要依赖GUI,因此很方便集成到自己的应用中去(比如,你可以实现一个自动化的VPS售卖平台)。
  • 网络更稳定。笔者使用VMware遇到最令人头疼的问题就是:经常遇到虚拟机重启后会莫名奇妙丢失网络(NAT模式),往往需要多次重启(或者关机操作)后才能恢复正常。在多种平台(Win7、Windows server 2012、Win10)、不同VMware版本下都遇到过这个问题。KVM是基于Linux内核的虚拟机(Kernel-based Virtual Machine,因此简称KVM),网络稳定性应该更好(目前使用过程还没有遇到类似的网络不稳定的问题)。

 

KVM在Ubuntu下的安装:

# 安装kvm相关软件包
sudo apt-get install qemu qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker
# 验证安装是否成功
kvm-ok

创建桥接网卡:

注意:默认kvm虚拟机是NAT模式上网。如果想要使用桥接模式,需要我们先配置好桥接网口(先确保已安装好了bridge-utils)。配置示例如下:

sudo vi /etc/network/interfaces
# 编辑内容如下
# 这里我们创建了两个网桥,br0桥接eth0,br1桥接eth1。br0配置了网关,主机通过该口访问外网。

auto eth0
iface eth0 inet manual

auto eth1
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.1.88
        netmask 255.255.255.0
        gateway 192.168.1.1
        network 192.168.1.0
        dns-nameservers 114.114.114.114
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

auto br1
iface br1 inet static
        address 10.10.1.1
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

 创建虚拟机:

# 创建虚拟机,安装ubuntu18.04 server版。
# 先下载好系统安装iso文件(e.g. 本例用的ubuntu-18.04.1.0-live-server-amd64.iso)
sudo virt-install \
--virt-type=kvm \
--name ubuntu1804server \
--ram 4096 \
--vcpus=4 \
--os-type=linux \
--os-variant=generic \
--hvm \
--cdrom=/home/qi/kvm/ubuntu-18.04.1.0-live-server-amd64.iso \
--network=bridge=br0,model=virtio \
--graphics vnc,listen=127.0.0.1,port=5900\
--disk path=/home/qi/kvm/ubuntu1804server.qcow2,size=20,bus=virtio,format=qcow2

--name参数用来指定要创建的虚拟机的名称(本例为ubuntu1804server),后面我们要操作该虚拟机的时候都需要提供该信息。如果想采用NAT模式上网,修改为--network network=default 即可。

执行上述创建虚拟机命令之后会提示让安装系统。用VNC客户端连上去,然后像给物理机安装系统一样正常安装即可,如下图所示。

 

虚拟机的常用操作:

# 列出当前主机上所有KVM虚拟机
sudo virsh list --all
# 查看虚拟机的信息
sudo virsh dominfo ubuntu1804server
PS: 这里只能列出部分信息,虚拟机的详细配置参数可见于该虚拟机的XML配置文件
# 关闭虚拟机
sudo virsh shutdown ubuntu1804server
# 强制关闭虚拟机
sudo virsh destroy ubuntu1804server
# 启动虚拟机
sudo virsh start ubuntu1804server
# 设置虚拟机开机自启动
sudo virsh autostart ubuntu1804server
# 取消开机自启动
sudo virsh autostart --disable ubuntu1804server
# 编辑虚拟机配置(修改内存大小、CPU核心数、光驱ISO文件、虚拟网卡配置、VNC配置、虚拟硬盘文件路径等等)
sudo virsh edit ubuntu1804server
PS:本质是调用vi修改虚拟机XML配置文件,修改后重启虚拟机才能生效。
例如,修改光驱ISO文件:
<disk type="file" device="cdrom">     
...     
<source file="/home/qi/kvm/virtio-win-0.1.141.iso"></source>    
...
</disk>
# 查看虚拟机的VNC端口
sudo virsh vncdisplay ubuntu1804server
返回信息说明: 0 表示VNC为 5900 端口,:1为5901,以此类推 。
# 克隆虚拟机(将ubuntu1804server克隆为ubuntu1804server-new)
sudo virt-clone -o  ubuntu1804server -n   ubuntu1804server-new  -f /var/lib/libvirt/images/ubuntu1804server-new.img
# 如何迁移虚拟机?
将虚拟机XML配置文件和虚拟硬盘文件传至新服务器上,并修正XML文件中虚拟硬盘文件的路径,然后执行下面命令导入该虚拟机:
sudo virsh define XML文件名
# 删除虚拟机
sudo virsh undefine ubuntu1804server
# 查看当前网络配置
sudo virsh net-list --all
# 查看default网络配置详情
virsh net-dumpxml default
# 输出示例如下

 

NAT端口映射:

如果虚拟机采用default网络模式(即NAT)上网,想要从外网直接访问虚拟机上的服务,需要在主机(母机)上使用iptables做NAT端口映射,如下示例为将母机的2208端口映射到虚拟机192.168.122.101的SSH端口(22):

# 可以将这些规则加到/etc/rc.local中,每次开机就能自动载入,为了能够在KVM启动之后才载入这些规则,需要第一条之前加上 sleep 30,以等待足够长的时间,确保KVM默认的防火墙规则已加载完毕(否则KVM默认的REJECT规则优先级会更高)
# sleep 30 
sudo /sbin/iptables -t nat -A PREROUTING -p tcp --dport 2208 -j DNAT --to 192.168.122.101:22
#下面这条很重要,缺少了无法联通,因为KVM默认添加的规则没有允许NEW状态的转发。
sudo /sbin/iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT

 

参考资料:

KVM 虚拟化技术

https://www.cnblogs.com/clsn/p/8366251.html

KVM系列教程:

https://www.cnblogs.com/chenjiahe/p/5909584.html

https://www.cnblogs.com/polly-ling/articles/7154334.html

How to install KVM on Ubuntu 16.04 LTS Headless Server

https://www.cyberciti.biz/faq/installing-kvm-on-ubuntu-16-04-lts-server/

Ubuntu14.04+KVM配置虚拟机桥接(bridge)

https://blog.csdn.net/FIELDOFFIER/article/details/48497833

https://www.jianshu.com/p/199b1d39590b

Ubuntu server 16.04 as a Hypervisor using KVM and Kimchi for VM Management

http://www.ubuntuboss.com/ubuntu-server-16-04-as-a-hypervisor-using-kvm-and-kimchi-for-vm-management/

KVM/libvirt: Forward Ports to guests with Iptables

https://aboullaite.me/kvm-qemo-forward-ports-with-iptables/

KVM使用NAT联网并为VM配置iptables端口转发,kvmiptables

https://www.cnblogs.com/dwj192/p/8862199.html

KVM虚拟机的克隆

https://www.cnblogs.com/5201351/p/4461000.html

Creating Windows virtual machines using virtIO drivers

https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html

Centos 6.7 KVM下安装windows 7系统

https://www.cnblogs.com/weifeng1463/p/6807997.html

Guest Support Status

https://www.linux-kvm.org/page/Guest_Support_Status

KVM设置启动顺序

https://stackoverflow.com/questions/19011159/how-to-set-boot-order-on-kvm-libvirt-virsh

动态挂载光驱

https://serverfault.com/questions/373372/how-to-connect-a-cdrom-device-to-a-kvm-qemu-domain-using-command-line-tools

Forwarding ports to guests in libvirt / KVM

https://serverfault.com/questions/170079/forwarding-ports-to-guests-in-libvirt-kvm

Setting Remote Desktop access password in KVM

https://stackoverflow.com/questions/4785494/setting-remote-desktop-access-password-in-kvm

https://www.cyberciti.biz/faq/linux-kvm-vnc-for-guest-machine/

libvirt Networking Handbook

https://jamielinux.com/docs/libvirt-networking-handbook/index.html

DISPLAYING THE IP ADDRESS AND PORT NUMBER FOR THE VNC DISPLAY

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-editing_a_guest_virtual_machines_configuration_file-displaying_the_ip_address_and_port_number_for_the_vnc_display

特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。
☹ Disqus被Qiang了,之前所有的评论内容都看不到了。如果您有爬虫相关技术方面的问题,欢迎发到我们的问答平台:http://spider.site-digger.com/
QQ在线客服
欢迎咨询,点击这里给我发送消息。
欢迎咨询,点击这里给我发送消息。

加微信咨询