介绍

  • 挂代理的目的这里不多说,通过搭建的Trojan客户端可以使用socks5进行代理访问
  • 使用代理的前提是需要有对应客户端的域名或者IP以及其端口
    如果配置了认证,那么还需要用户名和密码
  • 这里使用的只是本地IP和端口以及没有ssl的情况,也就是说需要
    • Trojan客户端的IP
    • Trojan客户端的端口
  • 本文使用的Linux环境是Ubuntu

socks5代理的客户端软件

【推荐】 Clash Verge是个跨平台的开源软件
下载:
Windows, MaxOS, Linux

Clash是个跨平台的软件
由于 Clash 及其部分周边生态项目于 2023 年 11 月上旬删库跑路,网络上可以找到部分官方原版安装包和可执行文件
下载:

Brook是个跨平台的软件,基本每个设备都可以使用
github开源地址

安卓端

  1. 安装后打开,配置界面右上角加号,然后选择要配置的类型,这里使用socks5
  2. 然后配置别名和自己的Trojan客户端的ip和端口
  3. 配置完成后选中该条目,然后点击右下角的图标进行链接即可
  1. 安装后打开,切换到Profiles 然后点击加号添加新的配置,这里需要本地有对应的规则文件,参考clash-rules
  2. 然后导入本地规则文件,并且点击让其选中[文件示例见本文末尾]
  3. 接着在首页选中VPN打开即可使用
  1. 安装好软件后配置Trojan客户端的ip和端口即可,因为不需要认证,所以用户名和密码留空即可
  2. 然后直接连接即可使用,不需要额外的必要配置,一般不用登录
  3. 缺点就是如果需要其他功能则需要先登录才能够使用

IOS端

  • Sing-Box
  • Shadowrocket
  • Brook
    简单方便,使用方式和安卓端相同,缺点也是相同
    注意IOS端的这两个软件国内区域不提供,需要使用美区ID进行下载,自行百度

Windows

  • Clash Verge
  • Clash
    • 安装好后打开先配置服务器和规则,参考clash-rules
      [文件示例见本文末尾]
      在本地新建文件写入配置规则,然后在 Proxies 界面导入该配置文件即可
      Windows Clash
    • 使用时在 General 打开TUN ModeSystem Proxy 选项即可,开机启动按需勾选即可
      Windows Clash

Linux

网上搜到的资料说Linux命令行直接配置环境变量就行:

1
2
3
export http_proxy=socks5://proxyAddress:port
export https_proxy=socks5://proxyAddress:port
export no_proxy=localhost,127.0.0.1,192.168.*

我在Ubuntu24上试了下,不管用!!!

  • 安装该软件,使用apt命令即可
    apt install -y proxychains

  • 修改配置文件/etc/proxychains.conf
    配置里默认是socks4,将其修改为socks5,然后跟Trojan客户端的ip和端口
    socks5 127.0.0.1 1080

  • 使用
    在你要代理执行的命令前加proxychains命令即可,例如想访问google网站
    curl www.google.com
    那么代理访问则是:
    proxychains curl www.google.com

这里使用privoxy是将socks5转换为http代理
使用http代理就可以直接环境变量进行使用了

  • 安装该软件,使用apt命令即可
    apt install -y proxychains

  • 修改配置文件/etc/privoxy/config

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # 修改监听的ip地址
    listen-address 0.0.0.0:8118

    # 设置socks5 转发,去掉注释,修改socks5的地址,注意后面的点不要删除
    forward-socks5 / 127.0.0.1:1080 .

    # 配置不走代理的本地地址
    forward 192.168.*.*/ .
    forward 10.*.*.*/ .
    forward 127.*.*.*/ .

    # 增加转发重试,默认为0
    forwarded-connect-retries 1

    # 可以修改最大客户端的连接数量
    max-client-connections 256

    # 用于开启和关闭广告过滤和内容过滤,默认是1表示开启
    toggle 0

    其他的参数可以根据自己喜好进行配置

  • 使用
    转换后就是http的代理了,直接配置即可,比如linux下的环境变量:

    1
    2
    3
    export http_proxy=http://proxyAddress:port
    export https_proxy=http://proxyAddress:port
    export no_proxy=localhost,127.0.0.1,192.168.*

    方便起见直接配置到~/.bashrc中:

    1
    2
    3
    alias proxyon="export http_proxy='http://proxyAddress:port/'; export https_proxy='http://proxyAddress:port/'; export no_proxy='localhost,127.0.0.1,192.168.*,.example.com'"
    alias proxyoff="unset http_proxy; unset https_proxy; unset no_proxy"
    proxyon

