首页 文章 精选 留言 我的

精选列表

搜索[内网穿透],共3758篇文章
优秀的个人博客,低调大师

用Proxmox搞定gpu穿透

在用proxmox加云终端盒子测试完桌面虚拟机以后,看到某qq群有人问能不能虚拟化gpu,用来做3D设计。正好闲置的台式电脑有amd R9 290X及R9 390X两块显卡,由于挖矿太耗电,已经放弃挖矿(挖以太币)。计划用此台式机,安装proxmox,做好设置并安装好虚拟机,并把宿主机的gpu资源透传给此虚拟机。如果透传正确,最起码能在虚拟机识别AMD显卡。按照这个思路,回到家马上开干。--猛戳此处有惊喜!!! ◎宿主机上的操作 安装proxmox之前,需要确保cpu开启虚拟化支持,这个操作在bios里边完成,请按主板的说明书进行操作,一般不会有什么障碍。接下来,用u盘安装proxmox,我用的主板有点奇葩,需要对引导“BOOT”下的“安全”做更改,默认是windows,改成“其它操作系统”,否则一直无法用u盘引导及安装。 在安装过程中,设置好proxmox的ip地址及账号密码,能用浏览器登录并进行后台管理。以ssh登录系统,修改文件/etc/apt/sources.list.d/pve-enterprise.list ,把唯一的哪行内容注释掉(不注释的话,web界面登录进行管理时会提示软件更新失败,毕竟咱没花钱订阅)。执行命令”apt-get update && apt-get upgrade”,有利于随时对软件包进行更新。 由于gpu虚拟化还未能在proxmox的web管理界面提供支持,因此,要启用这个功能,得登录proxmox所在宿主机的系统debian,进行如下操作: ○修改grub(与centos稍有差异)。编辑文件/etc/default/grub,修改行“GRUB_CMDLINE_LINUX_DEFAULT="quiet",使其为“GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" 。执行指令“update-grub” 使修改生效。 root@pve55:~# update-grubGenerating grub configuration file ...Found linux image: /boot/vmlinuz-4.15.17-1-pveFound initrd image: /boot/initrd.img-4.15.17-1-pveFound memtest86+ image: /boot/memtest86+.binFound memtest86+ multiboot image: /boot/memtest86+_multiboot.binAdding boot menu entry for EFI firmware configurationdone 为检验其效果,用一下指令验证其有效性。 root@pve55:~# dmesg | grep -e DMAR -e IOMMU[ 0.000000] ACPI: DMAR 0x00000000C88CAD70 0000B8 (v01 INTEL HSW 00000001 INTL 00000001)[ 0.000000] DMAR: Host address width 39[ 0.000000] DMAR: DRHD base: 0x000000fed90000 flags: 0x0[ 0.000000] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a[ 0.000000] DMAR: DRHD base: 0x000000fed91000 flags: 0x1[ 0.000000] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008020660462 ecap f010da[ 0.000000] DMAR: RMRR base: 0x000000c883b000 end: 0x000000c8847fff[ 0.000000] DMAR: RMRR base: 0x000000cb000000 end: 0x000000cf1fffff[ 0.000000] DMAR-IR: IOAPIC id 8 under DRHD base 0xfed91000 IOMMU 1[ 0.000000] DMAR-IR: HPET id 0 under DRHD base 0xfed91000[ 0.000000] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.[ 0.000000] DMAR-IR: Enabled IRQ remapping in x2apic mode 如果执行“dmesg | grep -e DMAR -e IOMMU”没有输出,则表明存在问题。极有可能是bios设置的问题,需要启动cpu的vt-x支持。对于amd类型的cpu,/etc/default/grub文件对于修改为“GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on”。该项目还支持几个值,可根据情况增加。 ○新增模块。修改文件/etc/modules,加入如下的行(默认为空): vfiovfio_iommu_type1vfio_pcivfio_virqfd ○IOMMU隔离校验。执行指令 “find /sys/kernel/iommu_groups/ -type l”,有输出则表示正常。 root@pve55:~# find /sys/kernel/iommu_groups/ -type l/sys/kernel/iommu_groups/7/devices/0000:00:1b.0/sys/kernel/iommu_groups/5/devices/0000:00:16.0/sys/kernel/iommu_groups/13/devices/0000:03:00.0/sys/kernel/iommu_groups/3/devices/0000:00:03.0/sys/kernel/iommu_groups/11/devices/0000:00:1d.0/sys/kernel/iommu_groups/1/devices/0000:01:00.1/sys/kernel/iommu_groups/1/devices/0000:00:01.0/sys/kernel/iommu_groups/1/devices/0000:01:00.0/sys/kernel/iommu_groups/8/devices/0000:00:1c.0/sys/kernel/iommu_groups/6/devices/0000:00:1a.0/sys/kernel/iommu_groups/4/devices/0000:00:14.0/sys/kernel/iommu_groups/12/devices/0000:00:1f.3/sys/kernel/iommu_groups/12/devices/0000:00:1f.2/sys/kernel/iommu_groups/12/devices/0000:00:1f.0/sys/kernel/iommu_groups/2/devices/0000:00:02.0/sys/kernel/iommu_groups/10/devices/0000:00:1c.3/sys/kernel/iommu_groups/10/devices/0000:04:00.0/sys/kernel/iommu_groups/0/devices/0000:00:00.0/sys/kernel/iommu_groups/9/devices/0000:00:1c.2 ○查看gpu显卡的地址,用于后边对虚拟机进行配置。查看硬件信息的指令为“lspci -i”,执行后,会有大量的信息输出,我们只需关心gpu显卡。 数字“01:00.0”就是gpu显卡地址,记下这个数值,以备将来使用。 ○gpu直通 l 用刚刚得到的数值做参数,执行 lspci -n -s 01:00 ,得到两行输出,将该输出重定向到文件/etc/modprobe.d/vfio.conf. root@pve55:~# lspci -n -s 01:0001:00.0 0300: 1002:67b0 (rev 80)01:00.1 0403: 1002:aac8root@pve55:~#echo"optionsvfio-pciids=10de:1381,10de:0fbc">/etc/modprobe.d/vfio.conf l 驱动黑名单 echo"blacklistradeon">>/etc/modprobe.d/blacklist.confecho"blacklistnouveau">>/etc/modprobe.d/blacklist.confecho"blacklistnvidia">>/etc/modprobe.d/blacklist.conf ◎创建windows虚拟机 在进行正式创建之前,可预先准备好2个镜像文件。一个windows 10 iso,另外一个virtio-win iso.将这两个iso文件复制到proxmox所在系统的目录” /var/lib/vz/template/iso/”,用这种方式比从web界面上传iso要可靠。 root@pve55:~# ls -al /var/lib/vz/template/iso/total 8574028drwxr-xr-x 2 root root 4096 Aug 17 15:01 .drwxr-xr-x 5 root root 4096 Aug 17 14:25 ..-rw-r--r-- 1 root root 4159854592 Aug 17 10:59 cn_windows_10_education_x64_dvd_6847843.iso-rw-r--r-- 1 root root 4303300608 Jul 16 18:04 cn_windows_10_multiple_editions_x64_dvd_6848463.iso-rw-r--r-- 1 root root 316628992 Aug 17 14:52 virtio-win-0.1.141.iso ○web管理界面创建虚拟机 --猛戳此处有惊喜!!! 浏览器访问 https://172.16.35.55:8006登录系统,点击页面右上角按钮“创建虚拟机”,操作系统选windows。下拉列表框选择前一步手工上传的iso文件,如下图所示: 往下创建硬盘,所设置的项如下图: 后边几步按实际情况分配资源,只到网络这步,选virtio(半虚拟化),提交完成创建。不过,这还没完,还要几个步骤需要执行(普通用途的虚拟机创建到这里就完成了): l 修改虚拟机的BIOS为OVMF(默认是SeaBIOS),其操作如下图所示: l 添加EFI磁盘,可不调整大小。如果不创建,后边安装windows操作系统很可能失败。 l 添加cd-rom,并将其与virtio驱动程序相关联。不执行此操作,在安装windows可能不能识别硬盘,无法往下继续进行。 l 修改“显示”项,为了配合云终端盒子,这里我选”Spice”。 l 命令行登录系统,打开文件/etc/pve/nodes/pve55/qemu-server/100.conf ,其内容由上述操做所生成。 root@pve55:~# more /etc/pve/nodes/pve55/qemu-server/100.conf bios: ovmfbootdisk: scsi0cores: 4efidisk0: local-lvm:vm-100-disk-2,size=128Kide0: local:iso/virtio-win-0.1.141.iso,media=cdrom,size=309208Kide2: local:iso/cn_windows_10_education_x64_dvd_6847843.iso,media=cdrommemory: 8196name: s50net0: virtio=4E:62:86:E8:C4:A0,bridge=vmbr0numa: 0ostype: win10scsi0: local-lvm:vm-100-disk-1,cache=writethrough,size=100Gscsihw: virtio-scsi-pcismbios1: uuid=de02509a-298b-4150-b225-4be73f471210sockets: 1vga: qxl 还有几个项,不能从浏览器添加进来,需要手工编辑并加入,其内容如下(加在100.conf文件的末尾): machine:q35hostpci0:01:00,pcie=1,x-vga=onargs:-deviceintel-hda,id=sound5,bus=pci.0,addr=0x18hostpci0:01:00,pcie=1,x-vga=on usb1:spiceusb2:spice ○安装windows虚拟机 Web管理界面点击已经创建好的虚拟机,启动à控制台。 弹出windows安装界面,按常规安装windows操作系统的方法一步步往下进行。安装过程有两个鼠标轨迹,有点恼人。等系统安装完以后,把驱动spice-guest-tool安装上,就没有这个问题。 往下几步,到选择安装位置的界面,没有把硬盘给识别出来,需要进行处理加载驱动处理。 与官方视频介绍稍有差异,这里进去以后,选vioscsi,先把硬盘驱动器识别上。 进度条假意来回走动,向人昭示是真的在扫描驱动,片刻,硬盘驱动器痴线在界面中,可以往下继续进行。 ○解决屏幕上两个鼠标问题。 安装好的虚拟机,自动识别网卡并获得ip地址,用浏览器访问http://www.spice-space.org,下载spice-guest-tools工具包,点击几次“一下步”即可完成。 运行完毕,屏幕分辨率显示正常,屏幕鼠标合二为一。 ◎虚拟机安装gpu显卡驱动 最开始,用的gpu显卡为adm Radeon R9 290x,虚拟机操作系统识别上属主机的显卡,在设备管理器里边,以×××叹号显示设备可不用。分别尝试用驱动精灵、360驱动大师去检查,都能识别gpu显卡,但执行安装后重启系统,又处于不能使用的状态。从官网下载驱动软件,400多M的文件,执行后,还是不正常。算了,把R290X卸下来,换成R390x。运气不错,安装完spice-guest-tools包,居然把显卡驱动也顺带安装好了。 现在,鼠标叠影解决了,显示效果也很清晰。接下来的操作,就在虚拟出来的云桌面上进行(云终端盒子去连proxmox服务器端的自定义spice端口)。 ◎虚拟化gpu测试 关闭刚创建好并正常运行的虚拟机,在web管理界面以此虚拟机克隆出另外一个。在克隆时,最好关闭虚拟机,或者生成一个模板,后边创建虚拟机就用模板来克隆。虚拟机处于运行状态执行克隆,速度慢得惊人,不建议在实际生产中使用。 启动一个虚拟机,正常;再启动第二个虚拟机,报错,提示设备繁忙。这应该是gpu显卡直通(pass-through)被前一个虚拟机独占所致。为了验证这一想法,关掉正常启动那个虚拟机,再启动另外一个,正常,原因确实是这个。 个人认为,这种独占方式在实际应用中不具备太多的优势。以一个高配的显卡,虚拟化多个gpu,共享给更多的人使用,才有有吸引力。查了两大显卡设备制造商amd与nvida,已经有解决方案;amd的称mxgpu,而nvida的叫vgpu。两家都发布了对应操作系统的驱动程序,受条件限制(amd 推荐radeon firepro S7100显卡),暂时无法继续进行试验,希望有条件的老司机不妨试试,并把实验结果告知大家。 最后,和大家分享我的订阅专栏《负载均衡高手炼成记》,本专栏依托作者十余年IT运维经验,从入门到实操,手把手教你构建运行不同场景下负载均衡以及日常维护。

