环境介绍

名称 版本
操作系统 Ubuntu 20.04

自动安装流程

使用下面命令一键安装,前提是将伪装的域名解析到你服务器公网ip即可

1
wget https://raw.githubusercontent.com/putianhui/public/master/proxy/install_trojan.sh && bash install_trojan.sh

手动安装步骤

手动准备配置和证书

准备trojan配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 创建Trojan-go目录
sudo mkdir -p /etc/trojan-go

# 生成并修改Trojan-go配置文件
sudo cat > /etc/trojan-go/config.json<<EOF
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"your_awesome_password"
],
"ssl": {
"cert": "/etc/trojan-go/trojan.crt",
"key": "/etc/trojan-go/trojan.key",
"sni": "your-domain-name.com"
}
}
EOF

"your_awesome_password" 设定Trojan的连接密码,sni为你解析到这台服务器公网ip的域名。

将你申请的https证书私钥命名为trojan.key公钥命名为trojan.crt放至上面配置文件中使用的/etc/trojan-go/目录下

docker安装Trojan-Go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 安装工具
apt-get install -y nginx curl wget

# 安装docker
curl -fsSL https://get.docker.com |sudo bash

# 生成docker配置文件
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://ub816mdv.mirror.aliyuncs.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

## 重启docker服务
systemctl daemon-reload && systemctl restart docker

# 启动nginx服务,将nginx及docker服务加入开机自启
systemctl start nginx && systemctl enable nginx && systemctl enable docker

# docker 启动Trojan服务
docker run -d --network host --name trojan-go --restart=always -v /etc/trojan-go:/etc/trojan-go teddysun/trojan-go

# 关闭防火墙
sudo ufw disable

systemctl stop firewalld

查看日志

1
2
# 出现下面日志即为成功
[INFO] 2022/09/16 10:36:42 trojan-go v0.10.6 initializing

客户端连接时使用的地址即为sni配置的域名,端口即为local_port配置的443端口。

当想更换链接端口时,修改config.json配置文件,把local_port中的443修改为你自定义端口,重启下docker的trojan-go容器即可。

开启BBR加速

Ubuntu开启BBR加速的前提是内核高于4.9,所以先检查内核版本:

1
uname -a  

如果版本高于4.9,那就可以直接开启BBR,如果低于,则按照以下步骤先更新内核版本(root权限)~ 首先确定你的系统是32位还是64位的:

1
getconf LONG_BIT 

修改系统变量:

1
2
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

如果执行以上命令时显示拒绝访问则可以尝试使用如下命令:

1
2
sudo bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
sudo bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'

保存生效:

1
sysctl -p

查看是否开启成功,执行如下命令:

1
sysctl net.ipv4.tcp_available_congestion_control

如果返回结果为:

1
net.ipv4.tcp_available_congestion_control = bbr cubic reno

那么恭喜你BBR开启成功了~

客户端使用配置

Clash当做Mac和win的客户端

1、Clash下载页下载你对应系统安装包双击或者解压安装即可。

1
2
3
# Mac下载地址:https://github.com/Fndroid/clash_for_windows_pkg/releases/download/0.20.5/Clash.for.Windows-0.20.5-arm64.dmg

# Win下载地址:https://github.com/Fndroid/clash_for_windows_pkg/releases/download/0.20.15/Clash.for.Windows.Setup.0.20.15.exe

2、下载clash我的配置文件模板,如果刚刚的模板下载失败可以用这个国内的配置文件模板下载地址修改# 代理服务器配置配置项下面的Trojan服务端信息为你自己部署信息并保存到一个随便的位置等下能找到导入即可)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 下载后打开文件修改下面的信息为你自己的,其他配置项默认即可
# 代理服务器配置
proxies:
- name: 'trojan-hk' # 起一个链接的名称,随意都可以
type: trojan # 这里是Trojan类型的服务器
server: hk.xxx.cn # Trojan服务地址
port: 1443 # Trojan服务端口
password: 123456 # Trojan服务端连接密码
# udp: true
sni: hk.xxx.cn # 填写Trojan伪装域名
alpn:
- h2
- http/1.1
skip-cert-verify: true # 跳过Trojan证书验证

