本文所列内容在LinodeVultrVPS上面均测试通过,Debian 7系统。

首先吐槽一下,我还算是个良民吧,对喷政府这种事情没兴趣,也没那个功夫,平时自己做个代理,也就是查资料用的多,偶尔上twitter看看逗逼们,自己也乐呵一下,可这么简单的事情居然无法直接做到,真tm郁闷!我做个代理,不定时中断,这肯定是伟大的gfw功劳,我做个vpn,还是一样,这次真的是怒了!折腾了一个周末,找到了最简单高效的途径来搞定这个事情,操!

1,简要说明

首先假定你已经按照《Debian制作socks5服务器》一文的内容做好了socks5代理,并且配置里面开启了http代理。然后本文会引导你做一个加密隧道,这样就可以将gfw踩在脚底了!

2,服务器端安装配置

debian和ubuntu的命令是一样的:

apt-get install -y stunnel4

然后编辑下面文件,让这个服务默认启动:

nano /etc/default/stunnel4

做如下更改:

ENABLED=1

生成证书和私钥:

openssl genrsa 1024 > stunnel.key
openssl req -new -key stunnel.key -x509 -days 1000 -out stunnel.crt

里面有交互的时候,可以自行设置,也可以直接回车。

然后运行命令:

cat stunnel.crt stunnel.key > stunnel.pem
mv stunnel.pem /etc/stunnel/

下面做一个配置文件,默认是没有的,下面命令会直接新建:

nano /etc/stunnel/stunnel.conf

内容如下:

pid = /var/run/stunnel4.pid
cert = /etc/stunnel/stunnel.pem
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
client=no

[http2ssl]
accept = 10001
connect = 127.0.0.1:8082

[socks2ssl]
accept = 10002
connect = 127.0.0.1:6666

这个配置的意思是说,将接收到的10001端口数据解密后转发到本地的8082,也就是http代理端口;将10002的数据解密后转发到6666,也就是前面我们配置的socks5端口。

服务器端完事。

 

3,客户端安装配置

首先下载安装,中途会问你那些私钥内容什么的,回车跳过就行,然后编辑安装目录的stunnel.conf文件,内容如下:

cert = stunnel.pem
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
client=yes

[http2ssl]
accept = 10001
connect = 1.1.1.1:10001
[socks2ssl]
accept = 10002
connect = 1.1.1.1:10001

注意,1.1.1.1是服务器IP,这里我懒省事了,怕以后记不住,所以客户端的端口我配置的和服务器一样了,你和我一样懒的话也可以这样,哈哈。

配置文件的意思是说,将客户端的10001和10002端口数据传递到服务器的相同端口。

客户端完事。

 

然后用起来方法是一样的,stunnel实际上是做了一个二次代理,也就是说你的客户端也成为了代理服务器,而这个客户端代理接收到的数据会发送到服务器,再由服务器传回数据,这两个代理之间的传输是加密的,所以也就不怕gfw了。

One thought on “Debian 7(Wheezy)/Ubuntu上使用stunnel+kingate配置加密代理

发表评论

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