分类目录归档:技术笔记

CentOS 7部署V2Ray服务

由于Shadowsocks在国内被大范围识别封锁,所以转向V2Ray。虽然V2Ray作为一个平台,比起Shadowsocks复杂许多,但是安装部署其实已经集成的非常好。以下是部署步骤:

1、安装V2Ray服务端

bash <(curl -L -s https://install.direct/go.sh)

执行完后得到以下内容

Installing V2Ray v4.20.0 on x86_64
Downloading V2Ray: https://github.com/v2ray/v2ray-core/releases/download/v4.20.0/v2ray-linux-64.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   608    0   608    0     0   1647      0 --:--:-- --:--:-- --:--:--  1652
100 11.3M  100 11.3M    0     0  7368k      0  0:00:01  0:00:01 --:--:-- 11.5M
Updating software repo
Installing unzip
warning: /var/cache/yum/x86_64/7/base/packages/unzip-6.0-20.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for unzip-6.0-20.el7.x86_64.rpm is not installed
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Extracting V2Ray package to /tmp/v2ray.
Archive:  /tmp/v2ray/v2ray.zip
  inflating: /tmp/v2ray/config.json  
   creating: /tmp/v2ray/doc/
  inflating: /tmp/v2ray/doc/readme.md  
  inflating: /tmp/v2ray/geoip.dat    
  inflating: /tmp/v2ray/geosite.dat  
   creating: /tmp/v2ray/systemd/
  inflating: /tmp/v2ray/systemd/v2ray.service  
   creating: /tmp/v2ray/systemv/
  inflating: /tmp/v2ray/systemv/v2ray  
  inflating: /tmp/v2ray/v2ctl        
 extracting: /tmp/v2ray/v2ctl.sig    
  inflating: /tmp/v2ray/v2ray        
 extracting: /tmp/v2ray/v2ray.sig    
  inflating: /tmp/v2ray/vpoint_socks_vmess.json  
  inflating: /tmp/v2ray/vpoint_vmess_freedom.json  
PORT:38731
UUID:c877a768-946e-4bea-93ff-d44a5a5b3915
Created symlink from /etc/systemd/system/multi-user.target.wants/v2ray.service to /etc/systemd/system/v2ray.service.
V2Ray v4.20.0 is installed.

以上信息中,有两项需要记下:UUIDPORT

启动V2Ray服务

systemctl start v2ray
systemctl enable v2ray

由于需要端口通讯,建议将端口加入防火墙白名单。这里只是示范,所以关闭防火墙

iptables -F
systemctl stop firewalld

2、安装Windows客户端

Windows系统客户端可以使用V2RayN,首先去Github上下载最新的release:

将压缩包解压,执行v2rayN.exe即可启动客户端。

启动之后,选择服务器->添加[VMess]服务器,按之前在服务器上得到的UUIDPORT填写

参考:

Project V Official Site: V2Ray

CentOS 7部署Shadowsocks服务

注:这篇文章写成的时候,Shadowsocks服务在中国已经被大范围识别封锁,无法使用。

首先,在CentOS上启用BBR算法,具体见此文:《Linode CentOS 7应用BBR算法》

下面,安装Shadowsocks服务

1、更新源和依赖

yum update -y
yum install epel-release -y
yum install python-pip m2crypto -y

2、pip安装Shadowsocks

pip install --upgrade pip
pip install shadowsocks

3、编辑/etc/shadowsocks.json这个文件

{
    "server": "0.0.0.0",
    "port_password": {
        "YOUR_PORT": "YOUR_PASSWORD"    //这里定义端口和密码,可以设置多个端口
    },
    "timeout": 300,
    "method": "aes-256-cfb"
}

4、启动Shadowsocks服务

ssserver -c /etc/shadowsocks.json -d start

5、允许Shadowsocks服务器通过防火墙,这里简单关闭防火墙作为示范

iptables -F
systemctl stop firewalld

6、在客户端使用服务器IP、端口、密码登录

CentOS 7安装PHP 7

由于WordPress新版已经不支持PHP 5.2,必须升级一下,索性升级到现在最新的7.3。

1、卸载旧版本的PHP

yum remove php*

2、安装epel和yum-utils

yum install epel-release yum-utils

3、安装remirepo源

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

4、启用PHP 7.3源

yum-config-manager --enable remi-php73

5、安装上PHP和一些常用的组件

yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql

6、检查版本

php -v

Crayon Syntax Highlighter代码高亮的替代品:Enlighter

之前一直使用Crayon Syntax Highlighter作为代码高亮插件,但是在最新版的Wordpress 5.x中,由于兼容性问题已经无法使用。在网上搜索,找到了替代品:Enlighter。

替换方法:

停用旧的Crayon Syntax Highlighter,安装启用Enlighter。修改Enlighter设置中的以下内容:

  • Enlighter -> 选项 -> 高级选项 -> 阻止CSS选择器 设为
pre.EnlighterJSRAW, pre[class="lang:"][class~="decode:true"]
  • Enlighter -> 选项 -> 高级选项 -> 内嵌CSS选择器 设为
code.EnlighterJSRAW, span[class="lang:"][class~="decode:true"][class~="crayon-inline"]
  • Enlighter -> 测试版 -> 测试版特性 -> 启用DRI 设为 不勾选

参考:

KMS客户端安装密钥

Windows Server 半年频道版本

Windows Server 版本 1809

操作系统版本 KMS 客户端安装密钥
Windows Server Datacenter 6NMRW-2C8FM-D24W7-TQWMY-CWH2D
Windows Server Standard N2KJX-J94YW-TQVFB-DG9YT-724CC

Windows Server 版本 1803

操作系统版本 KMS 客户端安装密钥
Windows Server Datacenter 2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG
Windows Server Standard PTXN8-JFHJM-4WC78-MPCBR-9W4KR

Windows Server 版本 1709

操作系统版本 KMS 客户端安装密钥
Windows Server Datacenter 6Y6KB-N82V8-D8CQV-23MJW-BWTG6
Windows Server Standard DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4

Windows Server LTSC/LTSB 版本

Windows Server 2019

操作系统版本 KMS 客户端安装密钥
Windows Server 2019 Datacenter WMDGN-G9PQG-XVVXX-R3X43-63DFG
Windows Server 2019 Standard N69G4-B89J2-4G8F4-WWYCC-J464C
Windows Server 2019 Essentials WVDHN-86M7X-466 P 6-VHXV7-YY726

Windows Server 2016

操作系统版本 KMS 客户端安装密钥
Windows Server 2016 Datacenter CB7KF-BWN84-R7R2Y-793K2-8XDDG
Windows Server 2016 Standard WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 Essentials JCKRF-N37P4-C2D82-9YXRT-4M63B

Windows 10 中,所有受支持的半年频道版本

操作系统版本 KMS 客户端安装密钥
Windows 10 专业版 W269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 10 专业版 N MH37W-N47XK-V7XM9-C7227-GCQG9
Windows 10 专业工作站 NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J
Windows 10 专业工作站 N 9FNHH-K3HBT-3W4TD-6383H-6XYWF
Windows 10 专业教育版 6TP4R-GNPTD-KYYHQ-7B7DP-J447Y
Windows 10 专业教育版 N YVWGF-BXNMC-HTQYQ-CPQ99-66QFC
Windows 10 教育版 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows 10 教育版 N 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows 10 企业版 NPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 10 企业版 N DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows 10 企业版 G YYVX9-NTFWV-6MDM3-9PT4T-4M68B
Windows 10 企业版 G N 44RPN-FTY23-9VTTB-MP9BX-T84FV

Windows 10 LTSC/LTSB 版本

Windows 10 LTSC 2019

操作系统版本 KMS 客户端安装密钥
Windows 10 企业版 LTSC 2019 M7XTQ-FN8P6-TTKYV-9D4CC-J462D
Windows 10 企业版 N LTSC 2019 2NFX-8DJQP-P6BBQ-THF9C-7CG2H

Windows 10 LTSB 2016

操作系统版本 KMS 客户端安装密钥
Windows 10 企业版 LTSB 2016 DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
Windows 10 企业版 N LTSB 2016 FFDN-GRT3P-VKWWX-X7T3R-8B639

Windows 10 LTSB 2015

操作系统版本 KMS 客户端安装密钥
Windows 10 企业版 2015 长期服务 WNMTR-4C88C-JK8YV-HQ7T2-76DF9
Windows 10 企业版 2015 长期服务 N 2F77B-TNFGY-69QQF-B8YKP-D69TJ

Windows Server 早期版本

Windows Server 2012 R2

操作系统版本 KMS 客户端安装密钥
Windows Server 2012 R2 Server Standard D2N9P-3P6X9-2R39C-7RTCD-MDVJX
WindowsServer 2012 R2 Datacenter W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
WindowsServer 2012 R2 Essentials KNC87-3J2TX-XB4WP-VCPJV-M4FWM

Windows Server 2012

操作系统版本 KMS 客户端安装密钥
Windows Server 2012 BN3D2-R7TKB-3YPBD-8DRP2-27GG4
Windows Server 2012 N 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
Windows Server 2012 单语言版 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
Windows Server 2012 特定国家/地区版 4K36P-JN4VD-GDC6V-KDT89-DYFKP
Windows Server 2012 Server Standard XC9B7-NBPP2-83J2H-RHMBY-92BT4
Windows Server 2012 MultiPoint Standard HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
Windows Server 2012 MultiPoint Premium XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
Windows Server 2012 Datacenter 48HP8-DN98B-MYWDG-T2DCC-8W83P

Windows Server 2008 R2

操作系统版本 KMS 客户端安装密钥
Windows Server 2008 R2 Web 版 6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Server 2008 R2 HPC 版 TT8MH-CG224-D3D7Q-498W2-9QCTX
WindowsServer 2008 R2 Standard YC6KT-GKW9T-YTKYR-T4X34-R7VHC
WindowsServer 2008 R2 企业版 489J6-VHDMP-X63PK-3K798-CPX3Y
WindowsServer 2008 R2 Datacenter 74YFP-3QFB3-KQT8W-PMXWJ-7M648
面向基于 Itanium 系统的 Windows Server 2008 R2 GT63C-RJFQ3-4GMB6-BRFB9-CB83V

Windows Server 2008

操作系统版本 KMS 客户端安装密钥
Windows Web Server 2008 WYR28-R7TFJ-3X2YQ-YCY4H-M249D
Windows Server 2008 Standard TM24T-X9RMF-VWXK6-X8JC9-BFGM2
不带 Hyper-V 的 Windows Server 2008 Standard W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
Windows Server 2008 企业版 YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
不带 Hyper-V 的 Windows Server 2008 企业版 39BXF-X8Q23-P2WWT-38T2F-G3FPG
Windows Server 2008 HPC RCTX3-KWVHP-BR6TB-RB6DM-6X7HP
Windows Server 2008 Datacenter 7M67G-PC374-GR742-YH8V4-TCBY3
不带 Hyper-V 的 Windows Server 2008 Datacenter 22XQ2-VRXRG-P8D42-K34TD-G3QQC
面向基于 Itanium 系统的 Windows Server 2008 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK

早期版本的 Windows

Windows 8.1

操作系统版本 KMS 客户端安装密钥
Windows 8.1 专业版 GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
Windows 8.1 专业版 N HMCNV-VVBFX-7HMBH-CTY9B-B4FXY
Windows 8.1 企业版 MHF9N-XY6XB-WVXMC-BTDCT-MKKG7
Windows 8.1 企业版 N TT4HM-HN7YT-62K67-RGRQJ-JFFXW

Windows 8

操作系统版本 KMS 客户端安装密钥
Windows 8 专业版 NG4HW-VH26C-733KW-K6F98-J8CK4
Windows 8 专业版 N XCVCF-2NXM9-723PB-MHCB7-2RYQQ
Windows 8 企业版 32JNW-9KQ84-P47T8-D8GGY-CWCK7
Windows 8 企业版 N JMNMF-RHW7P-DMY6X-RF3DR-X2BQT

Windows 7

操作系统版本 KMS 客户端安装密钥
Windows 7 专业版 FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7 专业版 N MRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 专业版 E W82YF-2Q76Y-63HXB-FGJG9-GF7QX
Windows7 企业版 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7 企业版 N YDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7 企业版 E C29WB-22CC8-VJ326-GHFJW-H9DH4

使用vlmcsd部署kms服务

在服务器部署vlmcsd服务

yum install gcc -y
wget https://github.com/Wind4/vlmcsd/archive/svn1112.tar.gz
tar -xvzf svn1112.tar.gz
cd vlmcsd-svn1112/
make
cd bin/
./vlmcsd -l /var/log/vlmcsd.log

激活Windows Server 2019 Datacenter

@CMD

slmgr /upk
slmgr /ipk WMDGN-G9PQG-XVVXX-R3X43-63DFG
slmgr /skms <KMS_Server_IP>
slmgr /ato
slmgr /dlv

 

Windows Server 2019安装Intel I219-V I211网卡驱动

由于Windows系统原因,一般桌面主板自带的Intel网卡(典型的包括I211、I211-AT、I217-V、I218-V、I219-V)等,都无法在Windows Server系统上找到对应的驱动。但是,这些网卡几乎都有对应的服务器主板版本(例如I219-LM)。这些网卡其实并没有本质上的差别,只是在驱动层面,利用不同的驱动签名使得显卡不能通用。本文将详细说明如何在Windows Server系统上安装这些驱动。

1、驱动下载

首先,在Intel官网下载网卡驱动程序包,由于Windows Server 2019刚发布,所以目前没有2019的专门页面,但可以通用Windows Server 2016版本(下载页面)。下载完成后,得到一个PROWinx64.exe的自解压安装包,使用7zip或其他解压软件解压到任意文件夹。

2、修改驱动程序文件(以I211、I219-V为例)

进入第一步解压后的文件夹,依次进入PRO1000 -> Winx64 -> NDIS64文件夹。这个文件夹中,有举例的I211、I219-V两张网卡的驱动安装文件。

接下来分别配置这两个驱动安装文件

  • I219-V

用记事本打开e1d64x64.inf这个文件,搜索I219-V找到对应的ID

用这个ID搜索到所在的键(就在同一个文件的上方)[Intel.NTamd64.6.3.1]。找到与这个ID相关的几行(可能是2行也可能是3行)

复制这两行,在刚才的[Intel.NTamd64.6.3.1]这个键下面,有另外一个[Intel.NTamd64.6.3]键。把刚才复制的几行粘贴到这个键的最后。保存,关闭。

  • I211

和I219-V差不多的步骤,不过配置的文件是同文件夹下的另一个文件,e1r64x64.inf。同样通过搜索找到I211所对应的ID

用这个ID搜索到对应的键[Intel.NTamd64.6.3.1]和配置行

将此行复制到后面的另一个键[Intel.NTamd64.6.3]中。保存,关闭。

3、开启测试模式

因为我们修改了签名配置文件,所以如果要安装这些驱动,我们需要开启测试模式,允许未经过签名的驱动。

在CMD(管理员)中执行以下两条命令

bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON

执行完后,需要重启电脑,以进入测试模式。

4、安装驱动

这里以I211网卡驱动安装为例,I219-V安装同理,只是在后续步骤选择驱动程序文件时不同而已。

在设备管理器中,找到那个没有驱动的网络控制器,右键选择“更新驱动程序”

选择“浏览我的计算机以查找驱动程序软件”

选择“让我从计算机上的可用驱动程序列表中选取”

下滑下拉列表,找到并选择“网络设配器”,点击下一步

这里不做选择,点击右下的“从磁盘安装”

在弹出窗口中,点击右下角的浏览,选择我们刚才修改的I211所在的配置文件,即e1r64x64.inf,然后点击确认(这里如果是安装I219-V驱动的话,选择e1d64x64.inf这个文件,其他与I211步骤相同)。

上一步点击完确认后,由于我们之前修改好了配置文件,所以就可以在后续窗口里看见I211驱动了,点击下一步。

这里会弹出一个警告,因为我们对配置文件进行了修改,签名肯定是无法通过验证的,所以这里会有这个警告信息。当然点击“始终安装此驱动程序软件”

安装成功提示

安装完成后,在设备管理器中,也能看见这张网卡信息了。

5、关闭测试模式

安装完成后,关闭测试模式。在CMD中执行以下命令

bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING OFF

重启电脑,完成。

6、附加:开启WLAN

默认安装时无线LAN服务是关闭的,如果需要开启,只需要在“添加角色和功能”中,选择开启“无线LAN服务”即可。

使用DNSPOD API完成DDNS

原理是调用DNSPOD API接口,从本地发送Post请求更新DNSPOD上的域名解析记录,将记录值修改为本地当前IP。这样就可以通过DNSPOD的域名记录访问到路由,即完成动态域名解析。由于请求限制为每小时5个,建议创建cron job每15分钟运行一次即可。以下是官方文档:

接口地址:
HTTP请求方式:
  • POST
请求参数:
  • 公共参数
  • domain_id 或 domain, 分别对应域名ID和域名, 提交其中一个即可
  • record_id 记录ID,必选
  • sub_domain 主机记录,如 www
  • record_line 记录线路,通过API记录线路获得,中文,比如:默认,必选
  • record_line_id 线路的ID,通过API记录线路获得,英文字符串,比如:‘10=1’ 【record_line 和 record_line_id 二者传其一即可,系统优先取 record_line_id】
  • value IP地址,例如:6.6.6.6,可选
响应代码:
  • 共通返回
  • -15 域名已被封禁
  • -7 企业账号的域名需要升级才能设置
  • -8 代理名下用户的域名需要升级才能设置
  • 6 域名ID错误
  • 7 不是域名所有者或没有权限
  • 8 记录ID错误
  • 21 域名被锁定
  • 22 子域名不合法
  • 23 子域名级数超出限制,比如免费套餐域名不支持三级域名
  • 24 泛解析子域名错误,比如免费套餐载名不支持 a*
  • 25 轮循记录数量超出限制,比如免费套餐域名只能存在两条轮循记录
  • 26 记录线路错误,比如免费套餐域名不支持移动、国外
注意事项:
  • 如果1小时之内,提交了超过5次没有任何变动的记录修改请求,该记录会被系统锁定1小时,不允许再次修改,所以在开发和测试的过程中,请自行处理IP变动,仅在本地IP发生变动的情况下才调用本接口。
  • 如何理解没有任何变动的记录修改请求?比如原记录值已经是 1.1.1.1,新的请求还要求修改为 1.1.1.1。

示例:

curl -X POST https://dnsapi.cn/Record.Ddns -d 'login_token=LOGIN_TOKEN&format=json&domain_id=2317346&record_id=16894439&record_line_id=10%3D0&sub_domain=www'

返回参考:

  • JSON:

    {
        "status": {
            "code":"1",
            "message":"Action completed successful",
            "created_at":"2015-01-18 17:23:58"
        },
        "record": {
            "id":16909160,
            "name":"@",
            "value":"111.111.111.111"
        }
    }
    
  • 字段说明:
    • id: 记录ID, 即为 record_id
    • name: 子域名
    • value”: 记录值
注意:
record_line_id 形如 “10=3”,其中可能会包含等号,即 “=”,如果是通过类似 URL 传递参数,需要将 ‘=’ 转义成 ‘%3D’

参考:DNSPOD API文档