3、打开Clash软件,选择配置、点击导入按钮然后选择你刚刚下载并修改好之后的配置模板文件

导入成功后选中你刚刚导入的配置文件,选中时配置文件名称左边为绿色

点击代理、点击一下Proxy,然后选择你刚刚导入服务器名称

右击clash系统状态栏的图标,点击System Proxy开启代理设置

此时就开启代理成功了,尝试浏览不可访问的页面是否能打开

注意:当你有不需要走代理的域名或者ip段要过滤掉时,你可以把不走代理域名或ip段添加到 设置系统代理绕过域/网络编辑里面即可。

Mac端

使用桌面软件配置

1、这里下载mac版客户端,添加自己Trojan服务器配置信息即可使用。

2、也可以下载Trojan-Qt5安装软件后配置服务器信息即可使用。

1
链接: https://pan.baidu.com/s/1XEofv43pQsTzsEIKfgEWZA 提取码: aqem 

Trojan官方客户端命令行加Chrome插件

安装Trojan-Client

下载Trojan-go的二进制包并解压

1
2
3
4
5
6
# 下载
$ wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.10.6/trojan-go-darwin-arm64.zip

# 解压
$ unzip trojan-go-darwin-arm64.zip
$ mv trojan-go-darwin-arm64 ~/trojan

修改客户端配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ cd ~/trojan
$ vim example/client.json
# 主要修改下面几个地方配置,其他默认即可。
{
"run_type": "client", # 修改为client类型
"local_addr": "0.0.0.0", # 服务本地监听所有ip地址
"local_port": 10887, # 本地代理服务器地址,后面在代理服务器端口里面用到
"remote_addr": "vpn.xxx.cn", # 你的Trojan服务器绑定域名
"remote_port": 1443, # 你的Trojan服务器使用的端口号
"password": [
"123456" # 你的Trojan服务器密码
],
"ssl": {
"verify": false, # 关闭https证书的验证
"verify_hostname": false, # 不验证主机名
"cert": "", # 空即可
"sni": "vpn.xxx.cn" # 你的Trojan服务器绑定域名
},
}

启动Trojan客户端服务

1
2
3
4
5
# 前台启动
./trojan-go -config ./example/client.json

# 丢到后台启动
nohup ./trojan-go -config ./example/client.json 2>&1 &

注意:浏览器使用代理时要注意Trojan客户端服务要一直是运行状态

安装 SwitchyOmega

首先你需要安装 SwitchyOmega可以在谷歌应用商店安装

安装完毕后应该会自动打开选项页面,之后按以下说明操作即可。

导入备份

首次打开插件选择跳过教程

按照下图,在导入导出页面点击从备份文件恢复。那么问题就来了,已经配置好的设置备份文件点击这里下载备份文件保存至你随便指定的位置。

下图中第三步会打开一个选择文件的对话框,这时候选择刚下载好的备份文件就行了。

设置代理服务器

这部分比较简单,在“GFWed”情景模式设置好前面安装Trojan-Client代理协议(HTTP)代理服务器地址(127.0.0.1)以及代理端口(local_port端口号)就好了。

更新规则列表

GFWList 项目是一个经常更新的项目,提供的规则列表也是需要定期下载更新的。还好 SwitchyOmega 项目有提供自动下载功能,可以应对变化迅速的网络环境。不过,既然马上就要用来上网,那自然是要 手动进行首次下载的 ,对不对?

记得先在菜单里选自动切换模式。 用直接连接或系统模式有可能会下载失败。为什么呢?因为规则列表网址本身也有可能需要代理才能访问

如果成功了,大概会像是图中这样

代理规则的选择

当代理模式选择自动切换时,默认GFW里面域名或者ip走代理的,当你访问一个即没在gfw列表又没在自定义规则里面的域名或ip时,代理右上角会提示你将当前网站域名添加条件(是走代理还是直接连接)。

你可以选择当前网站是走代理还是直接连接

此时你就可以愉快的上网了