L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误

问题:
电脑连接不上公司的,连接报错:L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误。

解决方法:

  1. 先设置一下连接
  2. 添加注册表项AllowL2TPWeakCrypto (如果有就直接修改值就行)
  3. 单击开始,单击运行,键入regedit,然后单击确定
  4. 在注册表编辑器中,找到并单击以下注册表子项︰
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters
  5. 在编辑菜单上,指向新建,然后单击DWORD 值。
  6. 键入AllowL2TPWeakCrypto,然后按 enter 键。
  7. 在编辑菜单上,单击修改。
  8. 在数值数据框中,键入1,然后单击确定。
  9. 在文件菜单上,单击退出以退出注册表编辑器。
  10. 再添加一个注册表项 ProhibitIpSec

1.定位注册表HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters

  1. 在“编辑”菜单上,单击“新建”->“DWORD值”
  2. 在“名称”框中,键入“ProhibitIpSec”
  3. 在“数值数据”框中,键入“1”,然后单击“确定”
  4. 然后重启电脑,如果还是不行,检查 IPsec Policy Agent 是否启动,如果没有启动,将它启动
  5. 再检查 Routing and Remote Access 服务,如果没有启动,将它启动
  6. 如果还是不行,就卸载掉网络适配器中的无线网卡再重启试试

到这一步,应该就可以解决了。

重启电脑

iperf3:网络测试工具及测试用例+参数详解

1,iperf3简介

iPerf3是用于主动测试IP网络上最大可用带宽的工具。它支持时序、缓冲区、协议(TCP,UDP,SCTP与IPv4和IPv6)有关的各种参数。对于每次测试,它都会详细的带宽报告,延迟抖动和数据包丢失。

它与原始 iPerf 不共享任何代码,也不向后兼容。

它是一个C/S架构的测试工具,需要在同时运行在服务器端和客户端。

支持的平台:Windows, Linux, Android, MacOS X, FreeBSD, OpenBSD, iPhone/iPad等

2,详细命令参数

执行

iperf3 -h

可以查看所有的命令信息

以下是中文信息, iPerf 3.1.2 支持的所有参数:

-p, --port #,Server 端监听、Client 端连接的端口号; 
-f, --format [kmgKMG],报告中所用的数据单位,Kbits, Mbits, KBytes, Mbytes; 
-i, --interval #,每次报告的间隔,单位为秒; 
-F, --file name,测试所用文件的文件名。如果使用在 Client 端,发送该文件用作测试;如果使用在 Server 端,则是将数据写入该文件,而不是丢弃; 
-A, --affinity n/n,m,设置 CPU 亲和力; 
-B, --bind ,绑定指定的网卡接口; 
-V, --verbose,运行时输出更多细节; 
-J, --json,运行时以 JSON 格式输出结果; 
--logfile f,输出到文件; 
-d, --debug,以 debug 模式输出结果; 
-v, --version,显示版本信息并退出; 
-h, --help,显示帮助信息并退出。 
Server 端参数: 
-s, --server,以 Server 模式运行; 
-D, --daemon,在后台以守护进程运行; 
-I, --pidfile file,指定 pid 文件; 
-1, --one-off,只接受 1 次来自 Client 端的测试,然后退出。 
Client 端参数 
-c, --client ,以 Client 模式运行,并指定 Server 端的地址; 
-u, --udp,以 UDP 协议进行测试; 
-b, --bandwidth #[KMG][/#],限制测试带宽。UDP 默认为 1Mbit/秒,TCP 默认无限制; 
-t, --time #,以时间为测试结束条件进行测试,默认为 10 秒; 
-n, --bytes #[KMG],以数据传输大小为测试结束条件进行测试; 
-k, --blockcount #[KMG],以传输数据包数量为测试结束条件进行测试; 
-l, --len #[KMG],读写缓冲区的长度,TCP 默认为 128K,UDP 默认为 8K; 
--cport ,指定 Client 端运行所使用的 TCP  UDP 端口,默认为临时端口; 
-P, --parallel #,测试数据流并发数量; 
-R, --reverse,反向模式运行(Server 端发送,Client 端接收); 
-w, --window #[KMG],设置套接字缓冲区大小,TCP 模式下为窗口大小; 
-C, --congestion ,设置 TCP 拥塞控制算法(仅支持 Linux  FreeBSD ); 
-M, --set-mss #,设置 TCP/SCTP 最大分段长度(MSS,MTU 减 40 字节); 
-N, --no-delay,设置 TCP/SCTP no delay,屏蔽 Nagle 算法; 
-4, --version4,仅使用 IPv4; 
-6, --version6,仅使用 IPv6; 
-S, --tos N,设置 IP 服务类型(TOS,Type Of Service); 
-L, --flowlabel N,设置 IPv6 流标签(仅支持 Linux); 
-Z, --zerocopy,使用 “zero copy”(零拷贝)方法发送数据; 
-O, --omit N,忽略前 n 秒的测试; 
-T, --title str,设置每行测试结果的前缀; 
--get-server-output,从 Server 端获取测试结果; 
--udp-counters-64bit,在 UDP 测试包中使用 64 位计数器(防止计数器溢出)。 
 