优秀的个人博客,低调大师

Java 版本的网络穿透工具(wlcn)

Java版本的VPN(wlcn) 开源项目地址Gitee 版本迭代 1.3.1-JDK17-SNAPSHOT [add] 新增http代理(客户端代理服务端、客户端代理客户杜安、服务端代理客户端、服务端代理服务端) [add] 新增socks代理(客户端代理服务端、客户端代理客户杜安、服务端代理客户端、服务端代理服务端) [add] 新增客户端路由管理、新增服务端路由管理 [add] 支持新增虚拟IP,代理到指定的IP [add] 通过页面配置,代理支持控制端口代理控制 架构图 UI操作 路由 客户端路由管理 客户端虚拟路由管理 创建一个虚拟的不存在的IP,代理到指定的IP 服务端路由管理 服务端虚拟路由管理 创建一个虚拟的不存在的IP,代理到指定的IP 使用手册 Mac 使用方式 获取socks或者http代理服务器信息 如:ip:127.0.0.1 port:9001(socks)、8001(http) 使用Wi-Fi代理 注意如下方式只能代理浏览器请求,无法代理其他应用请求 使用第三方软件全局代理Proxifier3.8.0.dmg Proxifier配置 配置socks服务器地址 配置代理路由 展示效果 Windows 使用方式 使用Wi-Fi代理

