(整个操作过程都是在debian10中完成,如果你是使用centos的小白用户,请选择使用centos7,并使用如下两条命令关闭掉防火墙,以免搭建trojan时使用的端口被防火墙拦截而导致无法正常使用。 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 )
由于使用trojan要用到caddy申请的证书,所以这里说下caddy申请并自动维护的证书文件存放位置。假如你的naiveproxy所使用的域名为www.abc.com。那么caddy默认申请的ecc证书存放的位置如下: 公钥: /root/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/www.abc.com/www.abc.com.crt 私钥: /root/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/www.abc.com/www.abc.com.key
在/root目录下,使用ls是看不到默认隐藏的.local文件夹的,可以使用ls -a就可以看到了。
1.使用官方脚本安装trojan bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)" 或 bash -c "$(wget -O- https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)" 该脚本命令也可以用来更新trojan服务端,出现的如下命令提示(覆盖服务和配置)选择n即可。 The systemd service already exists in /etc/systemd/system/trojan.service, overwrite? [y/N] The server config already exists in /usr/local/etc/trojan/config.json, overwrite? [y/N]
安装完毕后,如果你使用 systemctl status trojan 查看trojan运行状态时失败的,因为443端口被caddy占用的缘故,这里不用管它,因为我们并不打算让Trojan占用443端口。
2.修改trojan配置文件
nano /usr/local/etc/trojan/config.json
将如下内容复制到记事本修改后,再复制粘贴进config.json,然后保存(ctrl+o,再回车)退出(ctrl+x)。 要修改的地方使用了红色加粗显示(8080端口不喜欢的话,可以改为一个其他非80和443和8383的你喜欢的端口,password改为你喜欢的密码,证书文件位置记得把四处www.abc.com改为你搭建naiveproxy所使用的解析到vps的域名)
{ "run_type": "server", "local_addr": "0.0.0.0", "local_port": 8080, "remote_addr": "127.0.0.1", "remote_port": 80, "password": [ "password" ], "log_level": 1, "ssl": { "cert": "/root/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/www.abc.com/www.abc.com.crt", "key": "/root/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/www.abc.com/www.abc.com.key", "key_password": "", "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384", "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", "prefer_server_cipher": true, "alpn": [ "http/1.1" ], "alpn_port_override": { "h2": 81 }, "reuse_session": true, "session_ticket": false, "session_timeout": 600, "plain_http_response": "", "curves": "", "dhparam": "" }, "tcp": { "prefer_ipv4": false, "no_delay": true, "keep_alive": true, "reuse_port": false, "fast_open": false, "fast_open_qlen": 20 }, "mysql": { "enabled": false, "server_addr": "127.0.0.1", "server_port": 3306, "database": "trojan", "username": "trojan", "password": "", "key": "", "cert": "", "ca": "" } }
3,重启trojan systemctl restart trojan 然后再使用 systemctl status trojan 查看这次trojan是否正常启动运行了(有绿色“active(running)”显示)。
4.使用trojan的客户端进行测试,如能正常使用,记得在vps上使用 systemctl enable trojan将trojan服务设置为开机自动运行。
访问https://github.com/trojan-gfw/trojan/releases,下载windows平台客户端“trojan-版本号-win.zip”(目前最新版本是1.16.0,文件名为trojan-1.16.0-win.zip)
使用“解压到当前文件夹”解压至你想存放的位置。用记事本或notepad++之类软件修改其中的配置文件config.json,要修改的地方为下面红色加粗的地方。
example.com改为你搭建naiveproxy所使用的解析到vps的域名 443改为你Trojan服务端配置文件中第三行local_port的值,假设你服务端配置文件用的是8080,那么这里的443就要改为8080。 "cert": ""改为 "cert": "fullchain.cer",这行是配置证书,所以还需要你从vps上将/root/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/www.abc.com文件夹下的证书文件www.abc.com.crt下载下来,并将文件名改为fullchain.cer后和trojan客户端配置文件config.json放在一起,假设你使用的上传下载软件为xftp,配置xftp显示隐藏文件夹如下图(使用“工具”菜单的“选项”,然后勾选“显示隐藏的文件”,这样就能进入/root下的.local文件夹了) password1改为你服务端配置文件第七行所使用的密码,要保持一致。
配置xftp显示隐藏文件夹
{ "run_type": "client", "local_addr": "127.0.0.1", "local_port": 1080, "remote_addr": "example.com", "remote_port": 443, "password": [ "password1" ], "log_level": 1, "ssl": { "verify": true, "verify_hostname": true, "cert": "", "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA", "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", "sni": "", "alpn": [ "h2", "http/1.1" ], "reuse_session": true, "session_ticket": false, "curves": "" }, "tcp": { "no_delay": true, "keep_alive": true, "reuse_port": false, "fast_open": false, "fast_open_qlen": 20 } }
设置好配置文件后,在客户端软件目录建立使用trojan客户端的批处理文件:
启动记事本,复制粘贴下面三行代码,然后选择“文件”---“另存为”菜单,在出现的“另存为”对话框的“文件名(N)”中输入start.bat,最后点击“保存”。然后把保存出来的文件移动到trojan客户端软件所在文件夹。以后要使用Trojan,双击start.bat文件即可。运行后cmd窗口会隐藏(如果不想隐藏,在start.bat中去掉前两行即可),如果你config.json中"local_port": 1080没有改动的话,那么Trojan会在后台监听1080端口,代理协议为sock5。
@ECHO OFF %1 start mshta vbscript:createobject("wscript.shell").run("""%~0"" ::",0)(window.close)&&exit start /b trojan.exe
依照上述方法,再建立一个stop.bat,文件内容如下,双击stop.bat后能结束掉后台运行的trojan.exe。
@ECHO OFF taskkill /im trojan.exe /f ping -n 2 127.1 >nul
以后客户端升级,只需下载最新客户端文件并解压,然后将配置文件、证书文件和上面两个批处理文件拷贝过去即可。 |