HOO八卦
妖魔鬼怪快离开

Hetzner 22欧服务器开VPS教程(转)

Nightmare阅读(802)

大家都抢到hetzner了吧,现在教大家开小鸡   注意是 nat 小鸡.

主机建议安装 proxmox,不折腾,功能强..   hetznet 的方法是后台进救援模式,然后运行 installimages ,可以选 proxmox.其他杜甫一般可以自已下载 Proxmox 的 ISO 安装,安装过程很简单,不在这里介绍.

proxmox 安装好后一般开小鸡是没办法自动获取 IP 的,因为 proxmox 默认没 DHCPD 服务,需要自已安装,以下不废话,进入正题..

1:添加 NAT 网桥
只有一个公网 IP,想要虚拟机上网,就只能使用 NAT 模式.没有使用 WEB UI 上的方案,直接编辑/etc/network/interface 文件

  1. auto vmbr0
  2. iface vmbr0 inet static
  3. address 192.168.100.1
  4. netmask 255.255.255.0
  5. bridge_ports none
  6. bridge_stp off
  7. bridge_fd 0
  8. postup echo 1 > /proc/sys/net/ipv4/ip_forward
  9. postup echo 1 > /proc/sys/net/ipv4/conf/vmbr0/proxy_arp
  10. postup iptables t nat A POSTROUTING s ‘192.168.100.0/24’ o enp2s0 j MASQUERADE
  11. postdown iptables t nat D POSTROUTING s ‘192.168.100.0/24’ o enp2s0 j MASQUERADE

运行 service networking restart  使添加的网桥生效

2:安装 DHCP 服务.

  1. aptget install iscdhcpserver

3:配置 DHCP 服务
修改文件:/etc/default/isc-dhcp-server,添加 INTERFACES=”vmbr0″
修改文件:/etc/dhcp/dhcpd.conf

  1. ddnsupdatestyle none;
  2. defaultleasetime 600;
  3. maxleasetime 7200;
  4. #ping true;
  5. option domainnameservers 172.27.15.2, 10.72.81.2;
  6. option domainname “cloud.isfate.com”;
  7. authorative;
  8. logfacility local7;
  9. subnet 192.168.100.0 netmask 255.255.255.0 {
  10. range 192.168.100.5 192.168.100.230;
  11. option subnetmask 255.255.255.0;
  12. option domainnameservers 8.8.8.8, 8.8.4.4;
  13. option domainname “cloud.isfate.com”;
  14. option routers 192.168.100.1;
  15. option netbiosnameservers 192.168.100.1;
  16. option netbiosnodetype 8;
  17. getleasehostnames true;
  18. usehostdeclnames true;
  19. defaultleasetime 600;
  20. maxleasetime 7200;
  21. interface vmbr0;
  22. }

最后,  service isc-dhcp-server restart
收工..

新开小鸡选网卡时用 vmbr0 这个网卡就会自动获取到 IP 并分配到 192.168.100.x 的 IP,可以上网.
外网要访问小鸡的话可以在主机上 安装 socat 或 frp 来实现.

…什么  socat  frp 怎么用???  不想打字了,自已 google.

… 我的杜甫有多个独立 IP,怎么分配给小鸡???    不想打字了,自已 google. 心情好时放出来

 

https://www.lizi.tw/web/5029.html

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网

Nightmare阅读(221)

Proxmox一键安装不求人

早些之后买了一台独服,国内机房不会装Proxmox,也是醉。

于是自己动手,现在Debian 9的系统是自带Promox了,按照PVE官方的一键安装方式,可以直接装上,我们下面来看一下。

安装好全新的Debian 9系统后,我们需要设置HOSTS的IP,输入命令vi /etc/hosts

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网

除了localhost以外,还需要红框标明的你的IP,可以是外网,也可以是内网,这里我们的独立服务器有1个IP,我们用外网的IP,保存退出。

hostname --ip-address

用此命令查看自己的IP是否正确,此处应该会显示你刚才添加的IP了。


然后添加安装源

echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

以及为此源添加KEY

wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg

更新
apt update && apt dist-upgrade
最后一键安装PVE,期间要求你设置MAIL SERVER,如果不需要可以选择不设置
apt install proxmox-ve postfix open-iscsi

这样就安装完成了,访问地址为:
https://ip:8006

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网


访问proxmox,访问方式https://ip:8006

登陆方式为SSH root账号的登陆信息,登陆后进行网络配置。

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网

如图所示建立名为vmbr0的Linux Bridge虚拟网卡,输入您的外网IP,网关,掩码后,把autostart勾上,并且Bridge ports指向物理网卡eno1,保存。

 

然后删除eno1网卡的各项信息,并把autostart取消勾选,保存退出。

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网


最后我们为即将建立的虚拟机进行网络配置

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网

Debian9一键安装Proxmox,单IP小鸡VPS设置NAT全端口上网

登陆debian 9,进入修改网卡vi /etc/network/interfaces
将以下代码复制进去:

auto vmbr2
    iface vmbr2 inet static
    address 192.168.100.254
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up iptables -t nat -A POSTROUTING -s \\'192.168.100.0/24\\' -o vmbr0  -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s \\'192.168.100.0/24\\' -o vmbr0  -j MASQUERADE

post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 1:8005 -j DNAT --to 192.168.100.1:1-8005
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 1:8005 -j DNAT --to 192.168.100.1:1-8005
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8008:65535 -j DNAT --to 192.168.100.1:8008-65535
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 8008:65535 -j DNAT --to 192.168.100.1:8008-65535

#post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 1:8005 -j DNAT --to 192.168.100.2:1-8005
#post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 1:8005 -j DNAT --to 192.168.100.2:1-8005
#post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8008:65535 -j DNAT --to 192.168.100.2:8008-65535
#post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 8008:65535 -j DNAT --to 192.168.100.2:8008-65535

以上代码意思为:

建立vmbr2的虚拟网卡,为192.168.100小鸡配置网络,以NAT方式上网,并且获得全端口。
网关192.168.100.254
掩码255.255.255.0
并且将192.168.100.0/24这一个内网IP段网络都指向vmbr0

post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp –dport 1:8005 -j DNAT –to 192.168.100.1:1-8005
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp –dport 1:8005 -j DNAT –to 192.168.100.1:1-8005

这句的意思是将端口1到8005,以NAT的方式给IP为192.168.100.1的小鸡使用。


至此,配置全部结束,/etc/init.d/networking restart或者reboot等重启完就可以安装小鸡上网了。

KVM的安装文件ISO目录为/var/lib/vz/template/iso,将ISO文件放在该目录就可以在PVE系统中安装了。

以上教程默认8006为Proxmox端口,8007为SSH端口。

 

http://www.luckping.com/?p=736

hetzner安装proxmox开NAT和ipv6小鸡

Nightmare阅读(146)

虽然说使用Windows用Hyper-v开小鸡全程都是GUI很方便,但是Hyper-v并不提供dhcp等服务,所以在windows下管理小鸡反而难以操作。所以打算重新安装proxmox后使用NAT v4 ipv6和纯v4ip来创建小鸡,web访问服务可以使用套上CF的CDN来使用V6回源,节省0.84欧的ip费用,而且购买单独ip貌似是不能超过6个?

一、安装proxmox

进入救援系统使用installimage命令选择Other,在选择proxmox*stretch这是在Debian9上安装proxmox5的脚本。不过Hetzner并不提供技术支持,所以安装完后需要进行一些修改。

安装的配置脚本需要进行一些修改

hetzner安装proxmox开NAT和ipv6小鸡

hetzner安装proxmox开NAT和ipv6小鸡

修改硬盘Raid方式,和宿主机hostname。如果不需要raid可以修改SWRAID为0.

hetzner安装proxmox开NAT和ipv6小鸡

