可搜索,可注册,可登录,致敬逗比大佬!尽在救援版逗比根据地 dbgjd.com
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程

使用trojan翻越长城的进阶使用方法

News 转载自https://www.bennythink.com 3727℃ 0评论

今天偶然看到了另外一个梯子trojan,大致看了下,感觉这东西还是蛮有意思的嘛,思路和其他工具不太一样:把流量放到Application Data里,然后伪装成正常的HTTPS通信,甚至还有一个完全真正的TLS握手。从结果上看起来,有点像Shadowsocks/ShadowsocksR的obfs之类的功能,只不过这个从网络层上看就像真正的HTTPS一样。

由于这是一个比较新的项目,所以相关的基础设施还不如shadowsocks那么完善,比如缺少或不完善的移动平台客户端等等~不过这都不是事,相信社区的力量レ(゚∀゚;)ヘ=3=3=3

配置也很容易,大概可以分为6步

  • 准备服务器
  • 准备http服务
  • 弄个域名
  • 搞个证书
  • 写配置,调试,运行
  • 客户端配置、测试
  • 进阶配置

准备服务器

VPS

首先,咱需要准备一个VPS,KVM之类的完全虚拟化的最好,OpenVZ也行。

我就用前段时间免费薅的Oracle Cloud Korea为例了,延迟真是非常理想的,也基本没丢包。

使用trojan翻越长城的进阶使用方法

其他的厂商,可以试试

  • Vultr:注册送$50,一个月用完,最低$3.5/月,但是据说现在有时会开出来不能用的IP
  • Linode:老牌厂商了,$5
  • Conoha:日本的主机商,900日元/月,据说ToS有点严格,但是我跑梯子、rtorrent、ffmpeg都没被封过,吼吼
  • DigitalOcean:和Vultr一样也是送$50一个月用完
  • VirMach:被称作低价屠夫,特别便宜的年付VPS,比如有时促销会有年付$7的KVM机器,新用户貌似还能折扣,不过他家换IP就要交钱,这点就比较坑了

防火墙

装好系统,ssh连接上,记得把防火墙什么的都搞定了,需要注意,不仅要关注系统自身的防火墙,也要注意下厂商的“安全组”这类东西。

清除iptables的规则,可以参考如下命令:

sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -t nat -F sudo iptables -t mangle -F sudo iptables -F sudo iptables -X 

如有必要,可以安装iptables-save等工具持久化

准备http服务

官方文档建议配置一个http服务器,所以咱就简单的弄下吧,Debian系为例,使用root权限执行如下命令:

apt install nginx 

CentOS可以用yum安装

yum install nginx 

此时访问http://ip 应该能看到默认的欢迎页面了。

弄个域名

域名的话,什么域名都无所谓的,可以自己注册个免费的cf什么的域名,也可以注册个正经的域名,假如不想花钱,那用DDNS也可以,比如dynu提供免费的二级域名。

域名搞到手之后,做个A记录的解析到服务器IP

搞个证书

有两种方式,一种是申请一个真正的证书,另外一种是用openssl生成一个自签名证书。官方建议使用真正的证书。

申请证书

直接使用Let’s Encrypt就可以了,可以参考如下命令

certbot certonly 

然后一步一步按照说明做

详细信息可以参考如下两篇

https://www.bennythink.com/letsencrypt-nginx-subdomain.html

https://letsencrypt.org/zh-cn/getting-started/

自签名证书

openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 3650 -out certificate.pem 

服务端配置,调试,运行

直接从GitHub Release下载二进制文件

wget https://github.com/trojan-gfw/trojan/releases/download/v1.13.0/trojan-1.13.0-linux-amd64.tar.xz tar xf trojan-1.13.0-linux-amd64.tar.xz cd trojan 

examples目录中有一个server.json-example,我们直接把他拷贝到上层目录

cp exmaples/server.json-example config.json 

配置文件的内容很简单,基本上只需要修改password字段和ssl字段就可以了

使用trojan翻越长城的进阶使用方法

运行

./trojan 

基本上没报错,在运行了就可以~

客户端配置运行

这里以PC为例,Android/iOS可以找找相应的工具

