使用Docker搭建Xray或Trojan-Go 作者: Hogwarts 发布于: 2021-03-04 更新于: 2023-04-04 分类: 红杏出墙 Docker其实本人亦不熟悉,只不过按教程搭建过Shasowsocks-libev,稍有了解而已。我认为搭建的难点无非两个地方:一是配置运行文件config.json;二是docker run运行命令。本文有很多不足之处,希望给出指导建议,共同学习。 # 一、搭建的理论基础 - 安装Docker然后拉取Xray或Trojan-Go的镜像,运行它们的配置文件。其中由Xray或Trojan-Go监听443端口,回落端口为本机的80端口(由caddy监听)。本文以Debian为例,试搭建。 - 啰嗦一下:本例是Xray和Trojan-Go分别监听443端口(只能二选一)。 - 搭建的玩法很多,本人认为越简单越好,先学走后学跑,步子大了容易扯着蛋。 # 二、搭建前的准备工作 ## 2.1 申请域名(略) ## 2.2 申请证书 参考:https://winamp.top/93.html #三、安装Docker wget -qO- get.docker.com | bash 参考:`1.https://teddysun.com/587.html 2.https://teddysun.com/569.html` #四、安装Caddy 安装caddy的作用是接受xray或trojan-go的回落,以应付未知流量的探测。 ##4.1 方式一 ###4.1.1 拉取caddy镜像(V1.0.5) docker pull teddysun/caddy ###4.1.2 配置caddy运行文件 mkdir /etc/caddy/ #建立存放caddy配置文件的文件夹 mkdir -p /var/www/html #建立伪装网站目录的文件夹 vim /etc/caddy/Caddyfile #将下列代码填入 :80 { #修改域名 gzip browse root /var/www/html #存放伪装网站目录 } ###4.1.3 运行 docker run -d --net host --name caddy --restart always -v /etc/caddy:/etc/caddy -v /var/www/html:/var/www/html teddysun/caddy 参考:`https://shiping.date/archives/19.html` ##4.2 方式二 wget https://github.com/caddyserver/caddy/releases/download/v2.3.0/caddy_2.3.0_linux_amd64.deb #下载caddy2,目前是最新稳定版 dpkg -i caddy_2.3.0_linux_amd64.deb #安装 systemctl caddy status #查看运行状态 vim /etc/caddy/Caddyfile #修改caddyfile 将caddy监听的端口改为80。 在caddy指定的路径下最好放个静态的网页(非必须)。 systemctl restart caddy systemctl status caddy # 五、搭建Xray ## 5.1 拉取镜像 docker pull teddysun/xray ## 5.2 配置xray的运行文件 mkdir /etc/xray #建立存放配置文件的文件夹 vim /etc/xray/config.json #将下面代码填入 { "inbound": { "port": 443, "listen":"0.0.0.0", "protocol": "vless", "tag":"VLESSTCP", "settings": { "clients": [ { "id": "4a94054f-27be-5b86-dbce-b8c1443988e5", #需修改UUID "add": "", "flow":"xtls-rprx-vision", "email": "xray@xtls.com" } ], "decryption": "none", "fallbacks": [ {"dest":80,"xver":0} ] }, "streamSettings": { "network": "tcp", "security": "tls", "minVersion": "1.2", "tlsSettings": { "alpn": [ "http/1.1", "h2" ], "cipherSuites":"TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", "preferServerCipherSuites": true, "certificates": [ { "certificateFile": "/etc/xray/fullchain.cer", #证书存放的路径 "keyFile": "/etc/xray/private.key", #密钥存放的路径 "ocspStapling":86400 } ] } } }, "outbounds":[ { "protocol":"freedom", "settings":{}, "tag":"direct" }, { "protocol":"blackhole", "settings":{}, "tag":"adblock" } ], "routing":{ "domainStrategy":"IPOnDemand", "rules":[ { "domain":[ "googleadsserving.com" ], "type":"field", "outboundTag":"adblock" }, { "type":"field", "outboundTag":"direct", "domain":["geosite:cn"] }, { "type": "field", "outboundTag": "block", "protocol": [ "bittorrent" ] } ] } } ## 5.3 运行 docker run -d --net host --name xray --restart=always -v /etc/xray:/etc/xray teddysun/xray ## 5.4 客户端的配置 **客户端以Qv2ray为例** **主机:**你的域名;**端口:**443;**类型:**VLESS **UUID:**你猜;**流控:**xtls-rprx-vision;#需手动填写 **TLS设置-安全类型:**将None改为 TLS ####鉴于Qv2ray不再更新,推荐V2rayN_V5.39,V6看着还不习惯。 ## 5.5 可能要用到的知识 FullCone NAT:https://github.com/XTLS/Xray-core/discussions/252 Xray-examples:https://github.com/XTLS/Xray-examples docker运行参数:https://teddysun.com/536.html # 六、搭建Trojan-Go ## 6.1 拉取镜像 docker pull teddysun/trojan-go ## 6.2 配置Trojan-Go的运行文件 mkdir /etc/trojan-go #建立存放配置文件的文件夹 vim /etc/trojan-go/config.json #将下列代码填入 { "run_type": "server", "local_addr": "0.0.0.0", "local_port": 443, "remote_addr": "127.0.0.1", "remote_port": 80, "password": [ "password" #你的密码 ], "ssl": { "cert": "/etc/trojan-go/fullchain.cer", #证书路径 "key": "/etc/trojan-go/private.key", #密钥路径 "sni": "domain.com", #你的域名 "fallback_addr": "127.0.0.1", "fallback_port": 80 }, "router": { "enabled": true, "block": [ "geoip:private" ], "geoip": "/usr/bin/geoip.dat", "geosite": "/usr/bin/geosite.dat" } } ## 6.3 运行 docker run -d --net host --name trojan-go --restart=always -v /etc/trojan-go:/etc/trojan-go teddysun/trojan-go ## 6.4 客户端的配置 **客户端以Qv2ray为例**(并且已安装Trojan-Go插件) **主机:**你的域名;**端口:**443;**类型:**Trojan Go **Password:**你猜;**SNI:**你的域名 # 七、更新xray或trojan-go ## 7.1 方式一(自动更新) docker run -d --name watchtower --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower --cleanup --schedule "01 0 * * *" 参考:`https://containrrr.dev/watchtower/` ## 7.2 方式二(手动更新) docker ps –as #查看运行的容器 docker stop xray(容器名) #停止运行容器 docker rm –f xray(容器名) #删除容器 - **重新拉取xray或trojan-go镜像,然后运行docker run命令。** 以下命令非必须 docker images #查看docker中存在的镜像 docker rmi 镜像的id(数字) #删除docke中旧镜像 # 八、推荐一个一键脚本 此脚本目前已失效,有兴趣请与作者https://t.me/tl_nx 联系。 wget -O $HOME/xray-all --no-check-certificate https://5889885.xyz/xray-all && chmod +x $HOME/xray-all && $HOME/xray-all ##8.1 安装界面如下 ![IMG_20210309_111826_333.jpg](https://winamp.top/usr/uploads/2021/03/100198266.jpg) ##8.2 运行界面如下 ![IMG_20210309_111838_804.jpg](https://winamp.top/usr/uploads/2021/03/2053702048.jpg) ##8.3 功能管理界面如下 ![IMG_20210309_111846_771.jpg](https://winamp.top/usr/uploads/2021/03/1336480748.jpg) **说明:**此脚本作者是宁兮,如有问题请与作者联系https://t.me/tl_nx (目前未开源,后续会上传github) # 九、存在的问题 - **还未在VPS测试运行,可能存在未知问题。** # 十、 致谢 - 感谢秋水逸冰编译的Docker镜像。 - 感谢毕世平搭建Docker Caddy、申请证书教程。 - 感谢宁兮对搭建Docker Watchtower的指导。 标签: trojan-go, xray
评论已关闭