hetzner安装proxmox开NAT和ipv6小鸡

修改空间分配方式,我想要大部分空间到同一个目录下,所以我把/目录的容量修改为50G。按F10保存并进行自动安装。

安装完成进入httpss://ip:8006 输入救援系统的root账号和密码

二、配置网络

首先开启forward

 
  1. 1
  2. 2
  3. 3
  4. 4
  1. vim /etc/sysctl.d/99hetzner.conf
  2. #加入
  3. net.ipv4.ip_forward=1
  4. net.ipv6.conf.all.forwarding=1

由于Hetzner并不提供技术支持,所以安装后并为创建网桥,所以需要手动创建。

hetzner安装proxmox开NAT和ipv6小鸡

hetzner安装proxmox开NAT和ipv6小鸡

把默认网卡(我的是enp3s0)的所有配置都写到新的网桥vmbr0中,并删除默认网卡的配置,设置桥接端口为enp3s0

创建NAT用网桥

上面创建的vmbr0是直接连接到外部网络的网桥,下面要创建NAT专用的网桥

创建vmbr1,配置如下

hetzner安装proxmox开NAT和ipv6小鸡

hetzner安装proxmox开NAT和ipv6小鸡

ipv6的地址填写vmbr0上设置的地址。

全部设置如下

hetzner安装proxmox开NAT和ipv6小鸡

hetzner安装proxmox开NAT和ipv6小鸡

保存完毕后重启主机后就会生效

三、创建小鸡

ISO镜像可以从Web面板上传,proxmox也提供一些模板不过都是lxc的

hetzner安装proxmox开NAT和ipv6小鸡

hetzner安装proxmox开NAT和ipv6小鸡

也可以直接进入/var/lib/vz/template/iso/上传到这里,也可以进入Web管理界面创建一个新的目录拿来放iso也行

创建独立IP小鸡

购买完ip后点击ip旁边的reset separate MAC按钮就可以生成一个mac地址,可以直接dhcp设置ipv4

点击右上角创建虚拟机就可以创建KVM机,过程没啥要注意的除了在网络那里选择vmbr0并填入mac,启动之后就可以直接使用了

创建NAT V6小鸡

创建小鸡,选择vmbr1网卡

主机中输入iptables命令,将vmbr1的IP段流量通过vmbr0跳转到外网去,这样小鸡就能访问外网

iptables -t nat -A POSTROUTING -s \\'192.168.1.0/24\\' -o vmbr0 -j MASQUERADE
安装过程需要手动配置ip信息

安装完小鸡后在硬件设置中添加新的网卡连接到vmbr0上,并在小鸡中配置v6的ip信息,并且运行以下命令,小鸡就能通过新的网卡访问ipv6

 
  1. 1
  2. 2
  3. 3
  1. ip f inet6 neigh add proxy 2a01:4f8:xxx:xxx::vmbr0IP dev vmbr0
  2. ip f inet6 neigh add proxy 2a01:4f8:xxx:xxx::小鸡ip dev enp3s0
  3. ip f inet6 route add 2a01:4f8:xxx:xxx::小鸡ip dev vmbr0

如果想要暴露端口使用
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8088 -j DNAT --to 192.168.1.2:80

https://www.tophedu.com/index.php/2018/05/12/hetzner%E5%AE%89%E8%A3%85proxmox%E5%BC%80nat%E5%92%8Cipv6%E5%B0%8F%E9%B8%A1/

Proxmox VE三种方法配置NAT小鸡和IPv6地址

Nightmare阅读(109)

武汉联通已经开启了IPv6全网部署,这个下次再写(咕咕咕),今天来折腾一下Proxmox VE环境下分配NAT小鸡和IPv6公网地址。

背景介绍

有许多人是长期玩过各种小鸡却没当过奸商服务商的,于是乎手痒想买点母鸡体验体验当鸡头服务商的快感。博主也是一样,所以在美帝堪萨斯城著名垃圾佬机房Wholesaleinternet(Nocix、Datashack)租的辣鸡母鸡想体验一把。由于普遍这种辣鸡母鸡不支持IPMI(online、hentzer、二道贩子oneprovider之流),也不能自己挂ISO,只能从服务商提供的各类远古时期镜像里面进行选择,比如Proxmox VE 3或者Xenserver 6.2/6.5(仅限wholesaleinternet之流)。从头到尾只用过Xenserver 6.5 开心版XenSystem、ESXi 6.0、ESXi 6.5这几个虚拟化环境(ESXi还是在online机器上试用的)。

由于服务商提供的远古镜像版本太老,加上一直用开心版XenSystem感觉不合适,所以就想着搞个Proxmox VE玩玩。主要是因为Proxmox VE一个不花钱,再一个是图形面板,比较适合我们这种进入懒癌晚期的95后中老年人。同时也是由于Xen的某些蛋疼特性、ESXi没有路由和转发功能,加上一直想试试IPv6的骚操作,所以一共就折腾了”Debian 7升级Debian 8升级Debian 9安装Proxmox VE 5″和”在Proxmox VE中给小鸡配置IPv4内网 IPv6公网的操作”(对你没看错,最新的Debian镜像竟然是上古版本Debian 7,这个后面写,咕咕咕)

介绍完毕,下面是配置IPv6小鸡的三种方法,其中两种是NAT。

Proxmox VE是一个代码遵循GNU/AGPLv3协议开源的集成LXC(OpenVZ)和KVM的虚拟化平台。除了商业服务需要采用订阅模式付费外,平台所有功能都是免费使用的。由于使用LXC和KVM,加上协议不同,导致其与VMWare、Xenserver和Hyper-V等商业化更重的平台相比,开放度更高,故有很多人选择使用Proxmox VE作为个人或小团队使用的虚拟化平台。其实其也支持很多如集群、HA等高级特性,完全可以在中大型环境下使用。

一、土豪法(非NAT)

废话部分

首先,辣鸡母鸡包含以下配置:

  • CPU:FX-6300
  • RAM:16GB DDR3
  • 储存:240G SSD 2×1T HDD
  • 端口:100TB流量 – 1000M口
  • IP:/29 IPv4地址 /64 IPv6地址

/29其实上可用IP是5个,抛去母鸡系统占一个还剩4个。IPv6地址/64导致下级设备不能获取更小的前缀进行自动配置,而且服务商没开DHCPV6和SLAAC(貌似wholesaleinternet开了但是nocix没开?可能是我的锅),所以必须要手工配置。

由于我这里本地运营商开启了IPv6(湖北联通,yes!),所以有一个省IP的玩法:给小鸡配内网IPv4 公网IPv6上网。至于用来干嘛,大家就自由发挥~

好,废话说了半天,先来介绍土豪法:有多少有几个小鸡用几个IP

配置桥接

其实本方法也就是入门的Proxmox VE网络配置方法。如果有人和我一样是从Debian 9通过apt安装的Proxmox VE,那么第一个问题就是Debian 9默认是直接在eth0上配置IP来上网的。而要开小鸡上网,就要先配置桥接接口。

通过SSH登录,su提升到root权限,编辑/etc/network/interfaces写入下面类似的配置文件,新建一个vmbr0接口,桥接到eth0接口上

auto vmbr0
iface vmbr0 inet static
        address  192.187.*.*
        netmask  255.255.255.248
        gateway  192.187.*.*
        bridge-ports eth0
        bridge-stp off
        bridge-fd 0

同时,要将iface eth0 inet manual中的相关信息删掉。最后执行service networking restart使配置生效。
此时,在Proxmox VE控制台应该能看到名称为vmbr0类型为Linux Bridge的设备了。那么下一步,就是建立小鸡,并为小鸡配置IP地址。
LXC小鸡在建立的时候选择vmbr0并填写IP信息即可

建立并配置小鸡

