一种新型的爬墙工具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上
- 我们再测试一下,ping trojan.forcebing.top
- 得到相应的ip且能ping通就是好的
第三步,安装Trojan 网上的一键安装模板
1
curl -O https://raw.githubusercontent.com/atrandys/trojan/master/trojan_centos7.sh && chmod +x trojan_centos7.sh && ./trojan_centos7.sh
这个按照提示走就可以了。中间输入你的域名,脚本自动帮你搞定ssl证书问题
最后返回一个安装好后的数据
- 下载这个zip文件,里面有一个start.bat 和一个stop.bat。分别是启动和停止文件。(用于在客户端)
- 配置文件位于 /usr/src/trojan/server.conf
- 启动 systemctl start trojan
第四步,本地chrome配置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
2ssserver -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参数