第四节:trojan原理与搭建(史上最详细trojan协议原理解析与实战)
(文章与视频转自:不良林)
上一节我们搭建了属于自己的shadowscosk节点,同时也验证SS节点存在被精准探测的情况,并且通过shadowsocks+plugin插件的方式将SS数据伪装成普通的http流量,成功的绕过了防火墙针对重点IP段的探测,不过上节演示的只是简单的伪装成http流量,又因为http是明文的数据,所以还是存在被防火墙探测的风险,想要将http流量进行加密又需要引入TLS,让他成为https流量,所以这次就来搭建trojan协议的节点,他是一种天生就是将数据伪装成https流量来达到科学上网目的的协议。
本节可以说是整个系列最重要的一节,给大家科普了什么是http(s)/tls(ssl)/网站证书/公钥/私钥/非对称加密,将会贯穿后面所有内容,因为任何基于TLS的节点都离不开本节讲的内容,而目前最稳定的科学上网方式依然是将流量伪装成https,是逃不开的,建议仔细观看。
SSH连接工具(FinalShell):http://www.hostbuf.com/t/988.html
trojan-go:https://github.com/p4gefau1t/trojan-go
trojan-go官方文档:https://p4gefau1t.github.io/trojan-go/
trojan配置文件:
{ "run_type": "server", "local_addr": "0.0.0.0", "local_port": 443, "remote_addr": "192.83.167.78", "remote_port": 80, "password": [ "your_awesome_password" ], "ssl": { "cert": "server.crt", "key": "server.key" } }
申请证书:
#安装acme: curl https://get.acme.sh | sh #安装socat: apt install socat #添加软链接: ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh #注册账号: acme.sh --register-account -m my@example.com #开放80端口: ufw allow 80 #申请证书: acme.sh --issue -d 替换为你的域名 --standalone -k ec-256 #安装证书: acme.sh --installcert -d 替换为你的域名 --ecc --key-file /root/trojan/server.key --fullchain-file /root/trojan/server.crt #如果默认CA无法颁发,则可以切换下列CA: #切换 Let’s Encrypt: acme.sh --set-default-ca --server letsencrypt #切换 Buypass: acme.sh --set-default-ca --server buypass #切换 ZeroSSL: acme.sh --set-default-ca --server zerossl
自签证书:
#生成私钥: openssl ecparam -genkey -name prime256v1 -out ca.key #生成证书: openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/CN=bing.com"
后台运行:
nohup ./trojan-go > trojan.log 2>&1 &
视频时间线:
00:00 前言
01:20 http存在的问题
03:20 https的通信过程
12:20 trojan的通信过程
17:45 创建VPS
19:15 搭建trojan
23:00 申请网站证书
30:00 连接trojan节点
31:55 使用自签证书
36:50 后台运行trojan
37:50 总结
网友评论