特殊场景下的socks5代理

一般情况下在windows下使用基本都是浏览器需要代理,而不需要全局进行代理,此时直接使用谷歌浏览器的插件即可
这里介绍使用谷歌浏览器插件SwitchyOmega进行配置使用
无代理情况下应该是无法访问插件商城的,所以需要离线安装谷歌插件,这块内容网上一堆教程,这里不讨论

  • 我这里安装的是V3版本,版本其实无所谓,不用纠结
    SwitchyOmega(V3)
  • 配置proxy,然后代理协议使用SOCKS5,代理服务器和端口就是配置的Trojan客户端的服务器IP和端口
    配置好后点击左下角的应用选项进行保存
    SwitchyOmegaConfig
  • 使用时需要将选项选择为刚刚配置的proxy,默认走的本地代理
    SwitchyOmegaConfig

配置完成后实现只有浏览器代理访问

在docker的配置文件里/etc/docker/daemon.json添加对应的代理配置然后重启docker即可

1
2
3
4
5
6
7
{
"proxies": {
"http-proxy": "socks5://127.0.0.1:1080",
"https-proxy": "socks5://127.0.0.1:1080",
"no-proxy": "192.168.0.0/24,10.0.0.0/24,127.0.0.0/8"
}
}

参考

Clash配置

Clash配置
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
external-controller: '127.0.0.1:9090'
dns:
enable: true
ipv6: false
default-nameserver: [223.5.5.5, 119.29.29.29]
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
use-hosts: true
nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
fallback: ['https://doh.dns.sb/dns-query', 'https://dns.cloudflare.com/dns-query', 'https://dns.twnic.tw/dns-query', 'tls://8.8.4.4:853']
fallback-filter: { geoip: true, ipcidr: [240.0.0.0/4, 0.0.0.0/32] }
proxies:
- { name: 'localsocks5', type: socks5, server: your_server, port: your_port_num }

proxy-groups:
- { name: local, type: select, proxies: [localsocks5] }

rule-providers:
reject:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400

icloud:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt"
path: ./ruleset/icloud.yaml
interval: 86400

apple:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt"
path: ./ruleset/apple.yaml
interval: 86400

google:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
path: ./ruleset/google.yaml
interval: 86400

proxy:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
path: ./ruleset/proxy.yaml
interval: 86400

direct:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
path: ./ruleset/direct.yaml
interval: 86400

private:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt"
path: ./ruleset/private.yaml
interval: 86400

gfw:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt"
path: ./ruleset/gfw.yaml
interval: 86400

tld-not-cn:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt"
path: ./ruleset/tld-not-cn.yaml
interval: 86400

telegramcidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt"
path: ./ruleset/telegramcidr.yaml
interval: 86400

cncidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt"
path: ./ruleset/cncidr.yaml
interval: 86400

lancidr:
type: http
behavior: ipcidr
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt"
path: ./ruleset/lancidr.yaml
interval: 86400

applications:
type: http
behavior: classical
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt"
path: ./ruleset/applications.yaml
interval: 86400

rules:
- DOMAIN-SUFFIX,mihoyo.com,DIRECT
- DOMAIN-SUFFIX,bing.com,DIRECT
- DST-PORT,22,DIRECT
- RULE-SET,applications,DIRECT
- DOMAIN,clash.razord.top,DIRECT
- DOMAIN,yacd.haishan.me,DIRECT
- RULE-SET,private,DIRECT
- RULE-SET,reject,REJECT
- RULE-SET,icloud,DIRECT
- RULE-SET,apple,DIRECT
- RULE-SET,google,local
- RULE-SET,proxy,local
- RULE-SET,direct,DIRECT
- RULE-SET,lancidr,DIRECT
- RULE-SET,cncidr,DIRECT
- RULE-SET,telegramcidr,local
- GEOIP,LAN,DIRECT
- GEOIP,CN,DIRECT
- MATCH,local