优秀的个人博客,低调大师

外网访问内网微服务

本地安装了一个微服务,只能在局域网内访问,怎样从外网也能访问到本地的微服务呢?本文将介绍具体的实现步骤。 1. 准备工作 1.1 安装并启动微服务程序 默认安装的微服务端口是8088。 2. 实现步骤 2.1 下载并解压holer软件包 Holer软件包:holer-xxx.tar.gzHoler支持各种OS系统平台,请选择跟本地OS类型匹配的holer软件包。 2.2 获取holer access key信息 在holer官网上申请专属的holer access key或者使用开源社区上公开的access key信息。例如申请得到的holer信息如下,这里以此holer信息为例: --------------------------------------------- Holer Client : holerdemo@gmail.com Access Key : 6688daebe02846t88s166733595eee5d --------------------------------------------- Domain Name : holer65004.wdom.net Internet Address : holer.org:65004 Local Address : 127.0.0.1:8088 --------------------------------------------- 2.3 启动holer服务 Windows系统平台:打开CMD窗口进入可执行程序所在的目录下,执行命令:holer-windows-xxx.exe -k 6688daebe02846t88s166733595eee5dLinux或者其他系统平台: 执行命令nohup ./holer-xxx-xxx -k 6688daebe02846t88s166733595eee5d 2.4 访问映射后的公网地址 浏览器里输入如下URL,就可在公网上也能访问到本地的微服务了。http://holer65004.wdom.net或者http://holer.org:65004 2.5 问题咨询与帮助 使用holer过程中遇到问题可以先查看holer控制台打印的日志信息,这样很容易排查出问题的具体原因。如果需要帮助请联系holer技术支持人员,联系方式详见holer官网。更多的holer使用示例,请参考holer官方博客。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册