KVM小鸡由于虚拟化原因,需要安装完成进入系统之后设置,根据系统类型的不同修改IP配置,在同一个接口上配置v4和v6地址即可。

土豪配置简单来说就是使用一个桥接接口,给每个小鸡配置一个或者多个公网IPv4地址 IPv6地址,这种方式比较比较简单,适合建立需要v4 v6双栈访问的服务器,如web之类的。

那么问题来了:如果我IP比较少怎么办?比如online的只有1个IP,或者只加了1个IP共两个IP怎么办?

二、省钱法

1、单IP

同上,如果你是使用Debian安装上来的话,需要先把eth0(或者eno之类的)接口信息改到vmbr0上,以便于建立小鸡使用。

配置母鸡网络信息

在这一步中,主要目的是建立一个承载内网IP的虚拟适配器,通过iptables的SNAT或者MASQUERADE转发数据包到公网地址上,实现小鸡能够通过IPv4联网。

同样的,需要修改/etc/network/interfaces文件,除了上一方法中提到的vmbr0之外,还需要新建一个vmbr2适配器

auto vmbr2
iface vmbr2 inet static
        address  10.10.10.1
        netmask  255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0

        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s \\'10.10.10.0/24\\' -o vmbr0 -j SNAT --to 192.187.*.*
        post-down iptables -t nat -D POSTROUTING -s \\'10.10.10.0/24\\' -o vmbr0 -j SNAT --to 192.187.*.*

此处的配置文件主要是建立一个vmbr2的接口,IP地址为10.10.10.1(将作为小鸡网关地址)并不桥接到任何端口,且在接口上线时给iptables增加一条NAT规则,将所有10.10.10.0/24的数据包转发到公网192.187.*.*地址上。这里的SNAT也可以使用MASQUERADE替代,根据你的网络情况和个人需求自行选择类型和地址。

配置小鸡网络信息

那么,现在我们拥有了2个可以给小鸡用的接口vmbr0vmbr2,那么下一步的操作就很明显了,给小鸡分配2个接口,其中一个提供IPv4内网地址,一个提供IPv6公网地址。

在前面提到的添加接口的基础上,前往Proxmox VE面板的小鸡网络选项界面(此处以LXC为例),选择添加,并在“桥接”一栏选择vmbr2接口,在此接口上配置IPv4的内网地址,在vmbr0接口上配置IPv6地址。
若为KVM小鸡,则在小鸡硬件中选择添加-网络设备,桥接到vmbr2上,并在系统内编辑相应的设备配置文件即可。

检查配置

开启小鸡后,检查网络配置。

