在KVM/Hyper-V/VMware的VPS里安装Proxmox VE

因为大部分VPS都不支持自定义ISO,所以只能通过第二个方法:在Debian 9里安装Proxmox VE。

首先你得有一台运行着Debian 9的VPS

首先得编辑/etc/hosts,VPS不能有IPv6地址,假设你的VPS的外网IP是192.168.1.187,主机名是debian.bbtcat.cc,那么/etc/hosts文件应该长这样:

127.0.0.1 localhost.localdomain localhost
192.168.1.187 debian.bbtcat.cc debian pvelocalhost

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

接下来添加Proxmox VE源:

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

接着安装Proxmox VE包:

apt install proxmox-ve postfix open-iscsi

可选:移除os-prober

apt remove os-prober

重启,Proxmox VE安装完成,因为我们是小鸡生小鸡所以所有小鸡只能通过NAT共享一个IP,Proxmox VE的NAT设置如下,编辑/etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
#real IP adress
iface eth0 inet static
address 192.168.1.187
netmask 255.255.255.0
gateway 192.168.1.1

auto vmbr0
#private sub network
iface vmbr0 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 eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE

其中eth0可能是其他名称,模式可以是静态地址或DHCP,下面的10.10.10.1是内网,可以改成你想要的网段,下面的防火墙部分也应该一起改。

端口转发:例如把外网的10022端口转发到内网的IP为10.10.10.100的小鸡的22端口应执行以下命令:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10022 -j DNAT \
--to 10.10.10.100:22

其他端口以此类推

其他:Openvz模板储存在/var/lib/vz/template/cache

KVM的ISO文件储存在/var/lib/vz/template/iso

当然,模板要去openvz官网下载,iso要你自己上传

控制面板在http://IP:8006

“创建VM”创建的是KVM,”创建CT”创建的是openvz

安装libsodium

Centos/RHEL

yum -y groupinstall "Development Tools"
wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
tar xf LATEST.tar.gz && cd libsodium-stable
./configure && make -j2 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

Ubuntu/Debian

apt-get install build-essential
wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
tar xf LATEST.tar.gz && cd libsodium-stable
./configure && make -j2 && make install
ldconfig

 

Windows 语言包安装器

复制粘贴到txt文件然后另存为.bat文件然后双击运行按提示操作即可

@echo off
color f0
title xiaox Winodws 语言包安装器
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "% CD %"
CD /D "%~dp0"
color f0
title xiaox Winodws 语言包安装器
echo 请把语言包(.cab)拖进来, 然后按回车键
set /p l=
cls
DISM /Online /Add-Package /PackagePath:%l%

给远程桌面指定SSL证书

首先将证书导入到计算机账户中

然后打开注册表管理器定位到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

创建一个名为

SSLCertificateSHA1Hash

的二进制值

并将刚才导入的证书的指纹填进去即可

 

怎么将计算机添加到TrustedHosts列表

注意: 这些设置会影响这台计算机上的所有用户

以下操作均在PowerShell中进行, 请务必以管理员身份运行PowerShell

如何查看TrustedHosts列表

get-item wsman:\localhost\Client\TrustedHosts

将所有计算机都添加到TrustedHosts列表

set-item wsman:\localhost\Client\TrustedHosts -value *

将一个域里的所有计算机都添加到TrustedHosts列表

举例: 把bbtcat.net里的所有计算机都添加到TrustedHosts列表

set-item wsman:\localhost\Client\TrustedHosts -value *.bbtcat.net

将指定计算机名的计算机添加到TrustedHosts列表

set-item wsman:\localhost\Client\TrustedHosts -value <ComputerName>

对于工作组里的计算机只需输入计算机名即可, 例如把SERVER01添加到TrustedHosts列表:

set-item wsman:\localhost\Client\TrustedHosts -value server01

对于域里的计算机需要输入完整的FQDN, 例如把bbtcat.net里的SERVER02添加到TrustedHosts列表:

set-item wsman:\localhost\Client\TrustedHosts -value server02.bbtcat.net

将一台计算机添加到已经有内容的TrustedHosts列表

首先需要将当前的TrustedHosts列表保存为变量

$curValue = (get-item wsman:\localhost\Client\TrustedHosts).value

接下来假设我们要将server03.bbtcat.net添加到TrustedHosts列表

set-item wsman:\localhost\Client\TrustedHosts -value "$curValue, server03.bbtcat.net"

将一个IP地址添加到TrustedHosts列表

set-item wsman:\localhost\Client\TrustedHosts -value 192.168.1.2

当添加一个IPv6地址的时候, 要把IPv6地址前后加上中括号

set-item wsman:\localhost\Client\TrustedHosts -value 192.168.1.2, [0:0:0:0:0:0:0:0]

将一个计算机名或IP地址添加到远程计算机的TrustedHosts列表

例如将server04添加到server05的TrustedHosts列表

