作者归档:Henry

OpenWrt使用阿里云DDNS服务动态域名解析

个人环境:

主路由:192.168.10.1 (主路由pppoe拨号)
OpenWrt旁路由:192.168.10.2  (网关设为主路由192.168.10.1)

现在需要通过OpenWrt上的DDNS服务进行动态域名解析,由于是旁路由,所以无法直接从WAN口获得公网IP。首先需要安装Luci-app-ddns这个插件,进入插件页面。

主机名填写顶级域名,域名填写需要DDNS解析到的二级域名,如果想直接使用顶级域名就写成“@zivers.com”这种形式。用户名和密码填写从阿里云获得的AccessKey密钥对

切换到高级设置标签,由于OpenWrt不是用作主路由拨号,无法直接通过网口获取到外网IP,所以需要选择用URL方式获取。默认提供了一个监测URL的网址,可以直接使用,如果不用这个,也可以使用其他的,比如:http://ddns.oray.com/checkip 或者 http://www.3322.net/dyndns/getip 

最后,如果开启了Shadowsocks服务的话,记得把URL检测的网站加入到白名单中,否则检测到的外网IP将会是代理服务器的地址

 

Hyper-V部署OpenWrt旁路网关(编译Lean版)

准备工作

1、已经编译好的OpenWrt镜像文件。由于是用于Hyper-V部署,所以编译时选择保存为.vhdx后缀的镜像文件,具体如何编译,参见源码地址:https://github.com/coolsnowwolf/lede。镜像文件名类似为: openwrt-x86-64-combined-squashfs.vhdx

2、一个可用的网口。我的主板上有两个千兆网口,一个是Intel I210,另一个是Intel I219-LM。I210我用来做为Hyper-V服务器的网络端口,而I219-LM则是我准备给OpenWrt专用的。

图片中,I210和I210创建的vEthernet是用与Hyper-V的虚拟交换机,I219-LM目前空闲。其他两个X540为万兆网口,与本文无关。

创建虚拟交换机

在Hyper-V管理器中,选择右侧的虚拟交换机管理器,在弹出的窗口中,新建外部虚拟交换机

选择之前说的用于OpenWrt的网口,这里用的是I219-LM,并取消下面的允许管理操作系统共享此网络适配器选项。取消此选项后,在系统的网络管理页面就不会看到I219-LM的vEthernet,只是单纯显示I219-LM。

由于我机器上的网口有两个,所以可以给OpenWrt专用一个网口,如果主板上只有一个网口,那配置起来会麻烦些,需要让Hyper-V和OpenWrt共用这一个网口,步骤较为复杂,这里不赘述。

创建OpenWrt虚拟机

创建虚拟机的步骤和一般创建步骤相同,这里只说明几个地方

1、创建时选择第一代虚拟机,兼容性和稳定性比较好

2、配置网络时,选择刚才创建的OpenWrt交换机

3、硬盘选择之前准备好的.vhdx文件

完成后点击完成,先不要启动虚拟机。在Hyper-V管理器界面,可以修改虚拟机处理器数量,我这里改成了两个,增加性能。另外,需要在网络适配器的高级选项中,勾选开启MAC地址欺骗选项。

保存后,启动虚拟机。

OpenWrt配置

进入虚拟机,默认是root用户登录,且无密码,所以可以直接查看和修改系统文件。主要修改的文件是etc/config/network这个网络配置文件

默认的配置OpenWrt使用的IP地址为192.168.1.1,那么就会有以下几个情况

1、OpenWrt就是用来当主路由的,且192.168.1.1不会和运营商的路由器网关地址相同,那就保持不变即可。直接访问192.168.1.1即可访问OpenWrt管理页面。

2、OpenWrt是用来当旁路网关的,主路由网关地址为192.168.1.1。这种情况下,OpenWrt和主路由网关冲突,需要修改OpenWrt的IP为192.168.1.2。之后通过192.168.1.2来访问OpenWrt管理页面。

3、OpenWrt是用来当旁路网关的,主路由网关地址为192.168.2.1。这种情况下,OpenWrt和主路由网关不冲突,但由于不在一个网段,OpenWrt无法通过主路由连接网络,所以也需要修改OpenWrt的IP,可以改为192.168.2.2。

具体修改IP就是直接修改上面那个文件,然后重启网络,执行