3,安装

linux安装:

yum install -y iperf3

或者 官网下载离线安装包

windows安装:官网直接下载安装包,下载完成后解压,使用时进入cmd终端,cd到解压路径,可以找到iperf3.exe程序即可正常使用

Android/iPhone/iPad:官网下载 或者 应用商店下载

4,实际使用–简单用例

上图为简单举例。拓扑图根据测试需求的实际网络结构需要调整。server可以配置在内网,也可以配置在外网。

运行iperf3在服务器端,默认端口号为5201

iperf3 -s

运行iperf3在服务器端,如果需要指定的端口号加上-p port

iperf3 -s -p 【这里写指定的端口号】

例:

iperf3 -s -p 8888

运行iperf3在客户端,开始带宽测试

iperf3 -c 【serverIP,这些写服务器的IP地址】

例:

iperf3 -c 192.168.1.1

运行iperf3在客户端,设置多个并行数据流-P

iperf3 -c serverIP -P streams

例:

iperf3 -c 192.168.1.1 -P 3

运行iperf3在客户端,反向测试(服务器端发送数据到客户端)

iperf3 -c serverIP -R

例:

iperf3 -c 192.168.1.1 -R

5,实际使用–复杂用例

运行iperf3在客户端,使用UDP协议,并设置使用的测试带宽

iperf3 -c serverIP -b 1000M -t 60 -d

-c 为客户端运行并要指定服务端的IP地址

-b 表示使用的测试带宽

-t 表示以时间为测试结束条件进行测试,默认为 10 秒;

-d 打印出更详细的debug调试信息

例:

iperf3 -c 192.168.1.1 -b 1000M -t 60 -d

Interval:程序的运行时间

Transfer:传输的数据总量

Bandwidth:测试出的带宽

Jitter:网路抖动

Lost/Total Datagrams:丢包数/总数据包数(丢包率)

6,一些技巧

终止或者退出测试,快捷键Ctrl + c

CENTOS7搭建L2TP OVER IPSEC

L2TP通俗的说就是一种VPN隧道技术。

VPN就是一种网络穿透技术,可以让你链接到一处网络,同时本身的流量限制就会失效变成链接处的网络规则。所以如果你在外网服务器上搭建后连接上去,你的网络就可以变成没有国内限制,可以自由的访问外网。但是在国际上搭建信道是犯法的!!!

一、这是检测服务器支不支持搭建的方法

先看看你的主机是否支持pptp,返回结果为yes就表示通过。

modprobe ppp-compress-18 && echo yes

是否开启了TUN,有的虚拟机主机需要开启,返回结果为cat: /dev/net/tun: File descriptor in bad state,就表示通过。

cat /dev/net/tun

二、正式搭建命令

1.首先一台全新的服务器记得换源
2.安装必要程序
3.编辑pppoptfile文件
4.修改L2tp的配置文件
5.添加账号密码
6.创建预共享密钥
7.修改内核参数
8.建立ipsec 与 l2tp 服务关联的配置文件
9.iptables安装配置
10.启动