首先我们需要先连接server05

connect-wsman -computername server05

接着和前面差不多, 只是把localhost换成server05

set-item wsman:\server05\Client\TrustedHosts -value server04

让BAT脚本请求管理员权限

在BAT文件前面加上

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "% CD %"
CD /D "%~dp0"

即可

Windows 10连接L2TP/IPSec VPN教程

因为微软把WIN10改的不成样子…L2TP VPN的设置方法和WIN7有很大出入…故做此教程…

首先对着网络图标单机左键打开菜单,点击网络设置

1

接着在弹出的设置窗口里选择左边的VPN, 然后点击添加VPN连接

2

VPN提供商选择Windows(内置), 连接名称随你喜好, 服务器名称或地址填VPN供应商给你的服务器地址, VPN类型这里我们选择使用预共享密钥的L2TP/IPsec为例,下面的预共享密钥填VPN供应商给的密码,然后点保存

5

VPN的设置这样基本上就弄好的,但是因为WIN10,我们还需要做一些设置…

6

在网络图标上点右键打开网络和共享中心

7

点击左上角的更改适配器设置

8

在刚才创建的连接上点右键打开属性

10

切换到安全选项卡,数据加密选择需要加密,身份验证选择Microsoft CHAP Version 2,然后按确定,理论上这样子设置就可以了,如果你以前使用过一些游戏加速器,比如奇游,迅达,极讯等,并且连接L2TP VPN的时候报789错误的话那么需要对注册表做一些还原…

11

打开注册表定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters, 将ProhibitIpSec的数值改为0, 重启计算机之后VPN应该能够顺利连上

这里解释下为什么要改这个注册表, 说人话是:微软出品, 必反linux,下面那段可以跳过不看

因为由linux系统搭建的L2TP服务器端一半都需要把这个值改成1才能连上,但是这个值的意义是,0指L2TP需要加密,1指L2TP不需要加密,而Windows服务器端则是需要加密,不加密连不上,linux服务器端是不能加密,加密了连不上,所以才会百度到一大堆教程让你把0改成1…这个数值是0还是1还是得取决于服务器端是Windows还是linux…

所以如果服务器端是Windows的话身份验证要选择Microsoft CHAP Version 2,并且把注册表改成0,如果服务器端是linux的话身份验证要选择CHAP,并且把注册表改成1

PS:如果不加密的话你的L2TP和PPTP拨号会被某种东西拦截,然后他告诉你是服务器端断开了你的连接而服务器端压根就没收到你的拨号请求…

ubuntu 更换内核教程

1: 安装你想要的内核

sudo apt-get install linux-image-extra-x.xx.x-xx-generic

2: 查看当前安装的内核

dpkg -l|grep linux-image

3: 卸载不想要的内核

sudo apt-get purge linux-image-x.xx.x-xx-generic linux-image-extra-x.xx.x-xx-generic

4: 更新grub系统引导文件

sudo update-grub

5: 重启

sudo reboot

至此完成,重启之后可以使用

uname -r

查看当前内核

在 UEFI 系统下使 Windows 安装程序自动删除所有分区并创建 GPT 硬盘分区

原文地址: https://technet.microsoft.com/zh-cn/library/hh825702.aspx
请勿直接复制使用原文中微软提供的xml模板, 那个模板有问题, 安装过程中会报错, 正确xml模板的如下:

            <DiskConfiguration>
                <WillShowUI>OnError</WillShowUI>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Size>300</Size>
                            <Type>Primary</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>2</Order>
                            <Size>100</Size>
                            <Type>EFI</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>3</Order>
                            <Size>16</Size>
                            <Type>MSR</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>4</Order>
                            <Type>Primary</Type>
                            <Extend>true</Extend>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                            <Label>WINRE</Label>
                            <Format>NTFS</Format>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                            <Label>SYSTEM</Label>
                            <Format>FAT32</Format>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>3</Order>
                            <PartitionID>3</PartitionID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>4</Order>
                            <PartitionID>4</PartitionID>
                            <Label>Windows</Label>
                            <Letter>C</Letter>
                            <Format>NTFS</Format>
                        </ModifyPartition>
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
            </DiskConfiguration>

(可根据需要修改分区大小或增加分区数量,最后一个分区必须按照模板里最后一个分区的格式设置)

顺便补充一个我用在hyper-v模板的配置,只有一个100M的EFI分区其他空间全部分给windows:

            <DiskConfiguration>
                <WillShowUI>OnError</WillShowUI>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Size>100</Size>
                            <Type>EFI</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>2</Order>
                            <Type>Primary</Type>
                            <Extend>true</Extend>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                            <Label>SYSTEM</Label>
                            <Format>FAT32</Format>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                            <Label>Windows</Label>
                            <Letter>C</Letter>
                            <Format>NTFS</Format>
                        </ModifyPartition>
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
            </DiskConfiguration>