简单记录下 Socks5 Over TLS, HTTPS and HTTP2 隧道代理的建立

rampageX
rampageX
Oct 17, 2016 · 3 min read

1. 首先你需要购买一个域名;

2. 证书的获取:

Linux 下可以用 Certbot 等工具来从 Let’s Encrypt 获取证书;

Windows 下推荐用 Caddy 来获取证书,推荐吧域名服务器临时设为 Cloudflare 的,然后通过 API 让 Caddy 自动获取证书,Caddyfile 简单设置为:

mydomain.com:443
root E:\WWW
gzip
log ../access.log
tls {
dns cloudflare
}

然后直接运行一下 Caddy.exe 就行了,证书储存在 用户名/.caddy 目录下。

3. 创建服务端:

这里就要用到强大的 Gost 了,各类隧道创建方式:

gost -L="http://user:password@:25" -L="http2://user:password@:143?cert=cert.pem&key=key.pem" -L="socks+tls://user:password@:587?cert=cert.pem&key=key.pem" -L="http+tls://user:password@:465?cert=cert.pem&key=key.pem" -logtostderr -v 5

这么一行就依次创建了:一个监听在 25 端口的支持 http-connect 的代理,一个加密的 http2 代理,一个 Socks Over TLS 代理(目前 Surge 支持)和一个 https 代理,user:password 是用户名密码,cert 和 key 分别是上面域名的数字证书的公匙和私匙。

4. 客户端:

http,https 和 socks5 隧道,Chrome 浏览器(或者通过 SwitchyOmeda 扩展)都直接支持,Socks5 over TLS 目前只看到 Surge 直接支持,http2 没看到直接支持的。不过我们可以转换成普通的 http/socks5 代理来用(远程通讯依然是 TLS 或者 HTTP2 加密的),例如:

#转换 https 为 http,监听在本地 7575 端口
gost -L=http://0.0.0.0:7575 -F=http+tls://user:password@mydomain.com:465?cert=cert.pem&key=key.pem
#转换 socks5 over TLS 为 socks5
gost -L=socks://0.0.0.0:7676 -F=socks+tls://user:password@mydomain.com:587?cert=cert.pem&key=key.pem
#转换 http2 为 socks5
gost -L=socks://0.0.0.0:7878 -F=http2://user:password@mydomain.com:143?cert=cert.pem&key=key.pem

这样转换后的代理,是可以通过 redsocks2 来透明代理的。

https://www.quakemachinex.com/blog/?p=244

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store