搭建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作为国内用户连接至国内中转服务器的方法,然后再经由中转服务器转发流量至境外服务器从而实现加密通道

发表评论

电子邮件地址不会被公开。 必填项已用*标注