主力Trojan,ShadowSocks备用

主力Trojan,ShadowSocks备用

技术本无罪,任何东西都是双刃剑(也可以是技术),所以请不要心怀鬼胎,更不要利用它来做非法的事情,传播任何危害与他人的言论和为自己的欲望牟取任何的利益。

Trojan引言

今天杂记中的Trojan【中文翻译成:木马】属于开源程序,在Github上可以找到其源码,Trojan的自述文件中有一句:An unidentifiable mechanism that helps you bypass GFW.大致的意思就是它使用无法确定的机制帮助我们绕过GFW的审查。这句话听起来就很厉害了,于是经过博主详细的各种查资料和阅读一部分源码,大致明白了我们的Trojan的是我们最常见的HTTPS,它让GFW防火墙认为它是HTTPS(把数据伪装成HTTPS数据流量)。哇塞,博主我当时眼睛一亮,脑门子一拍,马上将主要的服务器环境中Shadowsocks服务暂时并停止迁移到另外一个的稍差的服务器运行,以作备份,解不时之需。你问我为啥这样做?因为HTTP流量数万乃至上亿,GFW总不可能一个一个的去分析吧,而且我们访问的是正常状态的,没有任何政治色彩和利益的网站。

我们的Trojan客户端连接到服务器时,它首先执行真正的 TLS握手,如果握手成功,则所有后续流量都将受到保护TLS。否则,服务器将立即关闭连接,就像任何HTTPS服务器一样。

另外Trojan反侦查采用主动检测与被动检测这两种检测方式:

主动检测若是使用不正确的账号和密码连接到trojan服务器的所有连接将被重定向到预设端点,因此使用可疑的HTTP连接,Trojan服务器的行为与该端点完全相同。

被动检测由于流量受到保护TLS(用户有责任使用有效证书),如果您正在访问某个HTTP站点,则流量看起来与HTTPS(握手RTT后只有一个TLS)相同; 如果您没有访问某个HTTP站点,那么流量看起来就像HTTPS保持活动一样WebSocket。因此,木马也可以绕过ISP QoS限制。

接下来,我们将来构建一个属于自己的Trojan服务。

购买服务器

请访问https://bandwagonhost.com/aff.php?aff=39359来购买你的服务器,以获得更多的优惠。

另外记得安装Debian开启bbr加速。5.jpg

购买域名

推荐使用,Namesilo服务商,主要是便宜。

另外记得设置域名解析哦,不然之后没法用。

连接到服务器

www.netsarang.com官网下载一个Xshell安装并使用,通过SSH协议连接到服务器。

安装Nginx和Trojan-GFW

wget https://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
rm -rf nginx_signing.key
touch /etc/apt/sources.list.d/nginx.list

从Nginx官方源拉取二进制文件

cat > '/etc/apt/sources.list.d/nginx.list' << EOF
deb https://nginx.org/packages/mainline/debian/ $(lsb_release -cs) nginx
deb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -cs) nginx
EOF

请将debian改成ubuntu如果你使用ubuntu

sudo apt-get update && sudo apt-get install nginx -y

nginx.conf