1.首先一台全新的服务器记得换源

yum install -y epel-release

2.安装这一堆花里胡哨的必要程序

yum install -y make gcc gmp-devel xmlto bison flex xmlto libpcap-devel lsof vim-enhanced man xl2tpd libreswan nano

3.编辑pppoptfile文件

nano /etc/ppp/options.xl2tpd
require-mschap-v2 #加上这个

ipcp-accept-local

ipcp-accept-remote

ms-dns 8.8.8.8

ms-dns 1.1.1.1

# ms-dns 192.168.1.1

# ms-dns 192.168.1.3

# ms-wins 192.168.1.2

# ms-wins 192.168.1.4

noccp

auth

#obsolete: crtscts

idle 1800

mtu 1410

mru 1410

nodefaultroute

debug

#obsolete: lock

proxyarp

connect-delay 5000

# To allow authentication against a Windows domain EXAMPLE, and require the

# user to be in a group "VPN Users". Requires the samba-winbind package

# require-mschap-v2

# plugin winbind.so

# ntlm_auth-helper '/usr/bin/ntlm_auth --helper-protocol=ntlm-server-1 --require-membership-of="EXAMPLE\\VPN Users"'

# You need to join the domain on the server, for example using samba:

# http://rootmanager.com/ubuntu-ipsec-l2tp-windows-domain-auth/setting-up-openswan-xl2tpd-with-native-windows-clients-lucid.html

4.修改L2tp的配置文件

nano /etc/xl2tpd/xl2tpd.conf 
;

; This is a minimal sample xl2tpd configuration file for use

; with L2TP over IPsec.

;

; The idea is to provide an L2TP daemon to which remote Windows L2TP/IPsec

; clients connect. In this example, the internal (protected) network

; is 192.168.1.0/24. A special IP range within this network is reserved

; for the remote clients: 192.168.1.128/25

; (i.e. 192.168.1.128 ... 192.168.1.254)

;

; The listen-addr parameter can be used if you want to bind the L2TP daemon

; to a specific IP address instead of to all interfaces. For instance,

; you could bind it to the interface of the internal LAN (e.g. 192.168.1.98

; in the example below). Yet another IP address (local ip, e.g. 192.168.1.99)

; will be used by xl2tpd as its address on pppX interfaces.

[global]

listen-addr = 192.168.5.243 #改成自己的外网IP

;

; requires openswan-2.5.18 or higher - Also does not yet work in combination

; with kernel mode l2tp as present in linux 2.6.23+

ipsec saref = yes #去掉;注释号

; Use refinfo of 22 if using an SAref kernel patch based on openswan 2.6.35 or

; when using any of the SAref kernel patches for kernels up to 2.6.35.

; saref refinfo = 30

;

; force userspace = yes

;

; debug tunnel = yes

[lns default]

ip range = 192.168.1.100-192.168.1.200 #分配给VPN客户端的IP,这个可以随便用,但是后面对应的要改

local ip = 192.168.1.99 #本地的IP网段一致不要被分配就行

require chap = yes

refuse pap = yes

require authentication = yes

name = LinuxVPNserver

ppp debug = yes

pppoptfile = /etc/ppp/options.xl2tpd

length bit = yes

5.添加账号密码

nano /etc/ppp/chap-secrets
# Secrets for authentication using CHAP 
#client		server	secret		IP addresses
test            *       123456          *

6.创建预共享密钥

nano /etc/ipsec.d/ipsec.secrets
#include /etc/ipsec.d/*.secrets 
%any  %any: PSK "123456"

7.修改内核参数

nano /etc/sysctl.conf
net.ipv4.ip_forward = 1

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.all.rp_filter = 0

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

net.ipv4.conf.default.rp_filter = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.accept_redirects = 0 #每三句对应一个网卡

net.ipv4.conf.eth0.rp_filter = 0

net.ipv4.conf.eth0.send_redirects = 0

net.ipv4.conf.lo.accept_redirects = 0

net.ipv4.conf.lo.rp_filter = 0