service network restart

OpenWrt设置

完成上述步骤之后,登录OpenWrt。下面以上文的情况3为例(即主路由为192.168.2.1,OpenWrt为192.168.2.2),登录用户名为root,默认密码password。

登陆后,在“网络->诊断页面”可以测试网络连接情况,目前是无法上网的,如下图所示。

所以,需要修改一下端口设置,进入“网络->接口”页面,点击“修改”按钮。修改其中的“IPv4网关”地址为主路由网关地址(192.168.2.1),修改“IPv4广播”地址,增加自定义的DNS服务器,点击“保存并应用”。

修改完成后,再进行网络测试,可以联通了。

至此,OpenWrt旁路网关配置完成。

使用OpenWrt旁路网关上网

如果需要使用OpenWrt上网,那只需要将设备的默认网关设置成OpenWrt地址即可,如上设置,则为192.168.2.2

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 设为 不勾选

参考:

家庭共享记录(NFS、SMB、WebDAV、FTP)

这几天为了实现家庭共享及外部访问,对这四种共享方式都进行的尝试。最后选择了NFS+SMB的方式。思路很简单:用最少的工具完成功能。

SMB

从最简单的SMB说起,SMB是windows自带的共享协议,我在Hyper-V Server上建立后,在Windows虚拟机上可以通过硬盘映映射,在Linux虚拟机上可以通过samba的方式做mount。外网访问可以通过端口映射的方式,将445端口映射到外网即可。但是遇到两个问题:

1、CentOS下mount后无法修改目录权限。我想把nextcloud的data目录放在samba共享目录下,nextcloud正确运行需要这个目录属于apache用户且权限为0770,但是默认mount时以root用户挂载的。这个我找到了办法:可以mount命令执行时对权限进行设置。

mount -t cifs -o dir_mode=0770,file_mode=0770,uid=48,gid=48,username="Administrator",password="******",vers=3.0 //192.168.1.2/E$ /mnt/nextcloud

2、smb v2+版本在Linux下mount时会出现文件夹丢失的情况。挂载后使用ls -la命令无法看到部分文件夹,使用cd+tab自动补全也无法成功,但是可以直接cd到文件夹下。Google后确认时smb v2+的bug,暂未修复,只能通过启用不安全的smb v1(windos server默认时禁用的),然后在mount命令中指定版本vers=1.0来解决。

可以参考此份Bug Report:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1572132

3、在iOS上使用PhotoSync软件进行照片备份时,如果使用SMB方式连接,也需要在Server端开启Samba 1.0支持,否则会报Samba链接错误(Code:56)。

FTP/WebDAV

这俩放一起讲,因为方式都差不多,可以实现共享,但也存在一些问题:

1、如果时在虚拟机上开FTP共享用SMB挂载的磁盘,将无法访问。认证的时候会一直要求登录

2、WebDAV不能挂载磁盘根目录,需要指定一个目录

3、需要使用IIS开web服务器

4、速度和稳定性实际使用不如smb

5、FTP时应用层协议,不能向文件系统一样挂载

其中FTP还得单独讲一下,FTP分为主动和被动模式。

如果不开启被动模式,访问的时候就需要在IE高级设置中关闭“使用被动FTP”选项(即使是想在资源管理器里用ftp://xxxx访问也一样得去IE设置里修改),而且也无法在外网通过FTP APP访问(不做好被动设置的话,在APP里无论选主动还是被动都无法连接)。

如果需要开启被动模式,那需要做好两个设置,1、在FTP服务器设置中,开放被动FTP端口,我设置成了5000-5099;2、需要在防火墙设置里,把/system32/svchost.exe设置为允许。

考虑到内网共享后面还有更简单的NFS方式(至少不用开IIS),这两个就先放弃了。

NFS

这个简单,但是安全性比较低。所以我只拿来做内网共享了。由于是匿名的,所以唯一的安全方式是在权限中限制可以访问的IP。优点也很明显:

1、无需登录,操作简单

2、在linux下安装nfs-utils即可mount。mount后可以修改目录权限(比samba方便许多)

3、无需使用其他服务

方案:

服务端:Windows Server开SMB+NFS共享。

内网Windows虚拟机:SMB磁盘映射

内网Linux虚拟机:NFS挂载

外网APP:SMB端口映射

 

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