sudo rm -rf /etc/nginx/sites-available/*
sudo rm -rf /etc/nginx/sites-enabled/*
sudo rm -rf /etc/nginx/conf.d/*
sudo touch /etc/nginx/conf.d/trojan.conf

新建server块的nginx配置文件

sudo vim /etc/nginx/conf.d/trojan.conf
server {
    listen       80;
    server_name  example.com; #填写你的域名,必须!
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

证书申请前的配置

sudo nginx -t

测试配置文件,出现OK即通过

sudo systemctl start nginx

修改完成后启动Nginx

sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install xz-utils -y
sudo bash -c "$(wget -O- https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

安装Trojan-GFW

安装acme脚本 用于自动申请以及续签Let's encrypt证书

sudo apt-get update && apt-get install curl -y&& apt-get install socat -y && curl https://get.acme.sh | sh
sudo mkdir /etc/trojan/

申请SSL/TLS证书

sudo ~/.acme.sh/acme.sh --issue --nginx -d example.com -k ec-256 --log --reloadcmd "systemctl reload trojan || true"

example.com换成你的域名并启动自动重载Trojan

安装证书

sudo ~/.acme.sh/acme.sh --installcert -d example.com --fullchainpath /etc/trojan/trojan.crt --keypath /etc/trojan/trojan.key --ecc
chmod +r /etc/trojan/trojan.key

example.com换成你的域名

更改Trojan配置

sudo vim /etc/nginx/conf.d/trojan.conf
server {
	listen 127.0.0.1:80; #放在Trojan后面即可做伪装也可以是真正的网站
    server_name example.com;
    location / {
    	root /usr/share/nginx/html/; #默认的根目录
        index index.html; #默认的html文件
        }
	add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; #HSTS标头
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    return 301 https://example.com; #301 https重定向
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 444;
}
sudo nginx -t

测试配置文件,出现OK即通过

sudo nginx -s reload

载入新Nginx配置

注:建议自行修改/usr/share/nginx/html/下的index.html等文件来使伪装更加真实

修改密码以及证书路径等内容

sed  -i 's/path/etc/g' /usr/local/etc/trojan/config.json
sed  -i 's/to/trojan/g' /usr/local/etc/trojan/config.json
sed  -i 's/certificate.crt/trojan.crt/g' /usr/local/etc/trojan/config.json
sed  -i 's/private.key/trojan.key/g' /usr/local/etc/trojan/config.json
sed  -i 's/password1/yourpasswd/g' /usr/local/etc/trojan/config.json
sed  -i 's/password2/yourpasswd/g' /usr/local/etc/trojan/config.json
sudo vim /usr/local/etc/trojan/config.json
{
    "run_type": "server",
    "local_addr": "::", //同时监听v4和v6
    "local_port": 443,
    "remote_addr": "127.0.0.1",
    "remote_port": 80,
    "password": [
        "password1",
        "password2"
    ],
    "log_level": 1,
    "ssl": {
        "cert": "/etc/trojan/trojan.crt", //自动化中已替换的证书路径
        "key": "/etc/trojan/trojan.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"
        ],
        "reuse_session": true,
        "session_ticket": true,
        "session_timeout": 600,
        "plain_http_response": "",
        "curves": "",
        "dhparam": ""
    },
    "tcp": {
        "prefer_ipv4": true,
        "no_delay": true,
        "keep_alive": true,
        "reuse_port": true,
        "fast_open": true,
        "fast_open_qlen": 20
    },
    "mysql": {
        "enabled": false,
        "server_addr": "127.0.0.1",
        "server_port": 3306,
        "database": "trojan",
        "username": "trojan",
        "password": ""
    }
}

如需禁用TLS1.2,cipher仅保留TLS1.3的cipher即可

sudo systemctl restart trojan
sudo systemctl enable trojan

对trojan实行重启和开启开机启动

journalctl -e -u trojan.service

Trojan日志查看方法,q退出

sudo nginx -s reload

重启Nginx 无输出则表示正常

配置完成后直接访问 你的域名 若看见Nginx Welcome Page就表明成功了!

【 TCP Turbo】

原理:启用BBR,TFO并禁用TCP慢启动提高吞吐量以及加快连接建立。

cat > '/etc/sysctl.d/99-sysctl.conf' << EOF
# Overrule forwarding behavior. Accept Router Advertisements
net.ipv6.conf.all.accept_ra = 2
# max open files
fs.file-max = 51200
# max read buffer
net.core.rmem_max = 67108864
# max write buffer
net.core.wmem_max = 67108864
# default read buffer
net.core.rmem_default = 65536
# default write buffer
net.core.wmem_default = 65536
# max processor input queue
net.core.netdev_max_backlog = 4096
# max backlog
net.core.somaxconn = 4096
# resist SYN flood attacks
net.ipv4.tcp_syncookies = 1
# reuse timewait sockets when safe
net.ipv4.tcp_tw_reuse = 1
# short FIN timeout
net.ipv4.tcp_fin_timeout = 30
# short keepalive time
net.ipv4.tcp_keepalive_time = 1200
# outbound port range
net.ipv4.ip_local_port_range = 10000 65000
# max timewait sockets held by system simultaneously
net.ipv4.tcp_max_tw_buckets = 5000
# turn on TCP Fast Open on both client and server side
net.ipv4.tcp_fastopen = 3
# TCP receive buffer
net.ipv4.tcp_rmem = 4096 87380 67108864
# TCP write buffer
net.ipv4.tcp_wmem = 4096 65536 67108864
# turn on path MTU discovery
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_max_syn_backlog = 12800
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
sudo sysctl -p

【Dnsmasq】

原理:缓存Dns加快重复网站访问速度

注:Trojan-GFW使用远程Dns解析,即调用服务器端Dns配置解析网站域名,配置Dnsmasq缓存可加快重复网站访问速度,比如Google等。

sudo apt-get install dnsmasq -y
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
sudo touch /etc/dnsmasq.conf
sudo cat > '/etc/dnsmasq.conf' << EOF
port=53
domain-needed
bogus-priv
no-resolv
server=8.8.4.4#53
server=1.1.1.1#53
interface=lo
bind-interfaces
cache-size=10000
no-negcache
log-queries 
log-facility=/var/log/dnsmasq.log 
EOF

仅监听本机

echo "nameserver 127.0.0.1" > '/etc/resolv.conf'

设定系统dns服务器为本机

sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq
sudo systemctl status dnsmasq

启动Dnsmasq并设置开机自启


回复列表



回复操作

正在加载验证码......

请先拖动验证码到相应位置

发布时间:2020-01-30 21:06:45

修改时间:2020-01-31 17:22:11

查看次数:705

评论次数:0