自建最强科学上网3:trojan + Caddy
【美博翻墙2019.12.27】编注:为解决SSL证书续期问题,已经更新此教程,请参考新教程:
自建最强科学上网3+:trojan + Caddy(SSL证书自动续期)
trojan是较新的代理项目,目前网上trojan+Caddy的构建详细教程极少,美博测试后发布此方法与网友分享。
trojan 采用常见的协议HTTPS,没有使用特别的协议,trojan监听443端口,其思路是把 trojan代理数据伪装成正常的 HTTPS 通信,对于其他访问数据则直接转发到80端口,通过caddy、Nginx等web服务器提供网页访问服务,当trojan客户端连接到服务器时,首先执行真正的 TLS 握手,若握手成功,则所有后续流量都将受到保护TLS; 否则服务器就立即关闭连接,就像任何HTTPS服务器一样。这样VPS更像一个正常的web服务器,使得 GFW 认为是 正常HTTPS。trojan反侦查采用主动检测与被动检测,而不会被识别出来。caddy+trojan一起合用是很好的组合,trojan绑定在0.0.0.0:443上,转发非trojan流量到 caddy 达到掩护的目的。caddy绑定在0.0.0.0:80上,并自动重定位到https加密浏览。
官方项目主页:
GitHub - trojan-gfw/trojan: An unidentifiable mechanism that helps you bypass GFW. https://github.com/trojan-gfw/trojan
------------- 美博翻墙(allinfa.com)发布的几个目前最好的自建代理,可自行选择使用: 自建最强科学上网5+:V2ray + Caddy + Tls + HTTP/2 自建最强科学上网4:NaiveProxy + Caddy 自建最强科学上网3:trojan + Caddy 自建最强科学上网2+:V2Ray + Caddy + Tls + WebSocket 美博点评:V2Ray、trojan、NaiveProxy代理的异同及相关问题 美博认为这几个组合都是目前翻墙思路最好、最强的翻墙方法,可等同使用。 -------------
本方法代理构建的系统要求:Ubuntu ≧ 16.04 or Debian ≧ 9,建议使用 Debian 10,不适用于 CentOS 。
本方法以Caddy作为前端web服务器,是一个轻便的web部署工具,其功能与 nginx 类似。其优点是:单文件,无依赖,安全、轻量、方便;安装快速、不到30秒可创建一个 HTTPS 服务器;不受制于EE的版本限制,可广泛应用于各种系统;配置文件简洁,多站点配置、反向代理等功能都在一个 Caddyfile 文件里配置;默认启用HTTPS,自动签发免费的 Let's Encrypt https 证书并自动续约,默认支持HTTP/2(H2)网络协议;还有丰富的插件系统,可以快速配置缓存、CORS、自动拉取 Git 仓库、Markdown 支持、ip/地区过滤等功能。
本文有关的几个概念介绍:
trojan:以常见的https协议构建的绕过网络限制、审查、翻墙的工具。
Caddy:作为部署代理的前端web服务器。
HTTP/2(H2):是互联网HTTP网络协议的主要修订版。它源自Google最初开发的实验SPDY协议。
TLS:安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。
反向代理:相对正向代理而言,真实的web服务器受到保护、对外不可见,外网只能看到反向代理,而反向代理服务器上并没有真实数据,从而保护web服务器的资源安全,并可加速网站访问速度等。
本教程按照实际制作过程進行描述:
一、选择 VPS 服务器并安装系统
购买VPS并安装系统,请见教程:
自己搭建代理服务器:VPS的选择 自己搭建代理服务器:Vultr VPS 购买图文教程 自己搭建代理服务器:Vultr VPS 系统安装图文教程
请记住VPS安装系统后得到的: ip地址、 密码、 用户名(默认是root),后面会用到。
二、购买域名并设置与服务器ip关联
请参考教程:
自己搭建代理服务器:域名购买及设置与ip服务器关联
域名是为了建立网站(网页)用的,本方法实际建立一个网站(网页),将翻墙代理隐身其中,翻墙就像是实实在在的在浏览网站,消除代理的特征信号,提高翻墙代理安全性,这样的思路一直以前的翻墙软件难以实现的,trojan也实现了这个愿望,成为目前最好的翻墙方法系列之一。
三、用SSH工具连接VPS服务器
用SSH工具连接VPS服务器后,可以输入各种指令(命令)来安装系统、安装各种应用程序
在自家电脑上通过安全的SSH连接到远端的VPS服务器,就可以发出各种指令(命令)来安装系统、安装各种应用程序,包括建立代理的各种组件等等。在电脑上安装XShell软件来实现SSH连接非常方便,美博园推荐这个工具。
请参考:SSH连接软件-Xshell下载及使用教程
如果你使用的是Linux或macOS系统,本身就内置有SSH链接的终端模拟器,无需下载额外的软件。
=========== 几点说明 =========
# 本文方法以root用户来构建,建议不熟悉改变命令的网友不要自建用户,否则此法的很多命令将不可用。 # 新手注意:以下命令都是在英文半角输入完成,电脑的输入法不要处于中文输入状态,以免无意输入中文字符出错。 # 在执行下面各种命令时,首先都是要以root用户登录SSH连接VPS服务器,然后输入各种命令来执行。 # 下面的步骤,如果不明白其中命令的含义没有关系,请按照下面的全部顺序,有的步骤是不能移动顺序的,一步一步输入命令完成即可。
==============================
四、更新及优化系统
购买VPS时已经选择了安装系统,首先我们要输入指令更新系统:
4-1、更新系统
依次输入【每输入一行都要回车(按[Enter])】:
apt update
apt -y upgrade
注:以下每个命令输入后都要按[Enter] 回车执行,下面不再重复注明。
4-2、调整系统控制参数
nano是Linux的一款文本编辑器,如同windows系统中的记事本、写字板、EmEditor等文字编辑器一样的作用。
输入
nano /etc/sysctl.conf
编辑器打开后会有一个#绿色光标,这是可输入内容的位置,都是象这样子:
请注意一下使用nano编辑器和粘贴命令的规范操作,新手常常输入出错:
打开编辑器后,在#绿色光标处,先按enter回车,就会增加一空行;
再按“左方向键←” 让绿色光标上移到空行处;
然后,点鼠标右键,在右键菜单中点“粘贴”,不要使用ctrl+v来粘贴;
这样就可以看到上述设置内容粘贴到nona编辑器中新增的空行处了。
请记住:以下nano编辑操作都要如上所述。
4-3、调整系统控制参数
为代理服务器优化配置,将以下配置内容粘贴到上面命令打开的/etc/sysctl.conf文件的绿色光标处
# max open files fs.file-max = 51200 # max read buffer net.core.rmem_max = 67108864 # max write buffer net.core.wmem_max = 67108864 # default read buffer net.core.rmem_default = 65536 # default write buffer net.core.wmem_default = 65536 # max processor input queue net.core.netdev_max_backlog = 4096 # max backlog net.core.somaxconn = 4096 # resist SYN flood attacks net.ipv4.tcp_syncookies = 1 # reuse timewait sockets when safe net.ipv4.tcp_tw_reuse = 1 # turn off fast timewait sockets recycling net.ipv4.tcp_tw_recycle = 0 # short FIN timeout net.ipv4.tcp_fin_timeout = 30 # short keepalive time net.ipv4.tcp_keepalive_time = 1200 # outbound port range net.ipv4.ip_local_port_range = 10000 65000 # max SYN backlog net.ipv4.tcp_max_syn_backlog = 4096 # max timewait sockets held by system simultaneously net.ipv4.tcp_max_tw_buckets = 5000 # TCP receive buffer net.ipv4.tcp_rmem = 4096 87380 67108864 # TCP write buffer net.ipv4.tcp_wmem = 4096 65536 67108864 # turn on path MTU discovery net.ipv4.tcp_mtu_probing = 1 # for high-latency network net.core.default_qdisc=fq net.ipv4.tcp_congestion_control = bbr
退出nano编辑状态
注:下面凡是用到nano编辑命令的,退出nano编辑状态都是这个办法。
输入上述内容后,如何退出nano编辑状态
同时按 Ctrl + X 若询问你是否储存档案 (Save modified buffer? (Answering "No" will DISCARD changes.)) , 输入 y 再按 Enter(回车),就可以退出nano编辑状态了。
4-5、激活更改
输入:
sysctl -p
4-6、编辑安全限制配置文件
4-6-1、将文件数限制增加到51200
输入
nano /etc/security/limits.conf
如上所述,打开编辑器后,在#绿色光标处,先按enter回车,就会增加一空行;
再按“左方向键←” 让绿色光标上移到空行处;
然后,点鼠标右键,在右键菜单中点“粘贴”,不要使用ctrl+v来粘贴;
这样就可以看到上述设置内容粘贴到nona编辑器中新增的空行处了。
* soft nofile 51200 * hard nofile 51200
然后,同时按 Ctrl + X,再按y,再按 Enter(回车),退出nano编辑状态。
4-6-2、将当前文件数限制设置为51200
输入:
ulimit -SHn 51200
4-6-3、编辑永久配置文件:
输入:
nano /etc/profile
如上所述,打开编辑器后,在#绿色光标处,先按enter回车,就会增加一空行;
再按“左方向键←” 让绿色光标上移到空行处;
然后,点鼠标右键,在右键菜单中点“粘贴”,不要使用ctrl+v来粘贴;
这样就可以看到上述设置内容粘贴到nona编辑器中新增的空行处了。
ulimit -SHn 51200
然后,同时按 Ctrl + X,再按y,再按 Enter(回车),退出nano编辑状态。
五、安装 Caddy
5-1、先安装Web数据传输实用程序curl
输入:
apt install curl
若询问 Do you want to continue? [Y/n]
就按
y
继续安装直到完成。
--- 补充说明 开始 ---
有网友提醒:在谷歌云(GCP,Google Cloud Platform)上的debian系统没有自带wget。
如果你使用的是谷歌云,在这里安装caddy之前,在此步需要先安装wget
若你使用的其它VPS也遇到无法安装caddy,提示:wget: command not found
也可以试用下面方法:
输入:
sudo apt-get install yum
再输入:
yum -y install wget
--- 补充说明 结束 ---
5-2、安装Caddy个人使用版本
说明:因caddy停止下载v1版,本教程修正此替代安装方法,文件为官方原版,安装连接由美博产生,是安全可靠的。但此处安装链接可能不定时改变,敬请安装时,浏览本文当下的安装指令。
依次输入:
wget -P /usr/local/bin "https://daofa.cyou/c1/caddy.tar"
tar -xvf /usr/local/bin/caddy.tar -C /usr/local/bin
rm /usr/local/bin/caddy.tar
5-3、确定caddy文件安装在何处
输入:
whereis caddy
显示为:
root@vmi:~# whereis caddy
caddy: /usr/local/bin/caddy
5-4、赋予所有权和权限
#root拥有caddy文件防止其他账户修改
输入:
chown root:root /usr/local/bin/caddy
#修改权限为755,root可读写执行,其他账户不可写
输入:
chmod 755 /usr/local/bin/caddy
5-5、允许Caddy绑定到特权端口
#Caddy不会由root运行,使用setcap允许caddy作为用户进程绑定低号端口(服务器需要80和443)
输入:
setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
5-6、www-data的组和用户
检查名为www-data的组和用户是否已经存在
输入:
cat /etc/group | grep www-data
显示为:
root@vm:~# cat /etc/group | grep www-data
www-data:x:33:
输入:
cat /etc/passwd | grep www-data
显示为:
root@vm:~# cat /etc/passwd | grep www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
注意:你的显示结果与上面一样,就不需要下面输入;如果显示不一样、其组和用户不存在,则需要创建它们,如下操作:
输入:
groupadd -g 33 www-data
输入:
useradd -g www-data --no-user-group --home-dir /var/www --no-create-home --shell /usr/sbin/nologin --system --uid 33 www-data
5-7、为 Caddy 创建目录
#创建文件夹存储Caddy的配置文件
输入:
mkdir /etc/caddy
#创建文件夹存储Caddy所管理的站点证书
输入:
mkdir /etc/ssl/caddy
#允许root及www-data组访问相关文件,允许Caddy写入站点证书文件夹
依次输入【每输入一行都要回车(按[Enter])】:
chown -R root:root /etc/caddy
chown -R root:www-data /etc/ssl/caddy
chmod 770 /etc/ssl/caddy
#创建记录文件
依次输入【每输入一行都要回车(按[Enter])】:
touch /var/log/caddy.log
chown root:www-data /var/log/caddy.log
chmod 770 /var/log/caddy.log
六、创建网站(网页)
6-1、为您的网站创建目录
#如果默认站点根目录不存在,创建以下文件夹
输入:
mkdir -p /var/www/html
#允许www-data组拥有站点文件夹
输入:
chown -R www-data:www-data /var/www
#创建空的Caddy配置文件
输入:
touch /etc/caddy/Caddyfile
6-2、向网站添加内容
基本上有二种方式,一种是建立一个简单的网页,另一种是建立一个实实在在的简易网站,可以装一些内容。当用域名访问时,是可以看到真实内容的。美博这里先介绍创建一个简单网页的方法。
6-2-1、创建网站方法
这里只是给朋友们提供一个思路去自己处理:
本方法的掩护网站建立的位置在 /var/www/html/ 目录中,其中网页启动文件是 index.html。
了解网站的网友知道,你自己可以在网上找到很多网站模板(主题)程序,到处都有网站模板(主题)演示,下载一个模板(主题)后,把其全部文件(只要里面的内容文件,不要模板(主题)名目录)复制到 /var/www/html/ 目录中,其中的 启动文件 index.html 一定要在 html/ 目录下,不要放在其它子目录中,就OK了。
如何将本地电脑的网站模板文件上传到指定的服务器 /var/www/html/ 目录中,请参考教程:
WinSCP:连接远端服务器的管理传输工具的使用教程
建议:不要变动以上的网站目录结构(路径),不然就可能需要更改目录路径和重新设置安装本文一些其它步骤。
6-2-2、创建一个网页
这个方法简单,可以广泛采用这个方法。
先特别说明:里面的中文字内容,请不要千篇一律的复制,可任意改为你自己编辑的独一无二的、普通的、无敏感词的内容,如:诗词、图片、外文等等,
6-2-2-1、首先创建一个作为掩护的真正的网页
输入:
touch /var/www/html/index.html
6-2-2-2、编辑网页文件
输入:
nano /var/www/html/index.html
将以下内容粘贴到 #绿色光标处
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1 style="font-family: sans-serif"> 这里是标题,这些中文字可改为你自己的任何语言的任何内容 </h1> 这里是网站网页正文内容, 这些中文字可改为你自己的任何语言的任何内容 添加多少内容都可以 代码部份不要改动,是一个简易网页的结构 网站网页正文内容-结束 </body> </html>
注:图片加入的格式为:<img src="你的图片链接" />,可以加入多张图片,图文并茂更好,图片插入的位置可以在你的正文内容(即上例所示的中文字部份)的“任意”位置。
总之,就是改为你自己知道的唯一的内容, 重申:其中不要有敏感字词。
同上【4-2、调整系统控制参数】所述:nano编辑器和粘贴的的规范操作:
打开编辑器后,在#绿色光标处,点鼠标右键,在右键菜单中点“粘贴”,不要使用ctrl+v来粘贴;
这样就可以看到上述设置内容粘贴到nona编辑器中新增的空行处了。
然后,按老规矩退出nano编辑状态:
同时按 Ctrl + X
若询问你是否储存档案,按下 y
再按 Enter(回车),退出nano编辑状态。
七、设置SystemD服务
7-1、安装SystemD服务,配置 caddy.service
由于caddy准备抛弃caddy v1,所以后来的配置文件一改再改。我们自己来创建这个配置文件,比较稳妥实用,这个就不依赖于 caddy.service 的官方下载。
1)、创建 caddy.service 空文件
输入:
touch /etc/systemd/system/caddy.service
2)、在nano编辑器中打开caddy.service
输入:
nano /etc/systemd/system/caddy.service
3)、编辑caddy.service配置
将下面内容“原封不动”的复制出来,然后右键粘贴到nano编辑框中
[Unit] Description=Caddy HTTP/2 web server Documentation=https://caddyserver.com/docs After=network-online.target Wants=network-online.target systemd-networkd-wait-online.service ; Do not allow the process to be restarted in a tight loop. If the ; process fails to start, something critical needs to be fixed. StartLimitIntervalSec=14400 StartLimitBurst=10 [Service] Restart=on-abnormal ; User and group the process will run as. User=www-data Group=www-data ; Letsencrypt-issued certificates will be written to this directory. Environment=CADDYPATH=/etc/ssl/caddy ; Always set "-root" to something safe in case it gets forgotten in the Caddyfile. ExecStart=/usr/local/bin/caddy -log stdout -log-timestamps=false -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp ExecReload=/bin/kill -USR1 $MAINPID ; Use graceful shutdown with a reasonable timeout KillMode=mixed KillSignal=SIGQUIT TimeoutStopSec=5s ; Limit the number of file descriptors; see `man systemd.exec` for more limit settings. LimitNOFILE=1048576 ; Unmodified caddy is not expected to use more than that. LimitNPROC=512 ; Use private /tmp and /var/tmp, which are discarded after caddy stops. PrivateTmp=true ; Use a minimal /dev (May bring additional security if switched to 'true', but it may not work on Raspberry Pi's or other devices, so it has been disabled in this dist.) PrivateDevices=false ; Hide /home, /root, and /run/user. Nobody will steal your SSH-keys. ProtectHome=true ; Make /usr, /boot, /etc and possibly some more folders read-only. ProtectSystem=full ; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there. ; This merely retains r/w access rights, it does not add any new. Must still be writable on the host! ReadWritePaths=/etc/ssl/caddy ReadWriteDirectories=/etc/ssl/caddy ; The following additional security directives only work with systemd v229 or later. ; They further restrict privileges that can be gained by caddy. Uncomment if you like. ; Note that you may have to add capabilities required by any plugins in use. ;CapabilityBoundingSet=CAP_NET_BIND_SERVICE ;AmbientCapabilities=CAP_NET_BIND_SERVICE ;NoNewPrivileges=true [Install] WantedBy=multi-user.target
然后,按老规矩退出nano编辑状态:
同时按 Ctrl + X
若询问你是否储存档案,按下 y
再按 Enter(回车),退出nano编辑状态。
7-2、设置caddy.service权限
输入:
chown root:root /etc/systemd/system/caddy.service
输入:
chmod 644 /etc/systemd/system/caddy.service
7-3、重载systemd使其检测到新安装的Caddy服务
输入:
systemctl daemon-reload
八、配置 Caddy
8-1、加入Caddy配置文件
输入:
nano /etc/caddy/Caddyfile
请注意,先要修改下面紫红色标记的“域名”、“信箱”为你自己的资料(下面有详细说明)
然后再将内容粘贴到 #绿色光标处
这里举例用一个二级域名 tro.abcdef.com
tro.abcdef.com { tls 12345@gmail.com log /var/log/caddy.log root /var/www/html }
然后,同时按 Ctrl + X,再按y,再按 Enter(回车),退出nano编辑状态。
说明: 1)tro.abcdef.com:要改为你自己的域名,若是这样的二级域名,其正确解析请参考前文【自己搭建代理服务器:域名购买及设置与ip服务器关联】; 2)12345@gmail.com:要改为你自己的邮箱,Caddy将自动与Let's Encrypt联系以获取SSL证书并在90天到期后自动更新证书; 3)Caddy将自动与Let's Encrypt联系以获取SSL证书。它将证书和密钥放在“/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/你自己的域名/” 目录中; 4)此文件保存后,Caddy会随即向Let's Encrypt发出SSL证书申请,一般很快在一分钟就可完成,但可能有人会遇到特殊情况比较久一些才会完成。
8-2、赋予Caddy配置文件权限
#给它适当的所有权和权限:
输入:
chown root:root /etc/caddy/Caddyfile
输入:
chmod 644 /etc/caddy/Caddyfile
8-3、启动Caddy
#启动Caddy
输入:
systemctl start caddy
8-4、检查Caddy启动状态
要检查Caddy是否正在运行并且正在侦听端口80和443,可输入:
systemctl status caddy
你应该看到这样子的结果,如看到如下绿色字 active (running),表明 caddy已经启动:
8-5、检查SSL证书是否生效及效果
上面Caddy配置是否生效,SSL证书是否已经生成,到这里要进行检查,这在trojan构建时是需要做的。因为SSL证书没有生成,后面是不能成功搭建trojan代理的。而且,上面这一步的Caddyfile配置是专为你的域名生成证书,在后面会删除这个设置,所以,这一步一定要检查SSL证书已经生成才可以往下面的步骤走。
检查很简单:
1)、在浏览器中用 https://你的域名
如果已经可以访问你的网站,显示你自己建的网站内容,就表明SSL已经安装成功了。
因有时SSL证书申请要等几分钟,如果没有马上生效,可稍等一下。
2)、如果要進一步看看SSL效果,可以在 SSL Labs网站查看
https://www.ssllabs.com/ssltest/
在其中输入自己的域名,可以检测一下https配置评分。
8-6、自启动Caddy
若上一步启动无问题则可启用开机自启动Caddy
输入:
systemctl enable caddy
显示为:
Created symlink /etc/systemd/system/multi-user.target.wants/caddy.service → /etc/systemd/system/caddy.service.
8-7、若Caddy没有正常启动的记录查看
注意:如果Caddy无法正常启动,则可以查看日志数据以帮助找出问题。如果已经启动,不需要此步检查。
输入:
journalctl --boot -u caddy.service
8-8、修改 Caddy 配置会用到的相关命令 -- 此节只是说明
注:此节内容不需要接上下步骤操作,只是修改配置文件时才需要
若caddy没有正常启动,检查到前面的步骤中某一步骤有输入错误等,要修改 Caddyfile、caddy.service等等文件,那么就会用到的一些命令:
修改前,
一般要先停止Caddy服务:
caddy -service stop
修改完成后:
重载systemd使其检测到新安装的Caddy服务
systemctl daemon-reload
启动Caddy服务:
caddy -service start
或
重启Caddy服务:
caddy -service restart
查看启动状态
systemctl status caddy
若不需要、或安装错误Caddy服务,可卸载再重新安装
卸载Caddy服务:
caddy -service uninstall
九、安装trojan
trojan官网(Github 页面)
https://github.com/trojan-gfw/trojan
注意trojan在不同的系统及不同版本的安装命令不同,请参考官方命令说明:
https://github.com/trojan-gfw/trojan/wiki/Binary-&-Package-Distributions
但,我们可以方便使用trojan的官方一键脚本(Quickstart Script),适用于所有系统:
输入:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"
显示:
……
Unpacking trojan 1.15.1...
Installing trojan 1.15.1 to /usr/local/bin/trojan...
Installing trojan server config to /usr/local/etc/trojan/config.json...
Installing trojan systemd service to /etc/systemd/system/trojan.service...
Reloading systemd daemon...
Deleting temp directory /tmp/tmp.67e2QFtgnb...
Done!
注意:在配置完成前,不要启动trojan,也无法启动。
十、配置Caddyfile
# 转发caddy
由于caddy也占用了443端口,需要修改caddy的配置文件,让caddy转为监听80端口
# 先关闭caddy
输入:
service caddy stop
# 先备份原配置文件
输入:
cp /etc/caddy/Caddyfile /etc/caddy/Caddyfile.bak
# 再删除原配置并打开编辑器
输入:
rm /etc/caddy/Caddyfile && nano /etc/caddy/Caddyfile
# 修改Caddyfile配置文件
将下面的内容原封不动的复制、粘贴到绿色光标处
:80 { root /var/www/html gzip browse }
然后,同时按 Ctrl + X,再按y,再按 Enter(回车),退出nano编辑状态。
# 再启动caddy
依次输入:
systemctl daemon-reload
service caddy start
查看启动状态
systemctl status caddy
十一、服务器端配置文件
(一)服务器配置文件修改
因按照本方法的配置文件,美博已经修改好了,就直接给出修改内容。
# 先备份原没有设置的服务器配置文件
输入:
cp /usr/local/etc/trojan/config.json /usr/local/etc/trojan/config.json.bak
# 再删除原配置并打开编辑器
输入:
rm /usr/local/etc/trojan/config.json && nano /usr/local/etc/trojan/config.json
将下面的内容复制、粘贴到绿色光标处
请注意,先要修改下面紫红色标记的“密码”、“域名”为你自己的资料(下面有详细说明)
然后再将内容粘贴到 #绿色光标处
{ "run_type": "server", "local_addr": "0.0.0.0", "local_port": 443, "remote_addr": "127.0.0.1", "remote_port": 80, "password": [ "你设定的密码", "" ], "log_level": 1, "ssl": { "cert": "/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/你的域名/你的域名.crt", "key": "/etc/ssl/caddy/acme/acme-v02.api.letsencrypt.org/sites/你的域名/你的域名.key", "key_password": "", "cipher": "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256", "prefer_server_cipher": true, "alpn": [ "http/1.1" ], "reuse_session": true, "session_ticket": false, "session_timeout": 600, "plain_http_response": "", "curves": "", "dhparam": "" }, "tcp": { "prefer_ipv4": false, "no_delay": true, "keep_alive": true, "fast_open": false, "fast_open_qlen": 20 }, "mysql": { "enabled": false, "server_addr": "127.0.0.1", "server_port": 3306, "database": "trojan", "username": "trojan", "password": "" } }
然后,同时按 Ctrl + X,再按y,再按 Enter(回车),退出nano编辑状态。
说明:上面配置文件只有二处需要修改:
1)“你设定的密码”:可任意设定任何数字字母符号和任意长度,只要自己记住,并与客户端设置一样的密码就好。 若自己想不到好的密码,也可在下面网站随意生成 https://strongpasswordgenerator.com/ 2)"cert"和"key",是你的caddy为你自动申请的SSL证书文件及密钥文件,在上面的配置文件中需将“你的域名”改为你上面设置的域名 3)请注意:不同系统的具体证书、密钥路径可能不同。
是否开启 "fast_open": true?
有网友建议开启,据美博所知:trojan目前只在Linux中支持TCP_FASTOPEN_CONNECT,而在Windows中则不提供,TFO并未有重大改进,容易受到某种形式的攻击,美博不建议启用它。
(二)重新加载配置文件
修改好上述服务器配置文件后,需要加载
输入:
systemctl daemon-reload
(三) 赋予trojan监听443端口能力
赋予trojan监听1024以下端口的能力,使得trojan可以监听到443端口。
输入:
setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/trojan
(四)启动trojan
# 启动trojan
输入:
systemctl start trojan
# 查看启动是否成功
输入:
systemctl status trojan
如图,若显示为绿色的“active”表示trojan已经成功启动
# 设置自启动
若启动成功运行,可以加入开机自启
输入:
systemctl enable trojan
显示为:
root@vm:~# systemctl enable trojan
Created symlink /etc/systemd/system/multi-user.target.wants/trojan.service → /etc/systemd/system/trojan.service.
# 若不能启动,请查看错误日志
(已经正常启动不需此输入)
输入:
journalctl -fu trojan
十二、防火墙简易设置
为了增强安全性,下面介绍防火墙的简易设置,请接着上面的步骤继续完成下面的设置。
请根据你的系统是 Ubuntu 或 debian 来选择设置,二者防火墙设置方式不同。
12-1、Debian 系统 开启防火墙及端口设置
如果你使用的是 Debian 系统,请按照下面的设置,不适用于Ubuntu系统和Centos系统
1)安装UFW
Debian默认不安装UFW,使用apt安装:
apt install ufw
2)设置默认策略
要设置UFW使用的默认值,使用以下命令:
输入:
ufw default deny incoming
再输入:
ufw default allow outgoing
3)允许SSH连接
允许端口22上的所有连接
ufw allow 22
如果有的VPS服务器的SSH使用其他端口,则必须指定相应的端口。例如,除了常用的22外,也有些使用2222 ,则可以使用此命令允许该端口上的SSH连接:
ufw allow 2222
4)启用UFW
在允许了SSH后,才启用UFW,不然SSH连接会断开
要启用UFW,使用以下命令:
ufw enable
会询问是否安装,
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
请输入 y
完成安装会显示:
Firewall is active and enabled on system startup
5)打开常用端口
翻墙会用到 端口80、443
依次输入【每输入一行都要回车(按[Enter])】:
ufw allow 80
ufw allow 443
至此,Debian 系统 防火墙设置完成
12-2、Ubuntu 系统 开启防火墙及端口设置
如果你使用的是 Ubuntu 系统,请按照下面的设置,不适用于Debian系统和Centos系统
因我们只是用于翻墙,需要打开这几个端口 port: 22, 80, 443
22 / TCP(入站/出站):标准SSH端口 80 / TCP(入站/出站):标准HTTP端口 443 / TCP(入站/出站):标准HTTPS端口
用下面的命令打开这几个 port
依次输入【每输入一行都要回车(按[Enter])】以下指令:
ufw allow 22
ufw allow 80
ufw allow 443
再输入命令启用防火墙
ufw enable
会提问:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
问是否真的启用防火墙 enable firewall,并警告如果设定不当会断线。因我们已经启用 allow port 22 ,所以没有问题,
按下
y
再 Enter(回车)。
至此,Ubuntu 系统 防火墙设置完成
==============
1、退出SSH
退出 SSH 连接
输入:
exit
或者 直接关闭 X-shell
2、关于修改服务器配置
上述设置一切都完成后,一般不需要修改就可以稳定运行。
如果你想修改配置,如域名、密码等等,都是可以修改的,但是修改完成后,记得重启trojan服务端即可,同时客户端的资料也要同步修改。
修改前:
一般在修改前也是停止先服务
停止 trojan 服务
输入:
systemctl stop trojan
修改完成后:
修改配置后也需重新加载配置文件
systemctl daemon-reload
启动 trojan 服务
输入:
systemctl start trojan
或
重启 trojan 服务
输入:
systemctl restart trojan
==============
至此,所有服务器端设置全部完成,下面進行客户端和浏览器设置
十三、trojan客户端下载、配置及使用方法
13-1、trojan客户端软件下载
# 官方客户端软件下载
在服务器端搭建好trojan代理服务器后,我们还需在自己的电脑即客户端上使用。
至今,trojan还没有图形界面的客户端软件,官方发布有一个客户端软件,只有dos黑框,里面会显示数据连接状况,因为trojan设置简单,其实已经够用,美博建议还是用官方的。
trojan客户端下载官方页面:
https://github.com/trojan-gfw/trojan/releases
请根据自己的电脑所装系统,下载对应的软件包,如:Windows系统就下载 trojan-x.xx.x-win.zip, Mac系统就下载 trojan-x.xx.x-macos.zip(中间的x.xx.x是版本号)
# 使用方法
下载后解压,得到trojan文件夹,其中文件包括:
config.json : 这个就是客户端配置文件,设置内容见下面
trojan.exe : 这是trojan执行文件,
13-2、trojan客户端配置文件及修改
在trojan软件中的config.json就是其客户端配置文件,我们必须对其编辑内容才能使用。
用电脑中的文本编辑器,如:EmEditor,打开这个客户端配置文件config.json,然后将下面内容(需修改)复制进去;
但,这个配置文件里也有二处需要修改为你自己的内容,即:“你的域名”和“你设定的密码”,并与上述“十一、服务器端配置文件之(一)服务器配置文件修改”的相同。
然后,记住“保存”这个配置文件。
{ "run_type": "client", "local_addr": "127.0.0.1", "local_port": 1080, "remote_addr": "你的域名", "remote_port": 443, "password": [ "你设定的密码" ], "log_level": 1, "ssl": { "verify": true, "verify_hostname": true, "cert": "", "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:RSA-AES128-GCM-SHA256:RSA-AES256-GCM-SHA384:RSA-AES128-SHA:RSA-AES256-SHA:RSA-3DES-EDE-SHA", "sni": "", "alpn": [ "h2", "http/1.1" ], "reuse_session": true, "session_ticket": false, "curves": "" }, "tcp": { "no_delay": true, "keep_alive": true, "fast_open": false, "fast_open_qlen": 20 } }
13-3、启动trojan
在设置好这个客户端config.json配置文件后,双击 trojan.exe,就可以启动trojan了。
启动后象这样:
13-4、关闭trojan
启动trojan后,显示上图的窗口,不使用trojan时,按最右上角的 X(关闭)即可。
13-5、启动trojan常遇到的问题
1、trojan客户端无法启动,提示缺少找不到 vcruntime140.dll 或找不到 msvcp140.dll
这是因为你的系统没有安装VC++运行环境(VC_redist.x64.exe 或 vc_redist.x86.exe)
1)现在新版trojan客户端软件包中,已经带有 VC_redist.x64.exe,若是 windows 64位系统,双击 VC_redist.x64.exe安装即可。
2)若你是windows 32位系统,可到微软官方下载vc_redist.x86.exe
https://www.microsoft.com/zh-CN/download/details.aspx?id=48145
其中有两个软件,一个是32位(vc_redist.x86.exe)、一个是64位(vc_redist.x64.exe)。
安装完成后,重新启动trojan,确认trojan没有报错即可。
2)若启动还是有错,也可能缺乏 Windows.NET Framework 4.6.2,请到微软官方下载并安装:
https://support.microsoft.com/zh-cn/help/3151800/the-net-framework-4-6-2-offline-installer-for-windows
2、如果提示 vcruntime140_1.dll 的错误
下载下面的文件放到C:\windows\system32目录下即可:
https://github.com/atrandys/trojan/raw/master/vcruntime140_1.dll
3、如果启动trojan会一闪而过
这应该是你配置文件有错误,请仔细检查。
可以使用控制台运行trojan,能看到具体是哪一行有错,具体方法:使用"命令提示符"定位到trojan目录,如何运行 trojan 命令,可以看到具体哪一行有错误,如:fatal: config.json(16): invalid code sequence ,说明你的配置文件第16行有错误。然后,用文本编辑器打开客户端配置文件config.json对号检查修正。
十四、浏览器设置与代理上网
14-1、浏览器代理参数设置
在浏览器中设置 trojan代理为: socks5 127.0.0.1:1080
本系列教程中,v2ray、trojan、NaiveProxy的代理都是默认 socks5 127.0.0.1:1080
有时候,前面建立代理步骤都顺利完成,卡在浏览器设置这里。请注意:目前trojan只单独承认socks5协议,请检查一下你的浏览器代理或者代理扩展里面的代理设置是不是 socks5,如同时选择了http、https等代理类型,也会反馈 unknown protocol错误。
基本代理设置方式,如图所示:
请注意:
1)、在firefox68版,很多代理调度扩展不能再使用(如 Gproxy代理扩展),美博的Firefox纯净绿色版、chrome纯净版,都已经用另外的代理扩展,如 Little Proxy 或/和 Proxy SwitchyOmega设置有这个端口的v2ray、trojan、NaiveProxy代理,如果默默使用美博的浏览器,就不用另外设置了,请参考:
火狐浏览器_Firefox_68.8.0esr_美博纯净中文绿色版(20200513) Google Chrome浏览器_v81.0.4044.138_美博园纯净绿色版(20200513) 火狐浏览器_Firefox_68.0.1esr_美博园纯净中文绿色版(更新)
2)、其他浏览器设置 trojan代理,请参考上图设置代理。
3)、firefox57版之前的旧版firefox,可以使用以下介绍的方法设置firefox浏览器代理, 但是, 切记:在新版57版以后的firefox中,下面的代理扩展gproxy已经不起作用,请特别注意它可以设置代理却不起作用,这很糟糕!
请参考:firefox57版(含)之后都不能使用下面的:
GProxy:火狐(firefox)浏览器简便的代理调度扩展(v2.1) - 美博园 GProxy Plus 3.0和 3.1 版:Firefox浏览器简便的代理调度扩展(20180523) - 美博园
14-2、上网,查看ip
代理是不是设置好了?代理起作用没有,一般在“每次”使用时都应该自己先验证确认一下。
方法很多,如:
美博园主页右侧栏有上网ip显示 美博园上网代理IP地址查询检测 美博园IP地理信息查询 点進去就可以看到自己当前上网的代理ip地址及相关参数。 当然,你也可以通过其他方法检验。 其他方法请参考:如何查看自己上网的ip地址? - 美博园
***
=== 自建最强代理 v2ray、trojan、NaiveProxy 系列文章参考 ===
美博点评:V2Ray、trojan、NaiveProxy代理的异同及相关问题 - 美博园 关于v2fly(V2Ray)更新版本的提醒 - 美博园 自建最强科学上网5+:V2ray + Caddy + Tls + HTTP/2 自建最强科学上网4:NaiveProxy + Caddy 自建最强科学上网3:trojan + Caddy 自建最强科学上网2+:V2Ray + Caddy + Tls + WebSocket 自己搭建代理服务器:VPS的选择 - 美博园 自己搭建代理服务器:Vultr VPS 购买图文教程 - 美博园 自己搭建代理服务器:Vultr VPS 系统安装图文教程 - 美博园 自己搭建代理服务器:检测ip是否被墙及更换ip - 美博园 自己搭建代理服务器:域名购买及设置与ip服务器关联 - 美博园 SSH连接软件-Xshell下载及使用教程 - 美博园 WinSCP:连接远端服务器的管理传输工具的使用教程 - 美博园 其它参考: v2ray客户端代理上网 - Windows、Android、Mac、ios - 美博园 Let’s Encrypt 证书颁发的速率及次数限制 - 美博园 Let's Encrypt SSL 证书安装不了的若干问题解决 - 美博园 如何开启Google TCP BBR 加速 - 美博园 V2ray自建代理遇到的一些问题及解决 - 美博园
原文标题:自建最强科学上网3:trojan + Caddy - 美博园
美博园文章均为“原创 - 首发”,请尊重辛劳撰写,转载请以上面完整链接注明来源!
软件版权归原作者!个别转载文,本站会注明为转载。
网 友 留 言
37条评论 in “自建最强科学上网3:trojan + Caddy”这里是你留言评论的地方
谢谢答复。觉得有可能有两种解决办法:
1. 让Caddy监听443,但转发到Trojan, 类似于用于NaiveProxy配置的方法。Caddy的配置文件大致为:
np.abcdef.com {
log stdout
errors stderr
root /var/www/html
tls 12345@gmail.com
forwardproxy {
basicauth 你的用户名 你的密码
hide_ip
hide_via
probe_resistance
upstream https://127.0.0.1:8080
}
}
当然Trojan的配置也需要修改,使之监听比如8080端口。不知道这样可行否。
2. 另一种可能就是安装acme.sh 来申请更新证书。这应该是可行的。您原来的安装步骤和配置也基本不用修改。
@WangZhi
好的,我会都测试看看,Trojan监听8080端口可能不行,他需要使用443才好,谢谢分享您的经验
@美博园 您好,首先感谢您的分享,让我这个小白实现了科学上网,谢谢~
近期我也遇到了证书无法更新的问题,在网上找了一圈后发现楼上这位老师的acme.sh方法较为可行。请问如果您测试成功,可以分享一下acme安装所需的代码吗?谢谢!
@Crystal
好的,这二天比较忙,再找时间测试,测试完就尽快公布。
谢谢大家一起来完善。
@WangZhi @Crystal
前段时间比较忙,没来得及解决这个问题,最近研究了一下,已经发布新教程和解决思路,请参考指正:
自建最强科学上网3+:trojan + Caddy(SSL证书自动续期)
https://allinfa.com/trojan-caddy-plus.html
“trojan+Caddy”SSL证书自动续期的Caddyfile配置解决方案
https://allinfa.com/trojan-caddy-auto-ssl-caddyfile.html
几位网友都提到了证书不能更新的问题。您也作了回答。但觉得还没解决(也可能按现在的设置无法解决)。“8-1” 节是配置了Caddy用以取得证书,但这个配置在第“十”节被删除,或者说被修改为
:80 {
root /var/www/html
gzip
browse
}
也就是不再包含域名了,也无法自动更新证书了。实际使用中也的确不能更新了。
@WangZhi
1)
:80 {
root /var/www/html
……
这一段代码是因为caddy也占用443端口,就用这段代码将caddy转为监视80端口。所以,没有域名。
2)因为美博没有长时间超过3个月使用trojan,没有验证这个自动续期的结果,当时写这篇教程时,trojan参考资料很少,没有考虑周全,根据您们的反馈,实际上是不能自动续期!
3)刚才仔细再看了一遍代码,好象是差了一步证书关联。我再想想。
谢谢反馈。
谢谢提供建议一起来完善。
@美博园 谢谢答复。觉得有可能有两种解决办法:
1. 让Caddy监听443,但转发到Trojan, 类似于用于NaiveProxy配置的方法。Caddy的配置文件大致为:
np.abcdef.com {
log stdout
errors stderr
root /var/www/html
tls 12345@gmail.com
forwardproxy {
basicauth 你的用户名 你的密码
hide_ip
hide_via
probe_resistance
upstream https://127.0.0.1:8080
}
}
当然Trojan的配置也需要修改,使之监听比如8080端口。不知道这样可行否。
2. 另一种可能就是安装acme.sh 来申请更新证书。这应该是可行的。您原来的安装步骤和配置也基本不用修改。
caddy的v1版用来翻墙做前端web服务器,就足够用的,不值得花时间再去学caddy 2 了,希望美博园更长时间的保存caddy 1 的安装连接。
@小狸猫
是您说的那样。美博一般会保留c1的网盘下载链接,只有在被封锁的时候才会更换。
亲测,本文的配置方式下,caddy不会到期自动更新证书,必须把文中的申请证书步骤在重复一遍。道理也很简单,caddyfile里没有指定域名,caddy也不监听443端口,不接受https连接,也就不知道证书是否过期及域名信息
也许acme.sh来申请证书是个比较好的的选择,只需要增加一个步骤,本文的主体部分不需要大的修改
@哥哥我还要
1、你说caddyfile配置里面没有指定域名?没有看明白你说的意思。
教程中caddyfile里面的第一句 tro.abcdef.com 不就是申请ssl证书的域名吗?没有域名怎么申请ssl证书呢?
2、Trojan 本身就监听 0.0.0.0:443, Caddy只是监听80或者其他端口给Trojan跳转用,在trojan中,caddy不需要监听443端口。
安装到第五步,安装caddy出现错误
bash getcaddy personal http.forwardproxy,hook.service
⚠️ This installer only supports v1, which is obsoleted now that Caddy 2 is released. This script may change or go away soon. Please upgrade: https://caddyserver.com/docs/v2-upgrade
Downloading Caddy for linux/amd64 (personal license)...
curl: (22) The requested URL returned error: 404
Aborted, error 22 in command: curl -fsSL "$caddy_url" -u "$CADDY_ACCOUNT_ID:$CADDY_API_KEY" -o "$dl"
@大波
最近caddy停止了下载v1版,本教程已经修正安装方法,可继续使用正常安装代理。
按照您的方法一步步做,完美搞定了,谢谢!
这个好像用不了了,能出个caddy2的教程吗
@sjv6
现在可用这个一键教程:
V2ray,Trojan,NaiveProxy 一键安装工具(windows版)(一键科学上网)
https://allinfa.com/v2ray-trojan-naiveproxy-one-click-installation-windows.html
最近比较忙,过几天修改教程。
想问您一下, 一个vps主机,一个域名, 能装多个翻墙软件吗
例如按照你的教程 装过 v2ray, 再装一个trojan, 再装一个native
域名设定, 配置啥的,会冲突吗
因为如果创建多个vps主机,就会有多个ip, 但是只有一个域名的话, 就需要来回切换域名绑定ip的dsn配置, 往往需要很久还没有切换到新的ip上
难道还要买多个域名,才能装多个翻墙工具吗,
麻烦站长详细说下, 不是太懂 : )
@gotoschool
1、自建2、3、4只能选择一个VPS装一个代理,否则端口会冲突。买最便宜的VPS建代理就好。有共用端口的方法,效果不太好,以后再说
2、域名可使用二级域名,不需要买多个域名,一个域名可以演变成无数个二级域名,如:111.abcde.com、222.abcde.com、333.abcde.com……
一个VPS与一个二级域名配对就行
当然多个不同域名会更安全,互不关联。
可能不要 chmod 770 /etc/ssl/caddy
不知道这目录原来权限是怎样的啦
给它 chmod 775 /etc/ssl/caddy 后就可以其他trojan啦
装的debian 10自带trojan,其他按你的文章做的,
结果trojan没有访问证书的权限 fatal: use_certificate_chain_file: Permission denied
@64356
按照教程完整的做一步一步的过程才能成功。
别家的安装,不一定能够融合本教程的每一步。
我刚刚按照步骤用Debian 10安装了两边还是不行,和其中一个网友一样,我已经放弃了,不知道是哪里出问题,头疼,现在换回V2RAY了,但是我还是想用trojan
@dafa 症状如下:caddy以及torjan都在启动中,torjan客户端启动后只看见示例图的第一行文字 即[WARN]这一行,而没有另一行[INFO]。另外我现在用v2ray晚上会很慢,不知道是啥原因,有可能是限制了国际出口带宽?到了凌晨3点才很快,听说trojan快就想试试,可是搞不定它啊
檢查過caddy以及torjan都在啟動中,torjan客戶端啟動後只看見示例圖的第一行文字 即[WARN]這一行,而沒有另一行[INFO],client telnet server 443 port 正常可以通過,client 防毒軟體也都關閉,請問還有哪邊檢查?
系統 debain 10 ,trojanshi 1.10版,與教程唯一差別是 安裝 bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)" 系統會死當,所以 trojan我使用 apt install trojan, 裝完trojan就是1.10
@otlbb
查看一下有无错误记录:journalctl -fu trojan
@美博园 -- Logs begin at Fri 2020-02-07 08:05:56 UTC. --
Feb 07 09:19:01 ttztrod systemd[1]: Started trojan.
Feb 07 09:19:01 ttztrod trojan[2448]: Welcome to trojan 1.14.1
Feb 07 09:19:01 ttztrod trojan[2448]: [2020-02-07 09:19:01] [WARN] trojan servic e (server) started at 0.0.0.0:443
僅有這些訊息,但客戶端還是卡住[WARN]這一行
@otlbb
1、再仔细检查一下服务器端、客户端配置文件的密码、用户名等是否完全一致,不要有任何增减的空格、符号等,特别是每一句代码末尾的分号等要仔细核对;
2、VPS上有没有安装其他代理,如v2ray等,也不要有其他程序,如wp,这样互相会占用端口发生冲突,最好一个vps单独装一个代理
3、这个可能多种情况引起,trojan现在用CDN也不行,浏览器的代理设置是否正确,等等
如果实在找不到原因,保留可用ip,重新安装系统,再重新一步一步安装trojan,这样可能来的比较快。
trojan启动后显示
[ERROR] 127.0.0.1:3257 unknown protocol
[2020-02-04 12:29:56] [INFO] 127.0.0.1:3257 disconnected, 0 bytes received, 0 bytes sent, lasted for 0 seconds
[2020-02-04 12:29:57] [ERROR] 127.0.0.1:3259 unknown protocol......
一直换端口一直error。
请问这是哪里出了问题?
@lly
检查一下你的浏览器代理或者代理扩展里面的代理设置是不是 socks5,如选择https等代理类型,也会反馈 unknown protocol
目前trojan只单独承认socks5协议
@美博园 多谢,可以了
您好,我已经检查过caddy以及torjan都在启动中,但是不解的是,torjan客户端启动后我只看见显示如您示例图的第一行文字 即[WARN]这一行,而没有另一行[INFO],也无法翻墙。请问是怎么回事呢?
@fredm
检查443端口是否有打开,或者有没有其它程序占用443;也检查一下浏览器的设置。前几天有网友留言使用的是CentOS系统,也是不行的。
参照您的教程,已经成功搭建了代理,已经稳定运行了将近一个月。非常感谢!
有一个疑问是,后一个版本Caddyfile里没有指定域名,Caddy还能自动更新证书吗?
@Kim
在“8-1、加入Caddy配置文件”已经为域名申请了ssl证书。这几个自建2、3、4,教程都有指定域名,并都能自动延期证书,请放心。
祝过年好!
已经建好了,多谢了,但教程中没有写手机怎么用?请帮助
@VVV
trojan 现在已有手机端了,NaiveProxy目前还没有,逐渐再补充。