trojan

一种新型的爬墙工具Trojan的安装

  • 本次博文将搭建两个爬墙工具,传统的ss和Trojan

Trojan和ss的分析(浅显的理解)

  • Trojan是一种伪装的方式,将我们的数据包伪装成传统意义上的https包,故墙在判断我们数据包的时候,一般就不会很为难数据包,同时因为现在该种协议的使用人比较少,故我们的IP被封掉的机会也会比较小。
  • ss/ssr因为使用的人数比较多了,很容易因为某些原因被封掉。而且根据最近的gfw的更新导致ss更有可能被封掉。
  • 故此次采用Trojan。反正就是用的人比较少。

Trojan安装

  • 第一步,安装Google最新的拥塞控制算法 bbr。

    • 1
      wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
    • 默认安装好就可以了,最好是使用centos7,避免了很多奇奇怪怪的问题

      • 查看安装好了没
    • 1
      lsmod | grep bbr
    • 返回值有 tcp_bbr 模块即说明 bbr 已启动

    • (感觉好像不是很有必要安装这个,但是提高效率嘛,添加上)
  • 第二步,一个域名解析到我们服务器的ip上。(Trojan是伪装成传统的https故需要有域名和ssl证书)

    • 域名我使用的是在我原来域名的基础上添加一个二级域名。(已有域名,forcebing.top==>二级域名=>trojan.forcebing.top)
    • 添加一个A级解析到相应的IP上
    • 'dns'
    • 'domain'
    • 我们再测试一下,ping trojan.forcebing.top
    • 得到相应的ip且能ping通就是好的
    • 'ping
  • 第三步,安装Trojan 网上的一键安装模板

    • 1
      curl -O https://raw.githubusercontent.com/atrandys/trojan/master/trojan_centos7.sh && chmod +x trojan_centos7.sh && ./trojan_centos7.sh
    • 这个按照提示走就可以了。中间输入你的域名,脚本自动帮你搞定ssl证书问题

    • 'install'
    • 最后返回一个安装好后的数据

    • 'zip'

    • 下载这个zip文件,里面有一个start.bat 和一个stop.bat。分别是启动和停止文件。(用于在客户端)
    • 配置文件位于 /usr/src/trojan/server.conf
    • 启动 systemctl start trojan
  • 第四步,本地chrome配置socket5软件

    • 'socket5'
    • 省略,不想写了。一些细节操作在sh文件中,可以看看,还挺有意义的。
  • 此外有见过一个脚本使用的时docker的方式安装Trojan,不用手动安装mysql和nginx和Trojan ,觉得还挺有意思的,但是因为没看到博主的玩整的wiki,然后换了现在这种方案。

ss安装(第二种爬墙姿势)

  • 安装
  • yum install python-setuptools && easy_install pip
  • pip install shadowsocks

  • 运行。

    • 创建文件。/etc/shadowsocks.json

    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      {
      "server":"my_server_ip",
      "server_port":8388,
      "local_address": "127.0.0.1",
      "local_port":1080,
      "password":"mypassword",
      "timeout":300,
      "method":"aes-256-cfb",
      "fast_open": false
      }
  • 运行

  • 1
    2
    ssserver -c /etc/shadowsocks.json -d start
    ssserver -c /etc/shadowsocks.json -d stop
  • -d的意思是后台运行。

  • 日志文件。/var/log/shadowsocks.log

启动方式的不同,查看ss和Trojan的启动不是很相同,故我决定将ss的启动方式改为Trojan的启动方式(加入到系统的service中)

  • Linux系统管理主要是service和systemctl两种,但是systemctl兼容service。但是service在centos7后就不再推荐使用了,而且确实service的启动脚本编写更复杂。
  • 对比trojan的service,我们编写ss的启动service。

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [Unit]  
    Description=ss
    After=network.target //
    [Service]
    Type=simple
    ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json start
    ExecReload=
    ExecStop=/usr/bin/ssserver -c /etc/shadowsocks.json stop
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
  • 可以提前了解一下service和systemctl两种启动脚本的不同

  • 这个地方不能采用后台运行的方式,系统会把后台的进程杀死,故我们start那个地方的代码直接start就可以,不用添加 -d参数