自建最強科學上網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

編輯器打開後會有一個#綠色游標,這是可輸入內容的位置,都是象這樣子:
自建最強科學上網3:trojan + Caddy

請注意一下使用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已經啟動:
自建最強科學上網3:trojan + 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已經成功啟動

自建最強科學上網3:trojan + Caddy

# 設置自啟動

若啟動成功運行,可以加入開機自啟
輸入:

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執行文件,

自建最強科學上網3:trojan + Caddy

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了。

啟動後象這樣:

自建最強科學上網3:trojan + Caddy

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錯誤。

基本代理設置方式,如圖所示:

自建最強科學上網3:trojan + Caddy

請注意:

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自建代理遇到的一些問題及解決 - 美博園
原文鏈接:https://allinfa.com/zh-tw/trojan-caddy.html
原文標題:自建最強科學上網3:trojan + Caddy - 美博園
美博園文章均為「原創 - 首發」,請尊重辛勞撰寫,轉載請以上面完整鏈接註明來源!
軟體著作權歸原作者!個別轉載文,本站會註明為轉載。

網 友 留 言

37條評論 in “自建最強科學上網3:trojan + Caddy”
  1. WangZhi says:

    謝謝答覆。覺得有可能有兩種解決辦法:
    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 來申請更新證書。這應該是可行的。您原來的安裝步驟和配置也基本不用修改。

  2. WangZhi says:

    幾位網友都提到了證書不能更新的問題。您也作了回答。但覺得還沒解決(也可能按現在的設置無法解決)。「8-1」 節是配置了Caddy用以取得證書,但這個配置在第「十」節被刪除,或者說被修改為
    :80 {
    root /var/www/html
    gzip
    browse
    }
    也就是不再包含網域了,也無法自動更新證書了。實際使用中也的確不能更新了。

    • 美博園 says:

      @WangZhi
      1)
      :80 {
      root /var/www/html
      ……
      這一段代碼是因為caddy也佔用443連線埠,就用這段代碼將caddy轉為監視80連線埠。所以,沒有網域。
      2)因為美博沒有長時間超過3個月使用trojan,沒有驗証這個自動續期的結果,當時寫這篇教程時,trojan參考資料很少,沒有考量周全,根據您們的反饋,實際上是不能自動續期!
      3)剛才仔細再看了一遍代碼,好象是差了一步證書關聯。我再想想。
      謝謝反饋。
      謝謝提供建議一起來完善。

      • WangZhi says:

        @美博園 謝謝答覆。覺得有可能有兩種解決辦法:
        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 來申請更新證書。這應該是可行的。您原來的安裝步驟和配置也基本不用修改。

  3. 小狸貓 says:

    caddy的v1版用來翻牆做前端web伺服器,就足夠用的,不值得花時間再去學caddy 2 了,希望美博園更長時間的保存caddy 1 的安裝連接。

  4. 哥哥我還要 says:

    親測,本文的配置方式下,caddy不會到期自動更新證書,必須把文中的申請證書步驟在重複一遍。道理也很簡單,caddyfile里沒有指定網域,caddy也不監聽443連線埠,不接受https連接,也就不知道證書是否過期及網域信息
    也許acme.sh來申請證書是個比較好的的選擇,只需要增加一個步驟,本文的主體部分不需要大的修改

    • 美博園 says:

      @哥哥我還要
      1、你說caddyfile配置裡面沒有指定網域?沒有看明白你說的意思。
      教程中caddyfile裡面的第一句 tro.abcdef.com 不就是申請ssl證書的網域嗎?沒有網域怎麼申請ssl證書呢?
      2、Trojan 本身就監聽 0.0.0.0:443, Caddy只是監聽80或者其他連線埠給Trojan跳轉用,在trojan中,caddy不需要監聽443連線埠。

  5. 大波 says:

    安裝到第五步,安裝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"

  6. Trojan-good says:

    按照您的方法一步步做,完美搞定了,謝謝!

  7. sjv6 says:

    這個好像用不了了,能出個caddy2的教程嗎

  8. gotoschool says:

    想問您一下, 一個vps主機,一個網域, 能裝多個翻牆軟體嗎
    例如按照你的教程 裝過 v2ray, 再裝一個trojan, 再裝一個native
    網域設定, 配置啥的,會衝突嗎
    因為如果創建多個vps主機,就會有多個ip, 但是只有一個網域的話, 就需要來回切換網域綁定ip的dsn配置, 往往需要很久還沒有切換到新的ip上
    難道還要買多個網域,才能裝多個翻牆工具嗎,
    麻煩站長詳細說下, 不是太懂 : )

    • 美博園 says:

      @gotoschool
      1、自建2、3、4隻能選擇一個VPS裝一個代理,否則連線埠會衝突。買最便宜的VPS建代理就好。有共用連線埠的方法,效果不太好,以後再說
      2、網域可使用二級網域,不需要買多個網域,一個網域可以演變成無數個二級網域,如:111.abcde.com、222.abcde.com、333.abcde.com……
      一個VPS與一個二級網域配對就行
      當然多個不同網域會更安全,互不關聯。

  9. 64356 says:

    可能不要 chmod 770 /etc/ssl/caddy
    不知道這目錄原來許可權是怎樣的啦
    給它 chmod 775 /etc/ssl/caddy 後就可以其他trojan啦

  10. 64356 says:

    裝的debian 10自帶trojan,其他按你的文章做的,
    結果trojan沒有訪問證書的許可權 fatal: use_certificate_chain_file: Permission denied

  11. dafa says:

    我剛剛按照步驟用Debian 10安裝了兩邊還是不行,和其中一個網友一樣,我已經放棄了,不知道是哪裡出問題,頭疼,現在換回V2RAY了,但是我還是想用trojan

    • dafa says:

      @dafa 癥狀如下:caddy以及torjan都在啟動中,torjan客戶端啟動後只看見示例圖的第一行文字 即[WARN]這一行,而沒有另一行[INFO]。另外我現在用v2ray晚上會很慢,不知道是啥原因,有可能是限制了國際出口帶寬?到了凌晨3點才很快,聽說trojan快就想試試,可是搞不定它啊

  12. otlbb says:

    檢查過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

    • 美博園 says:

      @otlbb
      查看一下有無錯誤記錄:journalctl -fu trojan

      • otlbb says:

        @美博園 -- 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]這一行

        • 美博園 says:

          @otlbb
          1、再仔細檢查一下伺服器端、客戶端配置文件的密碼、用戶名等是否完全一致,不要有任何增減的空格、符號等,特別是每一句代碼末尾的分號等要仔細核對;
          2、VPS上有沒有安裝其他代理,如v2ray等,也不要有其他程序,如wp,這樣互相會佔用連線埠發生衝突,最好一個vps單獨裝一個代理
          3、這個可能多種情況引起,trojan現在用CDN也不行,瀏覽器的代理設置是否正確,等等
          如果實在找不到原因,保留可用ip,重新安裝系統,再重新一步一步安裝trojan,這樣可能來的比較快。

  13. lly says:

    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。
    請問這是哪裡出了問題?

  14. fredm says:

    您好,我已經檢查過caddy以及torjan都在啟動中,但是不解的是,torjan客戶端啟動後我只看見顯示如您示例圖的第一行文字 即[WARN]這一行,而沒有另一行[INFO],也無法翻牆。請問是怎麼回事呢?

    • 美博園 says:

      @fredm
      檢查443連線埠是否有打開,或者有沒有其它程序佔用443;也檢查一下瀏覽器的設置。前幾天有網友留言使用的是CentOS系統,也是不行的。

  15. Kim says:

    參照您的教程,已經成功搭建了代理,已經穩定運行了將近一個月。非常感謝!
    有一個疑問是,後一個版本Caddyfile里沒有指定網域,Caddy還能自動更新證書嗎?

    • 美博園 says:

      @Kim
      在「8-1、加入Caddy配置文件」已經為網域申請了ssl證書。這幾個自建2、3、4,教程都有指定網域,並都能自動延期證書,請放心。
      祝過年好!

  16. VVV says:

    已經建好了,多謝了,但教程中沒有寫手機怎麼用?請幫助

這裡是你留言評論的地方


請留言


0 + 2 =
【您可以使用 Ctrl+Enter 快速發送】
Copyright © 2007 - 2025 , Design by 美博園. 著作權所有. 若有著作權問題請留言通知本站管理員. 【回到頂部】