本文由n2n+sprov-ui+Haproxy

n2n是一个二层架构的扶墙网络,其中super node提供场所,让两个位于NAT/防火墙之后的edge node进行会面,一旦双方完成首次握手,剩下的数据流就之发生在两个edge node之间,如果有一方的NAT属于对称型(symmetrical),super node则还需继续为双方提供数据包的转发;edge node负责数据流的加解密,原理很简单。

至此,我们已经了解,部署n2n至少需要两台以上的机器。(我这里是国内一台,国外一台)

我们此文采用两台centos。

centos7(super node) – 149.0.0.1 (公网IP)
centos7                       –  10.0.0.1(n2n的ip)

使用n2n产生的虚拟网段,将为 10.0.0.1 ~ 10.0.0.255

无论是edgenode还是supernode 都需要安装n2n,所以下面安装方法通用,提供两种n2n资源,均可。

 


git clone https://github.com/meyerd/n2n.git

yum install -y openssl-devel
yum install -y cmake
yum install -y net-tools
yum install -y git
yum install -y gcc gcc-c++

cd n2n/n2n_v2

mkdir build
cd build
cmake ..
make && make install

 

 

supernode(服务端运行)
supernode -l 5000

服务端也可以同时当做客户端使用,将服务端加入到虚拟网络中。

edge -a 10.0.0.10 -c edge0 -k wss -l 149.0.0.1:5000

客户端

edge -a 10.0.0.11 -c edge0 -k wss -l 149.0.0.1:5000

复制代码

10.0.0.11 这个IP是虚拟网段,其他加入虚拟网络中的IP地址需要在同一网段,统一key,即wss(可设置为其他)。

国外机器安装sprov-ui

wget -O /usr/bin/sprov-ui -N --no-check-certificate https://github.com/mikewubox/sprov-ui/raw/master/sprov-ui.sh && chmod +x /usr/bin/sprov-ui && sprov-ui

复制代码

装完了以后,新加代理的时候把IP改成内网段的

然后国内机器安装Haproxy

yum -y install Haproxy
vi /etc/haproxy/haproxy.cfg

在centos7上安装好后使用的时候要把下面两个参数注释。然后就行配置。不然会报错http参数问题

defaults
mode http
log global
# option httplog
option dontlognull
option http-server-close
# option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000

 

后面新加端口转发

 


frontend tcp-2013-front
bind 172.24.19.176:1204 国内机器IP端口
mode tcp
default_backend tcp-2013-back

backend tcp-2013-back
mode tcp
balance leastconn
server tcp-2013 10.0.0.10:1204 国外机器n2nIP端口

haproxy -c -V -f /etc/haproxy/haproxy.cfg 验证

 

 

验证没问题,启动报错 ,关闭sLinux

 


setenforce 0
vim /etc/sysconfig/selinux

SELINUX=enforcing 改为 SELINUX=disabled

 

大概就这些了。这玩意本来就是随缘和玄学,自己折腾吧,至少从去年国庆后改成这个方法,用过的代理都没得问题。

说点什么
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...