首要ssh aws和sudo -i进入root权限

第一步:

咱们需求一个插件trojan-go

  1. 创建一个名为trojan文件夹并进入
mkdir trojan
cd trojan
  1. 然后仿制对应的版别下载链接,我这儿用的lunux系统64位的就下载如下这个amd64位的了:

自己搭建节点(trojan协议+tls)

wget https://xxxxxxx

然后开始解压

unzip xxxxx.zip
// 假如没有unzip请下载
apt install unzip

然后ll或许ls检查里边如下所示:

自己搭建节点(trojan协议+tls)

除了以下两个文件其余没什么用

  1. trojan-go可履行文件
./trojan-go // 该指令能够直接履行

自己搭建节点(trojan协议+tls)

  1. example里边能够检查一下server.json配置文件是怎么写的

自己搭建节点(trojan协议+tls)

自己搭建节点(trojan协议+tls)

此刻启动能够看到如下:

自己搭建节点(trojan协议+tls)

上图所示启动失利,说是没有配置文件,那么咱们在trojan-go同级目录下新建一个配置文件如下:

touch config.json

文件内写如下内容:

{
        "run_type": "server",
        "local_addr": "0.0.0.0",
        "local_port": "443",
        "remote_addr": "192.83.167.78",
        "remote_port": 80,
        "password": [
                "111" // 设置两边trojan身份认证的暗码(能够看下图),到时候客户端要衔接的话有必要运用这个暗码才能和咱们建立正确的衔接
        ],
        "ssl": { // ssl是关于tls的一些设置
                "cert": "server.crt", // ca证书文件
                "key": "server.key" // 私钥
        }
}

其中”remote_addr”: “192.83.167.78”,这个地址便是当trojan衔接失利的时候,GFW就会拜访192.83.167.78地址,GFW一看该网站是正常网站,就不阻拦,这儿你也能够填写127.0.0.1,这个意思便是拜访本机80端口,你能够在服务器80端口运用nginx或许apache搭建一个web服务器,我这儿偷懒就直接交给其他服务器处理了

自己搭建节点(trojan协议+tls)

接下来请求网站证书,请求网站证书需求预备一个域名,由于这个证书是给这个域名颁布的

  1. 咱们请求证书是运用这个acme的东西,下载装置acme脚本文件:curl get.acme.sh|sh

自己搭建节点(trojan协议+tls)
能够装置成功,但是绿色区域说是主张先装置socat

  1. 装置socat
apt install socat
  1. 增加软链接,意思便是将装置的acme脚本放到/usr/local/bin/目录下面,然后咱们就不必带上途径,在任何目录都能够通过acme这种方法去调用它(由于lunux系统bin目录下设置了环境变量),相似Windows在任何方位都能拜访cmd
ln -s /root/.acme.sh/acme.sh/usr/local/bin/acme.sh
  1. 注册账号
acme.sh --register-account -m 邮箱
  1. 敞开80端口:
ufw allow 80
  1. 请求证书
./acme.sh --issue -d 域名 --standalone -m 邮箱

自己搭建节点(trojan协议+tls)

如上图所示注册成功

自己搭建节点(trojan协议+tls)

上图

  • 1是网址证书
  • 2是私钥
  • 3是ca证书
  • 4是完好的证书链

咱们要用的话有必要要用这个完好的证书链,由于它包含了中间CA组织的证书

  1. 装置证书
acme.sh --installcert -d 域名 --ecc --key-file /root/trojan/server.key --fullchain-file /root/trojan/server.crt

这条指令意思便是将方才请求到的私钥装置的/root/trojan/server.key 完好的证书链装置到/root/trojan/server.crt 能够看到如下成功

自己搭建节点(trojan协议+tls)

  1. 此刻看下图假如对应config.json配置途径是正确的

自己搭建节点(trojan协议+tls)

那么咱们就能够直接./trojan-go运行了

./trojan-go -config config.json // 表示加载咱们方才上传的config文件
./trojan-go  // 假如没有带参数启动,默认是找同级目录下的config文件

自己搭建节点(trojan协议+tls)

如上图所示就现已成功搭建了trojan的服务

第二步:然后打开V2rayN增加torjan服务器

自己搭建节点(trojan协议+tls)

此刻测验真衔接,能够看到如下图拜访超时

自己搭建节点(trojan协议+tls)

上图拜访超时原因是端口没有放行,把443端口放行就能够了

自己搭建节点(trojan协议+tls)

然后再测验就能够了

还有另一种没有域名的情况

没有域名的话就不能写这个请求信,由于CA组织要验证咱们这个域名究竟是不是咱们的,所以没办法找CA组织请求证书,但是咱们能够自己做CA 自己给自己颁布证书,这种证书叫自签证书

这条指令便是生成一个私钥

openssl ecparam -genkey -name prime256v1 -out ca.key

自己搭建节点(trojan协议+tls)

如上图能够看到生成了私钥文件ca.key 有了私钥之后就能够自己给自己生成证书了

生成证书指令:

// ssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/CN=google.com"
// 用谷歌域名不可,所以换成bing
openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/CN=bing.com"

会生成一个ca.crt证书如下

自己搭建节点(trojan协议+tls)

然后将config.json改成咱们自己的证书

自己搭建节点(trojan协议+tls)

然后从头运行./trojan-go

自己搭建节点(trojan协议+tls)

此刻衔接失利,看如下图解释为什么:

自己搭建节点(trojan协议+tls)

海外的这个trojan服务颁布组织是自己签的,国内的不信这个颁布组织,所以有两种办法:

  1. 一种是将这个颁布组织增加到受信赖的根证书颁布组织里边
  • cmd输入指令certmgr.msc打开

自己搭建节点(trojan协议+tls)

便是说这个红色区域内的组织给咱们颁布的证书咱们就相信它

  1. 另一种便是V2rayN东西直接跳过证书验证,改为true,如下图:

自己搭建节点(trojan协议+tls)