安装vimplus在“[ 95%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ycm_core.cpp.o”等进度时出现编译报错

之前曾在许多的系统中装过vimplus,在自己电脑上装过,别人电脑上也有装过,国内国外的云主机上也都有装过,但是有的机器可以安装完成,有的不行,一直以来都不太明白到底是为什么,每次在安装中都出现如标题所示类似的报错,有的时候是在百分之九十几报错,有的时候三十几就有报错,但是无一例外的是出现在YCM的编译过程,最后在github上找到有人说出现该报错是因为机器的内存不够,于是尝试开启Linux系统的Swap分区以变相的扩大一下内存,结果发现问题便解决了,在这贴出该篇issuse的地址:Github,至于Swap分区的开启在这就不过多赘述,百度和谷歌上随便一搜一大堆,Ubuntu开启Swap分区

搭建GohopVPN过程

1.安装相关所需软件包

注意,本VPN仅适用于Linux系统作为客户端的用户

apt updete && apt install golang-go gcc git make -y

2.设置相关环境变量

mkdir /root/gohop && export GOPATH=/root/gohop

3.下载gohop

go get github.com/bigeagle/gohop

4.开启ipv4网卡的TCP转发以及网卡的NAT功能

sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -j MASQUERADE

5.写入server.ini配置内容

该文件可处于系统的任意位置,只需在启动时指定配置文件位置,在这里我们将配置文件放在gohop的项目文件夹的根目录下,配置文件照搬官方的文件内容

[default]
# server or client
mode = server
[server]
# port range to listen
hopstart = 40100
hopend = 40200
# server addr
addr = 10.1.1.1/24
# master key
mtu = 1400
key = ilovethebigbrother
# method of traffic morphing: none or randsize
morphmethod = none
# Fix MSS for tcp handshake
fixmss = true
peertimeout = 60
up = some.sh
down = some.sh

6.启动gohop服务

推荐使用screen将服务放置在后台持续运行,当然也可跳过该步骤在前台运行,但会造成推出SSH远程连接时,服务停止

screen使用教程_极简版(可跳过)
示例—创建一个名为gohop的screen与其使用方法
screen -S gohop

在screen中完成开启服务后可使用按住ctrl后按a不松开ctrl再按d即可挂起该screen
在挂起后如还想返回到该screen中可使用screen -ls查看其进程号,示例如下:

There is a screen on:
    3258.gohop  (11/14/2018 03:02:21 PM)    (Detached)
1 Socket in /var/run/screen/S-root.

其中的3258便是进程号,使用screen -r 进程号(在这是3258)即可恢复
如想删除该screen可使用命令kill 进程号(在这是3258)杀死并删除该进程

启动VPN服务

如果你没有跳过上面的教程,那么,你在创建了screen之后便会发现屏幕内容被清空了。在这个新建的screen中,输入接下来的指令启动服务,如果你跳过了以上的教程,也可以直接输入以下的指令完成启动

/root/gohop/bin/gohop /root/gohop/server.ini

至此,服务端启动完成

接下来配置客户端

完成与服务端相同的前三步

apt update && apt install golang-go gcc git make -y && mkdir /root/gohop && export GOPATH=/root/gohop && go get github.com/bigeagle/gohop

在/root/gohop下写入如下配置文件client.ini

[default]
# server or client
mode = client
[client]
# gohop server
server = (服务端ip)
# port range for hopping
hopstart = 40100
hopend = 40200
mtu = 1400
key = ilovethebigbrother
# method of traffic morphing: none or randsize
morphmethod = none
# whether to redirect flow through gohop
redirect-gateway = true
# is server and client in the same subnet?
local = false
heartbeat-interval = 30
up = chnroute-up.sh
down = chnroute-down.sh

同样的,也可以使用screen在后台开启客户端,也可以直接前台使用

/root/gohop/bin/gohop /root/gohop/client.ini

至此,所有的客户端配置完成,你可以尝试打开浏览器看看能否打开Google等网站,也可以试着ping一下google等,但是注意DNS污染的问题,该VPN不会转发DNS查询,该VPN是通过Linux的tun功能假设流量通道并混淆防止GFW的探查与干扰,但在之后的测试中发现其丢包率真的十分高,但是可以考虑架设中转Linux服务器从而利用上该VPN方案的可能性,初步认为可在国内服务器上架设非常规的openvpn作为国内用户连接至国内中转服务器的方法,然后再经由中转服务器转发流量至境外服务器从而实现加密通道