net.ipv4.conf.lo.send_redirects = 0
sysctl -p

8.建立ipsec 与 l2tp 服务关联的配置文件

nano /etc/ipsec.d/l2tp_psk.conf
conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    dpddelay=30
    dpdtimeout=120
    dpdaction=clear
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=10.20.120.2  #也是网卡IP
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any

9.iptables安装配置

yum install -y iptables
yum install -y iptables-services
systemctl stop firewalld
systemctl mask firewalld
iptables -L -n
iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables -I FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -I FORWARD -d 192.168.1.0/24 -j ACCEPT
 
iptables -A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 1701 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 4500 -j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -A INPUT -m policy --dir in --pol ipsec -j ACCEPT
 
iptables -A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
 
service iptables save
/bin/systemctl restart iptables.service

10.启动,分开执行,看看有没有错

systemctl start ipsec
systemctl enable ipsec
ipsec verify
systemctl start xl2tpd
systemctl enable xl2tpd
systemctl status xl2tpd
使用预共享密钥的L2TP/IPsec
服务器地址:
预共享密钥:123456
账号一:test
密码:123456

三、连接教程

四、其他问题

错误描述:
    无法建立计算机与VPN服务器之间的网络连接,因为远程服务器未响应。这可能是因为未将计算机与远程服务器之间的某种网络设备(如防火墙、NAT、路由器等)配置为允许VPN连接。请与管理员或服务提供商联系以确定哪种设备可能 产生此问题。

解决办法:
    首先分析原因:原因是L2TP连接需要IPSec加密,可能是IPSec加密被禁用了,需要在注册表启用它,具体步骤如下:
    win+r键打开运行框,输入 regedit 打开注册表;

    找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters 将ProhibitIPSec的值改为0;

    找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent 将 AssumeUDPEncapsulationContextOnSendRule的值改为2;

    重启计算机;

错误描述:
    L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误

解决办法:
    win+r键打开运行框,输入 regedit 打开注册表;

    找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters 将 AllowL2TPweakcryphto 的值改为1,重启计算机

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters 将ProhibitIPSec的值改为1;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters 将 AllowL2TPweakcryphto 的值改为0,重启计算机

iptables设置端口

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 0.0.0.0/32 -p tcp -m multiport --dports 22,80 -j ACCEPT
-A INPUT -s 0.0.0.0/32 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80:101 -j ACCEPT
-A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

例子:


单端口转发

iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]

端口段转发:转发10000到20000这个端口段,则填10000:20000

iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]

最后保存规则和重启iptables服务

service iptables save

service iptables restart

删除端口转发,用 -D 选项

iptables -t nat -D PREROUTING -p tcp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -D PREROUTING -p udp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -D POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]
iptables -t nat -D POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]


Delete transfer

iptables -t nat -D PREROUTING -d [ ip ] -p udp --dport [ port ] -j DNAT --to [ ip ]:[ port ]
service iptables save
service iptables restart
iptables -t nat -L


Append transfer

iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -d [ ip ] -p tcp --dport [ port ] -j DNAT --to [ ip ]:[ port ]
iptables -t nat -A PREROUTING -d [ ip ] -p tcp --dport [ port ] -j DNAT --to [ ip ]:[ port ]
service iptables save
service iptables restart
iptables -t nat -L


WORDPRESS问题收集

一、插件问题

部分插件需要安装PHP7.4等版本,低版本不兼容。

二、修改自定义页面

网页不一定能够直接修改,还需要直接修改代码文件

三、检测报错

REST API遇到了错误
性能
REST API 是 WordPress 及其他应用与服务器通信的一种途径。例如,区块编辑器页面就依赖 REST API 来显示及保存您的页面和文章。

在测试 REST API 时,发生了一个错误:

REST API 端点:http://blog.msgnull.top:9999/index.php?rest_route=%2Fwp%2Fv2%2Ftypes%2Fpost&context=edit
REST API 响应:(http_request_failed) cURL error 28: Connection timed out after 10000 milliseconds

尝试更新PHP以及curl至高版本无效