[root@IPv6-from-NAT ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
13: eth0@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether ae:4e:9b:85:54:ad brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.10.10.123/24 brd 10.10.10.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ac4e:9bff:fe85:54ad/64 scope link
       valid_lft forever preferred_lft forever
15: eth6@if16: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 12:98:54:4c:39:f6 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 2604:4300:*:*:*::1/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::1098:54ff:fe4c:39f6/64 scope link
       valid_lft forever preferred_lft forever
[root@IPv6-from-NAT ~]# ping6 www.google.com
PING www.google.com(dfw06s49-in-x04.1e100.net (2607:f8b0:4000:80d::2004)) 56 data bytes
64 bytes from dfw06s49-in-x04.1e100.net (2607:f8b0:4000:80d::2004): icmp_seq=1 ttl=55 time=69.8 ms
64 bytes from dfw06s49-in-x04.1e100.net (2607:f8b0:4000:80d::2004): icmp_seq=2 ttl=55 time=18.3 ms
64 bytes from dfw06s49-in-x04.1e100.net (2607:f8b0:4000:80d::2004): icmp_seq=3 ttl=55 time=18.2 ms

--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 18.261/35.487/69.892/24.328 ms
[root@IPv6-from-NAT ~]# ping www.google.com
PING www.google.com (216.58.194.132) 56(84) bytes of data.
64 bytes from dfw06s49-in-f132.1e100.net (216.58.194.132): icmp_seq=1 ttl=51 time=48.5 ms
64 bytes from dfw06s49-in-f132.1e100.net (216.58.194.132): icmp_seq=2 ttl=51 time=48.6 ms
64 bytes from dfw06s49-in-f132.1e100.net (216.58.194.132): icmp_seq=3 ttl=51 time=48.7 ms

--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 48.531/48.653/48.762/0.271 ms

期中一个适配器应有inet 内网IPv4地址另一个适配器应有inet6 公网IPv6,且能同时访问IPv4与IPv6网络,则说明配置成功。

额外说明

在此网络环境下,若想实现IPv4远程访问小鸡,需要利用DNAT将IPv4公网地址端口映射到某内网地址上。若要实现web访问,可以尝试使用nginx或其他反向代理程序。
公网IPv6可直接访问。

2、双IP

可能会有人说到一个问题:在母鸡上同时要搞桥接、要搞反向代理、要搞端口映射,甚至有可能需要更多复杂的操作,怕把配置搞乱了,而且操作起来很蛋疼,咋整?
若是IPv4地址有空余的情况下(母鸡共有2个及以上公网IPv4),可以选择建立一个软路由实现对小鸡IPv4内网地址的配置,同时兼职防火墙、反向代理、端口转发什么的,既可以避免由于配置出错造成不必要的麻烦,也可以更为直观的进行调整。但若IPv6地址只有/64则无法在软路由上进行配置,需要额外调整(或者说我暂时没学会QAQ)。所以先说说IPv4部分。

软路由的选择

如果是折腾路由器的朋友,经常接触的路由系统无非是LEDE(Openwrt)/DD-wrt/Tomato/Padavan/iKuai等等。若是用于跑小鸡的话,这里推荐大家使用开源的pfSense防火墙(对你没看错,人家是当防火墙用的)。

首要原因当然是配置比较方便,在pfSense官网下载(https://www.pfsense.org/download/ )最新版本的ISO安装包,保存到Proxmox VE的镜像文件夹,创建一个虚拟机安装就行。

第二个原因是有中!文!界!面!是不是已经对整篇幅的英文感到头痛了?没错,pfSense从2.4.x版本开始内置了国内大神翻译的全中文语言包,直接在系统设置内选择就行。

最后一个原因是pfSense基于FreeBSD的,其本身支持众多插件扩展,包括Haproxy实现反向代理及负载均衡、ACME自动签发、squid反向代理、cron设定等等,同时防火墙规则和其他设置十分细致,如果配置得当可以实现很多功能。

当然,大神用LEDE或者RouterOS也可以实现,我们这种懒人就按下不表,先说说pfsense的配置。

准备安装pfsense

首先,SSH登录服务器,跳转到iso储存路径下,下载pfSense最新版ISO安装镜像。

root@kansas:/home/*# cd /datastore/iso1/template/iso
root@kansas:/datastore/iso1/template/iso# wget https://atxfiles.pfsense.org/mirror/downloads/pfSense-CE-2.4.3-RELEASE-amd64.iso.gz
--2018-08-11 12:38:48--  https://atxfiles.pfsense.org/mirror/downloads/pfSense-CE-2.4.3-RELEASE-amd64.iso.gz
Resolving atxfiles.pfsense.org (atxfiles.pfsense.org)... 2610:160:11:11::81, 208.123.73.81
Connecting to atxfiles.pfsense.org (atxfiles.pfsense.org)|2610:160:11:11::81|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 319675629 (305M) [application/octet-stream]
Saving to: \\'pfSense-CE-2.4.3-RELEASE-amd64.iso.gz\\'

pfSense-CE-2.4.3-RELEASE 100%[==================================>] 304.87M  53.8MB/s    in 7.3s

2018-08-11 12:38:56 (41.6 MB/s) - \\'pfSense-CE-2.4.3-RELEASE-amd64.iso.gz\\' saved [319675629/319675629]
root@kansas:/datastore/iso1/template/iso# gzip -d pfSense-CE-2.4.3-RELEASE-amd64.iso.gz

新建一个名为vmbr999的接口,不桥接到任何地址,也不配置地址,用于作为软路由LAN口

auto vmbr999
iface vmbr999 inet manual
        bridge-ports none
        bridge-stp off
        bridge-fd 0

新建一个KVM虚拟机,建议配置1G内存以上,在设备配置中同时配置vmbr0vmbr999两个接口,前者作为WAN,后者作为LAN使用。

安装pfsense

启动已经挂载安装ISO的虚拟机(IP太多懒得打码了)

将会自动从ISO启动,在此页面下可以保持默认,直接进入安装程序

遵循默认,一路回车即可

安装完成后,如下图,会提示是否需要开启shell进行手工配置,此处可以选择否,然后选择Reboot进入pfSense控制台手工配置,较为方便。

配置pfsense

首次启动时,如下图,会提示进行系统配置

自上而下的配置是:是否设置VLAN、WAN接口设置为vtnet0(对应vmbr0)、LAN接口设置为vtnet1(对应vmbr999)、确认开始执行配置

执行完成后系统会自动reload,此时可以看到WAN接口上暂无IP,这是因为默认配置为DHCP自动获取,此时在控制台输入数字2,按回车进入接口IP配置界面

如上图,根据自己的IP地址、子网大小、网关地址分别设定

此时,会提示设定IPv6信息。由于我的服务商只给了一个/64子网,没有可以分配的子网前缀,所以这里选择不开启从DHCPv6获取IP,也不设置IPv6地址(小鸡不通过pfSense配置IPv6)。同时,不选择使用HTTP替代HTTPS进行Web管理,最后按回车执行配置。

此时,可以尝试使用https://你的公网IP来访问pfSense的网页配置界面,但无法访问。这是因为pfSense默认防火墙不允许通过WAN接口地址访问管理界面,需要修改防火墙设定。在控制台输入8,按回车进入shell界面。

执行easyrule可以查看命令帮助,允许通过防火墙的命令格式为

easyrule pass 接口名 协议 客户端IP地址 服务端IP地址 端口号

此时,我们需要在公网地址上访问采用https的web管理界面,那么应使用如上图的命令

easyrule pass wan tcp any 192.187.110.158 443

此处的any是代表任意主机,建议为安全起见,用你本地的公网IP替代。

此时,使用浏览器访问https://192.187.110.158即可正常打开pfSense控制台,默认账号为admin,默认密码为pfsense,高级配置和插件安装等功能可进入web管理界面进行配置。

配置小鸡

按正常方法新建LXC或KVM虚拟机,并在设备配置中同时配置vmbr0vmbr999两个接口即可。根据需要和系统不同,在vmbr0接口上配置IPv6地址,在vmbr999接口上配置与pfSense中LAN接口同一网段地址(或使用DHCP),此时小鸡应同时能够通过IPv4和IPv6地址上网。如下:

[root@IPv6-from-pfsense ~]# ifconfig
-bash: ifconfig: command not found
[root@IPv6-from-pfsense ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
6: eth6@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 02:42:31:87:31:c8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 2604:4300:a:8f:2000::2/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::42:31ff:fe87:31c8/64 scope link
       valid_lft forever preferred_lft forever
8: eth4@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether c6:0e:39:0a:37:09 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.1.101/24 brd 192.168.1.255 scope global dynamic eth4
       valid_lft 2608sec preferred_lft 2608sec
    inet6 fe80::c40e:39ff:fe0a:3709/64 scope link
       valid_lft forever preferred_lft forever
[root@IPv6-from-pfsense ~]# ping www.google.com
PING www.google.com (172.217.14.164) 56(84) bytes of data.
64 bytes from dfw28s22-in-f4.1e100.net (172.217.14.164): icmp_seq=1 ttl=51 time=41.9 ms
64 bytes from dfw28s22-in-f4.1e100.net (172.217.14.164): icmp_seq=2 ttl=51 time=41.8 ms
64 bytes from dfw28s22-in-f4.1e100.net (172.217.14.164): icmp_seq=3 ttl=51 time=42.0 ms

--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 41.826/41.948/42.044/0.090 ms
[root@IPv6-from-pfsense ~]# ping6 www.google.com
PING www.google.com(dfw28s22-in-x04.1e100.net (2607:f8b0:4000:806::2004)) 56 data bytes
64 bytes from dfw28s22-in-x04.1e100.net (2607:f8b0:4000:806::2004): icmp_seq=1 ttl=55 time=80.7 ms
64 bytes from dfw28s22-in-x04.1e100.net (2607:f8b0:4000:806::2004): icmp_seq=2 ttl=55 time=18.1 ms
64 bytes from dfw28s22-in-x04.1e100.net (2607:f8b0:4000:806::2004): icmp_seq=3 ttl=55 time=18.0 ms

--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 18.031/38.986/80.790/29.560 ms

额外说明

其实方法2和方法3原理差不多的,只不过一个是由母鸡操作系统的iptables防火墙进行数据包处理,一个是由专门的虚拟机来进行处理。方法3的好处就是虽然多用了一个IP,但避免了操作母鸡操作系统配置导致的各类问题,而且功能使用更为直观点。

若使用软路由方法,想从公网IPv4地址直接访问内网设备,可以在pfSense中通过web控制台直接进行配置,如安装squid或haproxy实现反向代理、负载均衡访问内网web服务,stunnel加密隧道访问内网特定端口、通过防火墙设定做端口映射等等。

若服务商分配的IP地址大于/64,如/60或/56,或者是单独给一个可分配的子网前缀,更是可以将这个前缀添加到pfSense,实现IPv4 IPv6均通过防火墙访问。

pfSense的中文选择在System – General Setting菜单中的Language选项中选择。

https://www.imfan.net/geek/20.html

Proxmox ve创建虚拟机、设置NAT端口转发教程

Nightmare阅读(145)

    前几天折腾2欧的时候看到后台有Proxmox,就试了下,因为母鸡cpu的限制,不能虚拟kvm的小鸡,只能折腾openvz的了。Proxmox 是一个集成了KVM、OpenVZ的开源虚拟化管理平台。基于Debian Etch构建。Proxmox有简单易用的WEB控制面板。让用户可以在网页环境中轻松的建立和管理KVM以及OpenVZ构架的虚拟机。

二、安装Proxmox

我在网上看到很多都是通过官方提供的ISO镜像或者独服自己提供模板来装的Proxmox,自己编译安装还没找到相关的教程,不过对于独服来说挂载个iso也不是啥难事。

1.进入2欧的管理界面,点击“install”进行重装。重装的时候选择“Vurtualization distributions”选项。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

2. 在上方的系统选择中点击“Proxmox”,之后在最下面点击“install proxmox”按钮。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

3. 在系统配置选项中依次输入:主机名、管理密码、用户名、用户密码。(这里建议大家用一样的密码以免弄混)

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

4. 在下一个页面中点击“delete all my disks and install the system!” 就进入正式安装环节了。系统会提示这将会花费你45-60分钟的时间。在实际安装中。大概仅需要20-30分钟即可安装完毕。我们仅需要耐心的等待。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

5. 安装完成之后,即可在后台看到Proxmox的管理地址。如下图。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

6. 访问该地址,并使用 root 用户以及管理密码登陆。记得选择中文。

需要等1个小时左右才能通过上面 的地址来访问面板,最好直接使用https://yourip:8006来访问面板。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

7. 成功登陆之后,即可看到简介又强大的proxmox面板。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

三、NAT网络配置

在正式创建虚拟机之前,我们先要对Promox的网络进行配置。由于2欧这台机器仅有一个公网IP。我们并不能为创建的虚拟机分配各自的公网IP。所以本章节的目的就是,为每一台虚拟机分配一个内网IP地址。并通过iptables 为每一个内网IP地址做相应的端口转发。

典型的SSH 22端口转发为公网IP其它端口的网络图。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

当我们通过公网IP(195.154.8.8)的1022端口访问SSH时,首先访问的是Proxmox主机的NAT网络。再通过iptables的转发,最终访问虚拟机内网IP(10.99.0.1)的22端口。从而实现将虚拟机的22端口在公网之中可以顺利访问。

1. 实现代码:

auto vmbr2
iface vmbr2 inet static
    address 10.99.0.254
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up iptables -t nat -A POSTROUTING -s \\'10.99.0.0/24\\' -o vmbr0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s \\'10.99.0.0/24\\' -o vmbr0 -j MASQUERADE
    post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 1022 -j DNAT --to 10.99.0.1:22
    post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 1022 -j DNAT --to 10.99.0.1:22

以上代码将新建一个vmbr2的虚拟网卡。并规划 10.99.0.*内网网段。将此网段的所有上下行流量通过NAT全部转发至vmbr0的网卡。最后两行,是通过iptables将静态IP (10.99.0.1)的22端口转发为公网IP的1022端口。所以如果您需要新建1个以上的虚拟机。请添加更多的转发设置,以及设定新的转发端口。

2. 配置过程

将以上代码复制,并添加到Proxmox主机的 /etc/network/interfaces 文件当中。具体过程参见接下来的步骤。

① 本机通过之前创建Proxmox主机时设置的用户名、密码登陆SSH (例:ssh izcv@195.154.8.8)

② 通过 “su root” 命令,切换为root用户登陆。切换过程需要root密码。

③ 通过vi 编辑器。编辑 vi /etc/network/interfaces  并将步骤1中的代码添加到该文件的最下方。并保存退出。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

如上代码添加完成后使用如下命令重启网络。

service networking restart

接着使用ssh编辑防火墙规则

iptables -A INPUT -p tcp --dport 1022 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1022 -j ACCEPT

使用 iptables-save 命令保存规则。

四、创建Openvz虚拟机

1. 创建虚拟机之前我们需要将系统镜像拷贝到Proxmox相应的目录当中。镜像可以从各大Linux发行版的官网进行下载。也可以通过Proxmox官网提供的镜像地址下载。

http://download.proxmox.com/appliances/system/

KVM虚拟机所需的ISO镜像对应目录:

/var/lib/vz/template/iso

OpenVZ虚拟机所需的tar.gz镜像对应目录:

/var/lib/vz/template/cache

首先在SSH 连接到Proxmox服务器上之后,通过 “su root”切换为root用户登录。本文所演示的是OpenVZ虚拟机的创建,所以利用 “cd /var/lib/vz/template/cache”命令,进入对应目录。将所需要的系统镜像利用wget命令下载到对应目录当中即可。

2. 登录到Proxmox的WEB后台。点击右上角的”创建CT” 则开始创建OpenVZ虚拟机。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

3. 根据下列图示填入虚拟机的节点名称、CPU、内存等基本信息。并选择我们之前下载到目录中的镜像模板。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

4. 在网络选项卡中,按照下图填入相关信息。网卡我们桥接之前创建的“vmbr2”,并为其指定我们预设好的固定IP。后面的DNS、确认。都保持默认,最后点击“完成”即可。

网关那里应该是10.99.0.254

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

5. 创建完成之后。在该虚拟机中,点击“启动”即可将该机成功启动。我们也可以通过右上角的“控制台”来通过浏览器的VNC来控制我们刚刚创建好的虚拟机。

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

 

五、通过SSH连接虚拟机

经过以上的步骤我们的“小鸡”,就已经成功建立。并可以通过外网IP的1022端口来连接该虚拟机。如下图

Proxmox ve创建虚拟机、设置NAT端口转发教程

Proxmox ve创建虚拟机、设置NAT端口转发教程

主要来自大表哥的Proxmox创建虚拟机、NAT端口转发教程

 

Proxmox ve创建虚拟机、设置NAT端口转发教程

单IP服务器利用ProxmoxVE建立IPv4-NAT和IPv6虚拟机

Nightmare阅读(56)

ProxmoxVE是一个集成了KVM、OpenVZ的开源虚拟化管理平台。基于Debian构建。Proxmox有简单易用的WEB控制面板。让用户可以在网页环境中轻松的建立和管理KVM以及OpenVZ构架的虚拟机。

本方法适用于online.net / oneprovider.com和hetzner.de的独立服务器,以及digitalocean.com的VPS服务器。

1:安装ProxmoxVE

ProxmoxVE有2种安装方式,一种是常见的从ISO引导安装,需要独立服务器提供IPMI远程界面及远程挂载ISO的功能,因为地域网络限制,不方便且速度较慢。另外一种方法是直接在Debian9系统中通过网络安装,通用性较强,且直接安装最新版本,推荐使用。
首先安装标准的Debian9(64位),一般系统模板中提供的Debian9即可。

为服务器IP地址添加/etc/hosts解析

ProxmoxVE需要主机名可通过/etc/hosts解析,即需要为该主机名分配一个IPv4地址,同时确保未指定主机名的IPv6地址。
例如,服务器IP地址195.154.138.88,我们为主机设定名称为pve,那么文件应该如下所示:

127.0.0.1       localhost.localdomain localhost
195.154.138.88  pve
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

输入命令hostname --ip-address,返回值应该是你的服务器IPv4地址。这一步不可跳过且必须正确配置,这是后续安装顺利进行的保证。
接着添加ProxmoxVE的软件源及密钥,并更新系统,出现选项,选择默认即可。

echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg

apt update && apt dist-upgrade -y

安装ProxmoxVE。如果你的服务器没有邮件系统,在出现的选项里面选择local only即可。

apt install proxmox-ve postfix open-iscsi -y

安装结束。

适用于online.net / oneprovider.com的ipv6安装说明

online.net提供IPv6地址是需要通过DHCP客户端获得,且官方给的教程安装,不适用于最新的ProxmoxVE环境,即使按照教程修改配置好,又会出现一个小时左右就断开连接的问题,所以我们另外使用odhcp6c来获得IPv6地址。
首先安装软件源,编辑/etc/apt/sources.list 添加以下内容:

#DHCP6 Client
deb http://httpredir.debian.org/debian experimental main

然后安装odhcp6c

apt-get update

apt-get install odhcp6c

通过ifconfig查看你的物理网卡的名称,例如eno1
通过online网页的服务器控制台得到IPv6地址信息:

IPv6:2001:123:456:789::1/64

DUID:00:03:00:01:3f:12:34:56:78:90

/etc/network/interfaces中添加以下内容

post-up odhcp6c -P 64 -c 00:03:00:01:3f:12:34:56:78:90 eno1 -d

post-up ip -6 a a 2001:123:456:789::1/64 dev eno1

重启服务器后即可获得IPv6地址。

2:配置网络

首先,配置IPv6网络,编辑/etc/modprobe.d/local.conf,修改或者添加如下内容:

options ipv6 disable=0

编辑/etc/modules,添加如下字符:

ipv6

开启IPv4,IPv6转发,编辑/etc/sysctl.conf,添加以下内容到尾部:

net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv6.conf.eno1.autoconf=0
net.ipv6.conf.eno1.accept_ra=2
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.proxy_ndp=1
net.ipv6.conf.all.proxy_ndp=1

其中红色部分修改为自己的网卡名:

net.ipv6.conf.eno1.autoconf=0
net.ipv6.conf.eno1.accept_ra=2

最后,编辑/etc/network/interfaces,内容如下:

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto eno1
iface eno1 inet static
        address  195.154.138.88
        netmask  255.255.255.0
        gateway  195.154.138.1
iface eno1 inet6 static
        address  2a01:4f8:200:1241::1
        netmask  64
        gateway  fe80::1
#物理网卡配置一般不做改动,系统模板都是配置好的。

auto vmbr0            #为虚拟机新建一个虚拟网桥
iface vmbr0 inet static
        address  10.10.10.1  #内网地址,虚拟机的网关
        netmask  255.255.255.0
        bridge-ports none
        bridge-stp off
        bridge-fd 0
iface vmbr0 inet6 static   #为虚拟机提供IPv6桥接,与主机IPv6地址相同
        address  2001:123:456:789::1
        netmask  64

#转发IPv4流量到虚拟机,使虚拟机与外网联通。
post-up   iptables -t nat -A POSTROUTING -s \'10.10.10.0/24\' -o eno1 -j MASQUERADE

post-down iptables -t nat -D POSTROUTING -s \'10.10.10.0/24\' -o eno1 -j MASQUERADE

#online服务器专用
post-up odhcp6c -P 64 -c 00:03:00:01:3f:12:34:56:78:90 eno1 -d

post-up ip -6 a a 2001:123:456:789::1/64 dev eno1

重启服务器,登录https://195.154.138.88:8006 网页端进行配置。

3:配置虚拟机

ProxmoxVE可以创建KVM和OpenVZ类型虚拟机。
OpenVZ类型虚拟机是有官方提供的系统模板,可以直接下载使用,KVM需要自己上传ISO镜像进行系统安装。

单IP服务器利用ProxmoxVE建立IPv4-NAT和IPv6虚拟机

单IP服务器利用ProxmoxVE建立IPv4-NAT和IPv6虚拟机

CPU,内存,硬盘大小等可根据个人需求选择调配。网路部分配置如下

单IP服务器利用ProxmoxVE建立IPv4-NAT和IPv6虚拟机

单IP服务器利用ProxmoxVE建立IPv4-NAT和IPv6虚拟机

OpenVZ虚拟机的网卡选择桥接在vmbr0上,IPv4地址选择内网地址段,IPv6地址选择对应物理网卡的地址段。DNS可以填写8.8.8.8或者2001:4860:4860::8888.配置完成后,启动虚拟机就可以连接到外网,但是这时只能访问IPv4地址,IPv6这个时候还是不通的,需要在主机输入以下命令开启:

ip -f inet6 neigh add proxy 2001:123:456:789::100 dev eno1

ip -f inet6 route add 2001:123:456:789::100 dev vmbr0

尝试ping google.com以及ping6 ipv6.google.com来检验网络是否通畅。
因为IPv6地址没有内网与外网区分,外网是可以直接通过IPv6地址访问虚拟机,所以也可只配置IPv6信息,不配置IPv4信息。
如果有多台虚拟机,可以为每台虚拟机配置一个IPv6地址。理论上硬件允许的话你可以开无限个IPv6虚拟机。
另一方面,IPv4是经过内网转发的,所以现在只可以访问外网,而外网却无法访问虚拟机。所以我们需要配置端口转发,将外部的访问转发到虚拟机。一般的做法是通过iptables进行转发。
例如在主机中输入命令

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10022 -j DNAT --to-destination 10.10.10.100:22

这样,访问服务器10022端口就会自动转发到虚拟机10.10.10.100的22端口上,实现了外网通过ssh登陆虚拟机的目的。但是,这样做有一个问题,ProxmoxVE自带防火墙,iptables开放22端口,相当于在防火墙上面开了一个洞,而且这个洞不受防火墙的控制,如果需要做安全防护,你还需要单独配置iptables,不是很方便。于是想到一个折中办法,用brook做端口转发,同时利用ProxmoxVE的防火墙进行统一控制。
首先获取brook,项目地址https://github.com/txthinking/brook
在主机中,输入命令,获取最新版brook

ver=$(wget -qO- "https://github.com/txthinking/brook/tags"| grep "/txthinking/brook/releases/tag/"| head -n 1| awk -F "/tag/" \'{print $2}\'| sed \'s/\">//\') && echo ${brook_ver}

wget -O /root/brook https://github.com/txthinking/brook/releases/download/$ver/brook

chmod  x /root/brook

输入命令,启动端口转发

nohup /root/brook relay -l :10022 -r 10.10.10.100:22

利用命令ps -ef|grep brook来查看转发是否生效,同时在ProxmoxVE防火墙中开放或者关闭10022端口来控制外网对虚拟机的访问。

KVM虚拟机的配置是类似的,创建时选择桥接vmbr0,不论安装的是Linux系统还是windows系统,都需要手动输入IPv4和IPv地址,同时在主机配置IPv6信息和添加端口转发。

这样,一个同时开启了NAT和IPv6的虚拟机就创建好了,但是,还有个问题,IPv6的配置和端口转发是会随着主机重启而失效,我们需要在主机上启动开机自启服务,保证每次开机的时候,虚拟机器都能正常工作。
首先,需要在debian9中开启开机自启服务,创建/etc/rc.local,填写:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

运行命令:

chmod x /etc/rc.local赋予执行权限

systemctl start rc-local启动服务

这样,我们只需要将需要执行的命令写在/etc/rc.localexit 0前面,就可以在开机后自动执行。

单IP的服务器,可以通过以上方式创建虚拟机。拥有多IP的服务器,需要把物理网卡设置成手动模式iface eno1 inet manual,然后新建一个网桥vmbr1,同时写入物理网卡信息:

单IP服务器利用ProxmoxVE建立IPv4-NAT和IPv6虚拟机

单IP服务器利用ProxmoxVE建立IPv4-NAT和IPv6虚拟机

独立IP虚拟机配置网卡时选择桥接到vmbr1,并填写独立IP地址,并安照要求绑定MAC地址。不要忘记将所有填写eno1的地方改为vmbr1。

更改ProxmoxVE的更新源

默认的更新源是订阅用户的更新源,这个是收费的,免费用户更新是失败的,我们需要更改至免费源。
编辑/etc/apt/sources.list,添加:

# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve stretch pve-no-subscription

同时在/etc/apt/sources.list.d/pve-enterprise.list中注释掉

#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise

再次更新,就不会报错。

apt-get update

apt-get dist-upgrade

解决KVM关闭失败的问题

apt-get install acpid

至此,ProxmoxVE的虚拟机环境就配置完成,你可以按照自己的需要建立各类虚拟机,开展各种项目。

 

https://www.fmqcloud.com/archives/pve.html

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

Nightmare阅读(82)

一.介绍

Hetzner一直以来是以卖性价比比较高的德国机器著名的,最近出了新的芬兰机房,推出了比以往更具有吸引力的机型,我也忍不住买了台,打算买几个IP给自己开机器玩,不过,在折腾的过程中,发现了一些坑,于是在全部解决后来分享下自己的经验。

二.问题

如果是个人开VPS我还是推荐Proxmox,因为使用起来方便,而且功能也比较全,但是,由于Hetzner的特殊,导致了一些问题的出现

  1. Hetzner在系统模板处没有Proxmox
  2. 在解决第一个问题后发现Hetnzer的Proxmox网卡配置不正确
  3. 在解决第二个问题后发现Hetzner的IP无法直接使用

另外,希望你看到这篇文章的时候还没买IP,特别是别买IP段(subnet),因为Hetzner的机房网络启用了MAC Filter,而你购买的单个IP可以设置MAC,IP段却不能设置,这个问题在国外的主机论坛上也有很多人提到,解决办法是发工单让机房帮你把IP段Route到你的主IP或者购买的单个IP上,还是比较麻烦的。

此外,由于IP广播的特点,你买的IP段里面会有两个IP无法使用(一个作为网关一个作为广播地址),所以如果你买了/29那么实际上只能有6个可用(大部分机房其实是5个可用),但是你出的钱却是8个的,所以如果你需要的IP不超过6个,建议买单个(单个IP最多只能买6个)。

三.解决

然后让我们依次解决这几个问题。

由于面板上我们找不到能够直接安装Proxmox的,所以我们需要通过Rescue系统来安装

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

激活后需要手动重启系统,然后才会进入Rescue,在这个页面激活后会给你连接密码,请务必记住,这个也是你在Rescue模式中安装系统后你新系统的默认密码

选择第二项来重启系统,等待片刻后就能用SSH连上了

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

在SSH中输入installimage会进入安装界面

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

选择Other中的第四项,第三项的Proxmox是4版本的,比较老,第四项是最新版的5

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

然后会提示不是官方支持的系统,直接回车跳过,接着会告诉你需要修改安装配置,进入一个编辑器界面,在这儿我们可以修改系统Raid配置,系统磁盘分区配置,Hostname啥的

这样代表启用Raid并配置为Raid0,我们只有两块硬盘无法配置Raid10,所以看你需要,如果只是测试可以配置为Raid0,如果要存放要紧的数据建议关闭Raid或者启用Raid1

然后修改分区配置,这样就是boot 512M 其余使用LVM,然后分配给根目录15G 缓存6G,剩下的全部分给/var/lib/vz目录,这个是Proxmox的数据目录,模板,虚拟机磁盘啥的全在这。

如果你要在宿主机上跑啥东西可以给根目录多分点,比如50G啥的

然后基本上就是等了,安装完成后可以访问Proxmox的Web界面了
地址: https://IP:8006/
用户名: root
密码: 救援模式登陆密码
需要注意的是这儿https请忽略警告,然后就能看到管理界面了,登陆可以选择中文

这个提示可以参考我之前的文章来去掉——>传送门

但是刚装完你会发现我们并不好创建虚拟机,为什么?因为没有合适的网卡来桥连,默认只有一个系统网卡,而没有br,怎么办?

由于Proxmox不是Hetzner的官方支持系统,所以我们需要对配置文件稍作修改

这部分参考了 https://forum.proxmox.com/threads/proxmox-network-config-on-hetzner.36245/

然后直接重启,当然请务必确认没写错啥,不然你可能得再次重装了

然后,如果你是用独立IP来开机器的,那么你需要去面板给你的IP申请独立的MAC地址

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

IDC零基础系列——Hetzner独服使用Proxmox创建VPS

IP边上这个图标点一下进去就能申请了,然后开机器的时候自己指定MAC这样就OK了

大部分情况下分配的IP是和你服务器自带的IP在一个段里的,如果不在一个段里可能发生创建的VPS在CentOS6下无网络的情况,可以参考这篇文章解决——>传送门

 

hetzner使用proxmox或者solusvm开Nat kvm独立ipv6桥接网卡设置

Nightmare阅读(68)

结果谷歌一系列的查找资料,最后还是到了hetzner的wiki找到了解决办法。

1.proxmox桥接网卡配置:

# /etc/network/interfaces
### Hetzner Online GmbH - installimage
# Loopback device:
auto lo
iface lo inet loopback
#
# device: eth0
auto  eth0
iface eth0 inet static
       address

netmask 255.255.255.255 pointopoint gateway # iface eth0 inet6 static address

#eg: 2001:db8::2 netmask 128 gateway fe80::1 up sysctl -p # for single IPs auto vmbr0 iface vmbr0 inet static address 10.0.1.1 netmask 255.255.255.0 bridge_ports none bridge_stp off bridge_fd 0 # iface vmbr0 inet6 static address

#eg: 2001:db8::2 netmask 64

关于Nat链接网络请使用iptables实现。

2.solusvm下网卡配置:

主网卡中默认配置请不要修改,仅需将IPV6ADDR的/64换为/128
例如:IPV6ADDR= 2001:db8::2/128
然后将桥接网卡更改为:

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.1.1
NETMASK=255.255.255.0
IPV6ADDR=2001:db8::2/64

关于联网与端口映射请使用iptables

3.关于虚拟机(kvm)的配置:

这里拿2001:db8::此ipv6做示范
Debian or Ubuntu:

iface eth0 inet6 static
       address    2001:db8::f001
       netmask   64
       gateway   2001:db8::2

Centos:

IPV6INIT=yes
IPV6ADDR=2001:db8::f001/64
IPV6_DEFAULTGW=2001:db8::


https://eqblog.com/hetzner-proxmox-solusvm-nat-kvm-ipv6.html

Hetzner大盘服务器上安装Virtualizor+PVE全自动开通VPS

Nightmare阅读(134)

很多中文教程都写相关内容了 .
但是几乎每一个教程都有一点小小的失误 ,会让萌新掉入深坑不可自拔 – -!!

有同学问: UncleCai , Virtualizor 不是直接可以装 KVM 的么 – -为毛还要整个PVE呢 ?
我 : 整个 PVE 还不够 ,我还要整个RouterOS呢 …
那么这里问题就在于 PVE的网页控制面板,修改编辑虚拟机的配置文件极为简便…用自带的就的全程敲代码咯…

本文参考文章 :
https://www.sysorchestra.com/proxmox-5-on-hetzner-root-server-with-ipv4/
https://lala.im/4821.html – 网络配置少了个 auto “eth0″(每个人网口名不同)
http://www.senra.me/create-vps-using-proxmox-in-hetzner-dedicated-server/ – 部分机型无法启动
https://eqblog.com/hetzner-proxmox-solusvm-nat-kvm-ipv6.html – Oneman IDC 可以考虑
https://www.usebsd.com/222.html – hetzner 如何进入rescue model 的教程 .

英文版那个教程几乎完美,本文当中会结合其它几遍教程,确保不踩坑.
本贴图片直接转载自以上连接 ,感谢各位先驱提供的宝贵资讯.

拿到新机第一步 : 进入 Rescue Mode

【转载】Hetzner大盘服务器上安装Virtualizor PVE全自动开通VPS

先得到Rescue系统的root密码后 hard reboot 一下 ..
SSH 连到系统里第一件事情 , 检查硬盘S.M.A.R.T , 我很荣幸第一次买HETZNER就买到个马达快挂的….
网络教程 : https://oldtang.com/62.html

之后根据提示 运行 installimage
然后安装 “DEBIAN 9.9 minimal” 系统
千万别直接装 PROXMOX , 部分使用奇葩硬件的服务器连开机都开不出,装完失联!!

【转载】Hetzner大盘服务器上安装Virtualizor PVE全自动开通VPS

进入分区阶段

这里 我们需要改的地方 ?
是否开启RAID ? 那必须的 …RAID 0 一时爽, 一直RAID 0 一直爽…直到硬盘爆炸为止.
Hostname : 改一个简短一点的 – -!!

【转载】Hetzner大盘服务器上安装Virtualizor PVE全自动开通VPS

分区表 – 把默认的全部删掉 , 最简单完美的 LVM 分区解决方案:

千万别说 我不太懂 LVM 我要用 FILES , 那你开一个2T虚拟机要 10分钟硬盘狂转 .

分完按 F10 保存 . 之后一路上都是 OK ..YES …坐等装完 ..
千万要保留刚才 Rescue 盘的root密码或者自己提前修改好…装完登录用同样的密码 ..

好了, DEBIAN 系统官方是保证能给你启出来的 , Thanks God – -..
接下来装 PROXMOX:

装完了 ,进系统了 ,第一件事情改网卡配置

这里非常关键! 请在装完第一次进系统重启前配好桥接 !! 如果不配好 , 大概率重启后就失联了 .

nano /etc/network/interfaces
以下提供 完美桥接无坑版方案:

改完网卡后别急着重启 :
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
这里顺便BBR 也可以一起开好 ,其它优化参数一起写好 .

nano /etc/profile
底下加一行
ulimit -SHn 51200

重启 : 第一种结果 失败 , 说明网卡没改好 ,自己HETZNER 呼叫 IKVM 远程操作拯救一下。
第二种结果 就是 能ping 通 , 而且能通过 https://IP:8006/ 登录测试一下。

===============接下来为原创部分 =================

利用 Virtualizor 面板全自动管理 PROXMOX .

很多人反映 ,这 PROXMOX 的 KVM 原厂模板非常蛋疼操作不便 – -..
而且一台 Hetzner 的价格还是比较贵的,很多小伙伴们想平摊一下成本…
那么方法就来了 , Virtualizor 大多数的操作方式请看官方 WIKI .
这个部分我只想说一些设置重点 .
https://www.virtualizor.com/docs/install/install-proxmox/
能到这一步了说明你已经过了半个坑了 ..

按照教程安装完成后登录 Virtualizor 面板
接下来第一步 search , slave settings

Proxmox Settings
Proxmox Server Name : 就是你刚才填的hostname
Proxmox root passwd : – -问你自己啊 ..

Network Settings 里面的网桥地址设置针对 PROXMOX 无效 这里就随便写个 vmbr0即可
正确修改方式:
nano /usr/local/virtualizor/universal.php
搜索 $globals[‘bridge’] = 这里改成 vmbr1 那么你就是开的NAT IPV4 小鸡 , vmbr0 么就是独立IP小鸡.

Auto Update Virtualizor : Never
其它配置并不重要 . Save .

第二步 把你的 LVM 分区加进去 :
侧边栏 点 Storage , List Storage 如果默认有100G的 LOCAL DISK 直接删掉 .
ADD Strorage : Server 这里iji选一下 localhost , 名字自己起 ,其它全部按图片设置.

【转载】Hetzner大盘服务器上安装Virtualizor PVE全自动开通VPS

最后点 蓝色按钮 Add Storage 之后 , 喝杯Espresso 压压惊 ,起码过10分钟才会添加完 .
登出Virtualizor 重新登陆 ,回到 List Storage 应该可以看到整个 LVM 分区全部添加完毕了.

第三步 OS templates – Template Browser
TYPE 这里选 Proxmox KVM/QEMU
然后把你 喜欢的操作系统全部下载下来 .
注意 : UBUNTU 16.04 正常 , 18.04 和 18.10 均有BUG 不要使用 !! DEBIAN 8 和 9 测试正常.
我们主要就是为了用 Virtualizor 的一键开通,一键改密重装模板

第四步 设置 IP POOLS
https://www.virtualizor.com/docs/admin/add-ip-pool/

#注意: Hetzner 的Addtional IPV4地址必须要绑定 MAC

好在 Virtualizor 可以手动指定MAC地址 ..

然后就是关于 IPV6 POOL 的设定了 .
先设定一个 POOL 把网关地址和 Netmask 填好.
这里 Gateway 填你之前vmbr0的地址
Netmask 最简单 ,什么静态路由都不用设置的方法就填 64…新手教程不折腾 …

【转载】Hetzner大盘服务器上安装Virtualizor PVE全自动开通VPS

我们生成的IP必须是符合 RFC4193 规范才行 ..
Hetzner 给的是 /64的IP 自己 还得补2段 ,不要乱写 – –

【转载】Hetzner大盘服务器上安装Virtualizor PVE全自动开通VPS

第五步 设定VPS的配置
https://www.virtualizor.com/docs/admin/adding-a-plan/
这里需要来点推荐配置 :
CPU Unit : PROXMOX KVM 默认基数是 1024
Virtual Network Interface Type : VirtIO 或者 vmxnet3 都OK
CPU model : Host model 或者选你的 CPU型号
IP POOLS 别忘记选
Disk Caching : Writeback

第六步 你可以 ADDING A USER 或者 整合你的WHMCS成为ONEMAN IDC – -!
https://www.virtualizor.com/docs/admin/add-user/

第七步 新建一台 VPS
https://www.virtualizor.com/docs/admin/creating-a-vps/

好了 到这里 全自动开通部分已经完成了 . 于是教程部分到此结束 .
Virtualizor 面板收费很便宜 ,你可以支持一下正版 ..也可以自己GOOGLE 一下开心版…

===============拓展部份===================

用 PROXMOX 导入 RouterOS 管理NAT 小鸡 ..
母鸡上开 2个 bridge . vmbr0 接公网 , vmbr1 接内网 , 所有 NAT小鸡的tap连vmbr1. 然后 ROS 手动修改PVE配置文件 同时连vmbr0 和 vmbr1 . 同一台机器 ,把小鸡的数据往 ROS 里兜一圈 .. 即可做到轻松转发和 神级QOS – -..
这不属于 Noob’s Guide , 所以呢 …不会有教程,只不过提供一下 IDEA …

开一个 4T的小鸡只识别出 2T空间怎么办 ?
这是因为 Virtualizor 所带的模板全部用的 EXT3 的分区,最大 2T – –
要开 4T 小鸡很简单 , 第一个小鸡盘先设个 1950G …
开好了之后 到控制面板里 填写 第二个盘即可 ..
LINUX 如何挂在硬盘 请自行 GOOGLE IT .

Drcai
2019/5/19

 

 

http://t.cn/E90jQW2

https://www.zrj96.com/post-1199.html

用Proxmox搞定gpu穿透

Nightmare阅读(77)

在用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-grub

Generating grub configuration file …

Found linux image:   /boot/vmlinuz-4.15.17-1-pve

Found initrd image:   /boot/initrd.img-4.15.17-1-pve

Found memtest86 image:   /boot/memtest86 .bin

Found memtest86 multiboot image:   /boot/memtest86 _multiboot.bin

Adding boot menu entry for EFI firmware   configuration

done

为检验其效果,用一下指令验证其有效性。

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,加入如下的行(默认为空):

vfio

vfio_iommu_type1

vfio_pci

vfio_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:00

01:00.0 0300: 1002:67b0 (rev 80)

01:00.1 0403: 1002:aac8

root@pve55:~#echo “options vfio-pci ids=10de:1381,10de:0fbc” > /etc/modprobe.d/vfio.conf

l  驱动黑名单

echo “blacklist radeon” >> /etc/modprobe.d/blacklist.confecho “blacklist nouveau” >> /etc/modprobe.d/blacklist.confecho “blacklist nvidia” >> /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 8574028

drwxr-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: ovmf

bootdisk: scsi0

cores: 4

efidisk0:   local-lvm:vm-100-disk-2,size=128K

ide0:   local:iso/virtio-win-0.1.141.iso,media=cdrom,size=309208K

ide2:   local:iso/cn_windows_10_education_x64_dvd_6847843.iso,media=cdrom

memory: 8196

name: s50

net0:   virtio=4E:62:86:E8:C4:A0,bridge=vmbr0

numa: 0

ostype: win10

scsi0:   local-lvm:vm-100-disk-1,cache=writethrough,size=100G

scsihw: virtio-scsi-pci

smbios1:   uuid=de02509a-298b-4150-b225-4be73f471210

sockets: 1

vga: qxl

还有几个项,不能从浏览器添加进来,需要手工编辑并加入,其内容如下(加在100.conf文件的末尾):

machine: q35hostpci0: 01:00,pcie=1,x-vga=onargs: -device intel-hda,id=sound5,bus=pci.0,addr=0x18hostpci0: 01:00,pcie=1,x-vga=onusb1:spice

usb2: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显卡),暂时无法继续进行试验,希望有条件的老司机不妨试试,并把实验结果告知大家。

 

https://blog.51cto.com/sery/2161368?cid=716548

Find More Interest

Contactsthrough