同样从GitHub Release下载对应的文件,解压缩,把client.json-example拷贝出来

我们只需要关注local_port、remote_addr、remote_port、passwordssl的几个字段

  • local_port 本地监听的端口,我这里设置为了11080,避免和本机的Shadowsocks冲突
  • remote_addr:申请的域名
  • remote_port:上面服务端配置的端口,一般来说就是443
  • password:密码,要与服务端配置的密码列表中的一个相符
  • ssl:如果你使用的是自签名证书,那么verify要写false,假如common name也是瞎写的,那么verify_hostname也要写false;假如用的是真证书,那么就都true就可以了

使用trojan翻越长城的进阶使用方法

然后./trojan运行就可以了,此时trojan会监听指定的端口,socks5,本例为11080

然后打开你的proxyswitchy omega,这么配置下就可以了

使用trojan翻越长城的进阶使用方法

更进一步,可以用proxy switchy omega的自动切换模式+GFWList

如果在Windows上运行提示缺少VCRUNTIME等,请安装相应的VC运行库,可以参考文末链接

测速

都在服务端开启了BBR的情况下进行的测试

使用Shadowsocks

使用trojan翻越长城的进阶使用方法

trojan

使用trojan翻越长城的进阶使用方法

速度还是很理想的,就是不知道稳不稳了。

进阶配置

使用BBR

偷懒,直接用秋水逸冰的吧

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh 

开启TFO(TCP Fast Open)

sysctl -w net.ipv4.tcp_fastopen=3 sysctl -p /etc/sysctl.conf cat /proc/sys/net/ipv4/tcp_fastopen 

结果为3就对了

然后服务端和客户端的tcp.fast_open都改成true

使用trojan翻越长城的进阶使用方法

配置systemd

创建文件,/etc/systemd/system/trojan.service或者/lib/system/system/trojan.service

apt install nginx 

0

自启

apt install nginx 

1

使用非root、non-login shell运行

新增用户

apt install nginx 

2

授予监听标准端口权限

由于1024以下端口默认只能由root监听,所以要让非root用户监听,大概有以下几个方法:

  • suid:chmod u+x /opt/trojan/trojan
  • iptables转发,确保开启转发net.ipv4.ip_forward=1,然后iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to:4433
  • CAP_NET_BIND_SERVICE setcap cap_net_bind_service=+eip /opt/trojan/trojan

system微调

apt install nginx 

3

使用HTTP/2

服务端alpn中加入h2,如下图所示

使用trojan翻越长城的进阶使用方法

当然客户端也要确保有这个h2哦~

TLS 1.3

已经支持啦,当然了,要你的openssl版本在1.1.1以上哦。对啦,cipher suite要改下,比如说

apt install nginx 

4

使用数据库做验证

更高级的配置,比如流量控制等,可以通过MySQL实现

在服务端配置最后的mysql字段,确保用户名密码正确,本机装好了MySQL

使用trojan翻越长城的进阶使用方法

然后进入mysqlcli,创建数据库、创建表、插入用户

apt install nginx 

5

trojan会先查询配置文件中的password字段,然后查询数据库中的字段。之后会去计算50+100<100(上传+下载是否小于限额),小于的话,允许链接。

上述SQL语句中,1024如果是负数,意味着不限额。

quota、download、upload单位都是字节

参考资料

项目主页https://github.com/trojan-gfw/trojan

teddysun一键bbr脚本 https://teddysun.com/489.html

dynuddns https://www.dynu.com

nginx与trojan https://github.com/trojan-gfw/trojan/issues/67

设计讨论 https://github.com/trojan-gfw/trojan/issues/14

VC运行库https://aka.ms/vs/16/release/VC_redist.x64.exe

https://github.com/RPCS3/rpcs3/issues/6646

配置文件详解https://trojan-gfw.github.io/trojan/config

android客户端 https://github.com/trojan-gfw/igniter

iOS:shadowrocket的test flight版

SSL证书配置:https://www.bennythink.com/letsencrypt-nginx-subdomain.html  https://letsencrypt.org/zh-cn/getting-started/

 


转载请注明:逗比根据地 » 使用trojan翻越长城的进阶使用方法

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址