19.4.8更新权限配置
这里还是说在Debian上的搭建方式
首先建议你升级到Debian 10(buster):
apt update
apt dist-upgrade
cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i 's/stretch/buster/g' /etc/apt/sources.list #将stretch更换为你的codename
apt update
apt dist-upgrade
apt --purge autoremove
然后安装Trojan:
apt install trojan
Trojan的配置位于/etc/trojan.json
编辑它将"password":
内的值改为你自己的密码"cert":
和"key":
改为你网站的ssl证书和私钥
通过acme申请证书:
# 安装acme
curl https://get.acme.sh | sh
echo 'alias acme.sh=~/.acme.sh/acme.sh' >> ~/.bashrc
source ~/.bashrc
# 声明Cloudflare帐号与API KEY并申请证书(在这个[页面](https://www.cloudflare.com/a/profile)点击Global API Key--->View API Key即可看到):
export CF_Key="你的API KEY"
export CF_Email="你的邮箱"
acme.sh --issue --dns dns_cf -d google.com -d *.google.com #这里的google.com换成你的域名
# 安装证书:
mkdir -p /etc/letsencrypt/live/google.com/
acme.sh --installcert -d google.com \ # 记得更改域名
--key-file /etc/letsencrypt/live/google.com/privkey.pem \ # 记得更改域名
--fullchain-file /etc/letsencrypt/live/google.com/fullchain.pem \ # 记得更改域名
--reloadcmd "chown -R nginx:nginx /etc/letsencrypt/ && systemctl restart trojan" # 这里的nginx注意修改为nginx使用的用户名
(完整内容可以阅读这篇文章)
其他可保持默认
如果你使用Nginx,则建议将trojan服务(/lib/systemd/system/trojan.service)的运行用户修改为nginx或www-data(其它web server用对应的用户也可以):
...
User=nginx # 或www-data
...
否则将证书的权限开放出来(不建议):
chmod 755 -R /etc/letsencrypt/ # 记得修改acme.sh的--reloadcmd参数
启用服务:
systemctl enable trojan
systemctl start trojan
Trojan对于非Trojan客户端的请求都会转向服务端本地80端口(仍是443端口),这里选用nginx作为web服务器
apt install nginx
nano /etc/nginx/sites-enabled/default
所以nginx的配置不能写有监听443,监听在本地的80端口即可
至于其它配置照常写就行了(关于ssl证书等配置将无效)
如果你还希望运行v2ray则加上(因为trojan还没有像样的手机客户端,所以只能先跑个v2ray):
...
location /download {
proxy_redirect off;
proxy_pass http://localhost:1234;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
...
启动Nginx:
systemctl enable nginx
systemctl start nginx
V2ray的TLS+websocket+Nginx应该是最稳的方案之一了
但是延迟却比较感人,且因为GO未支持tls1.3还只能用tls1.2
wget https://install.direct/go.sh -O v2ray.sh
bash v2ray.sh
更改配置:
rm /etc/v2ray/config.json
nano /etc/v2ray/config.json
写入(请注意并删除中文注释):
{
"outbound": {
"streamSettings": null,
"tag": null,
"protocol": "freedom",
"mux": null,
"settings": null
},
"log": {
"access": "/var/log/v2ray/access.log",
"loglevel": "info",
"error": "/var/log/v2ray/error.log"
},
"outboundDetour": [{
"tag": "direct",
"protocol": "freedom",
"settings": null
},
{
"tag": "blocked",
"protocol": "blackhole",
"settings": null
}
],
"inbound": {
"streamSettings": {
"network": "ws",
"kcpSettings": null,
"wsSettings": {
"path": "/download" #这里必须和Nginx配置中"/download"的路径一样
},
"tcpSettings": null,
"tlsSettings": {},
"security": ""
},
"settings": {
"ip": null,
"udp": true,
"clients": [{
"alterId": 100,
"security": "none",
"id": "xxxx-xxxx-xxxx-xxxx" #请访问 https://www.uuidgenerator.net/ 获取UUID并改入
}],
"auth": null
},
"protocol": "vmess",
"port": 1234, #这里的端口也必须和Nginx配置中"/download"的端口一样
"listen": null
},
"inboundDetour": null,
"routing": {
"settings": {
"rules": [{
"ip": [
"0.0.0.0/8",
"10.0.0.0/8",
"100.64.0.0/10",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12",
"192.0.0.0/24",
"192.0.2.0/24",
"192.168.0.0/16",
"198.18.0.0/15",
"198.51.100.0/24",
"203.0.113.0/24",
"::1/128",
"fc00::/7",
"fe80::/10"
],
"domain": null,
"type": "field",
"port": null,
"outboundTag": "blocked"
}],
"domainStrategy": null
},
"strategy": "rules"
},
"dns": null
}
# 你可真鸡儿长
启动V2ray服务:
systemctl enable v2ray
systemctl start v2ray
Cient配置文件示例(注意并删除中文注释):
{
"run_type": "client",
"local_addr": "127.0.0.1",
"local_port": 这里为你本地的socks5代理端口,例如1080,
"remote_addr": "这里改为你网站的地址,例如google.com",
"remote_port": 这里改为你的端口,例如443,
"password": ["这里改为你的密码"],
"append_payload": true,
"log_level": 1,
"ssl": {
"verify": true,
"verify_hostname": true,
"cert": "",
"cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA",
"sni": "这里改为你网站的地址,例如google.com",
"alpn": [
"h2",
"http/1.1"
],
"reuse_session": true,
"curves": "",
"sigalgs": ""
},
"tcp": {
"keep_alive": true,
"no_delay": true,
"fast_open": true,
"fast_open_qlen": 5
}
}
当然,你可以使用这个生成配置:https://trojan-gfw.github.io/trojan-config-gen/
记得启用服务:
Gentoo:
rc-update add trojan default
rc-service trojan start
systemd:
systemctl enable trojan
systemctl start trojan
如果你的Server有ipv6 IP
修改/etc/gai.conf
加入或去掉注释以下内容然后重启网络(简单重启也行):
precedence ::ffff:0:0/96 100
Telegram Group
Telegram Channel
这货配置文件太鸡儿长了
对于json配置我还是直接丢链接吧:https://github.com/KiriKira/vTemplate
这里说下V2ray手动配置(Android客户端为例,不建议直接导入使用json配置):
###服务器###
主机:域名(无路径)
端口: 443
用户ID:填server的UUID
Alterid: 100
加密方式:none
用户等级: 0
网络: WebSocket 或 ws
加密方式: tls
服务器证书域名: 不填
允许不安全连接: 关闭
WebSocket或ws路径: /download
HTTP头: 不填
[...]!function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=[...]
大神换波友链
okay,加上啦
不是说代理问题么?
请问Caddyfile怎么设置才能转到Trojan啊?
caddy不要用443端口(HTTPS)因为trojan要用443端口,挂在80端口(HTTP)就行了(Trojan会代理过去)。(域名/IP后面加“:80”,且不要指定用https://)
还有一个问题,这样配的话,blog、file这些子域名怎么配呢?
我也没有在yangmame.org上使用trojan,建议用子域名在别的server上搭建或者另外搞个域名(免费域名比如.tk)
如果没有其它域名,可以用通配证书(即所有子域名都可以用一张证书)然后这些域名的caddy配置全部用http就行了 caddy不用配置任何HTTPS/SSL相关的配置。不过还是不建议拿trojan当所有子域名的HTTPS服务端,具体怎样分隔看你自己需求了
试了下好象有问题 这样的blog.yangmame.org:80 { ...
谢谢,试了这样确实可以。
sed -i 's/stretch/buster/g' /etc/apt/sources.list #将stretch更换为你的codename
codename是什么???
你理解成版本代号就行了
现在IOS端已经有3个APP支持trojan协议了呀~ Debian就唯一有你这个教程。但我这种小白可能不太好接受。假如能更大众化一些的话你这个博客会上热搜了啊。
有三个了嘛?我怎么只看到俩个有支持了 能说下嘛?
火箭、圈、pharos
比如stretch和buster就是debian的两个codename
因缺思厅。。貌似有点意思
不存在留不留,有无,cnx不管怎么说,可说任何任何都可
回复测试(邮箱)