[add] 添加订阅链接及二维码
[fix] 更新详细使用文档,添加暴露端口变量,方便生成订阅信息
This commit is contained in:
wulabing 2023-04-17 19:22:56 +08:00
parent 1bf676df1a
commit 923fb3b8e6
No known key found for this signature in database
GPG Key ID: 213391AFDF73AE00
3 changed files with 62 additions and 7 deletions

View File

@ -6,7 +6,7 @@ LABEL maintainer="wulabing <wulabing@gmail.com>"
#ENV GOPROXY=https://goproxy.cn,direct
WORKDIR /app
RUN apk add --no-cache git && git clone https://github.com/XTLS/Xray-core.git . && \
RUN apk add --no-cache git libqrencode && git clone https://github.com/XTLS/Xray-core.git . && \
go mod download && \
go build -o xray /app/main/

View File

@ -3,26 +3,61 @@ xray reality docker 镜像
[![xray_docker_reality_docker_image_build](https://github.com/wulabing/xray_docker/actions/workflows/xray_docker_reality.yml/badge.svg)](https://github.com/wulabing/xray_docker/actions/workflows/xray_docker_reality.yml)
## 使用方法
## 基础使用方法
如果你没有安装 docker 请先安装docker
```
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
```
如果你已经安装docker可以直接使用下面的命令
如果你已经安装docker可以直接使用下面的命令,运行后会自动下载镜像并启动容器,
EXTERNAL_PORT 为你想要使用的端口如下所示你将使用443端口
```
docker run -d --name xray_reality --restart=always -p 443:443 wulabing/xray_docker_reality:latest
EXTERNAL_PORT=443
docker run -d --name xray_reality --restart=always -p $EXTERNAL_PORT:443 -e EXTERNAL_PORT=$EXTERNAL_PORT wulabing/xray_docker_reality:latest
```
查看日志获取配置信息
查看日志获取配置信息,如下所示,按照提示配置客户端即可,
```
docker logs -f xray_reality
```
## 进阶使用方法
如果你不想使用443端口你可以自定义端口例如使用8443端口如下所示
```
EXTERNAL_PORT=8443
docker run -d --name xray_reality --restart=always -p $EXTERNAL_PORT:443 -e EXTERNAL_PORT=$EXTERNAL_PORT wulabing/xray_docker_reality:latest
```
如果你想启动多个reality服务你可以使用不同的容器名并注意端口不要冲突如下所示你将启动两个reality服务分别使用444和445端口
```
EXTERNAL_PORT=444
docker run -d --name xray_reality_1 --restart=always -p $EXTERNAL_PORT:443 -e EXTERNAL_PORT=$EXTERNAL_PORT wulabing/xray_docker_reality:latest
EXTERNAL_PORT=445
docker run -d --name xray_reality_2 --restart=always -p $EXTERNAL_PORT:443 -e EXTERNAL_PORT=$EXTERNAL_PORT wulabing/xray_docker_reality:latest
```
如果你不想使用默认参数你可以自定义参数例如使用自定义的UUID,以及自定义目标地址和服务器名称,如下所示,**支持的自定义参数请参考下方环境变量说明**
存在多个SERVERNAMES时使用空格分开例如www.apple.com images.apple.com
请注意,如果你使用自定义参数,你需要自己保证参数的正确性,否则可能会导致容器无法启动
```
EXTERNAL_PORT=443
docker run -d --name xray_reality --restart=always -p $EXTERNAL_PORT:443 -e EXTERNAL_PORT=$EXTERNAL_PORT -e UUID="XXX" -e SERVERNAMES="www.apple.com images.apple.com" -e DEST="www.apple.com:443" -e PRIVATEKEY="XXX" wulabing/xray_docker_reality:latest
```
使用以下命令删除已经创建的容器如下所示需要将xray_reality替换为你自己的容器名 (--name 所设置的名称)
```
docker rm -f xray_reality
```
## 环境变量
你可以设置以下环境变量来自定义 XRay 的配置。

View File

@ -10,6 +10,11 @@ else
echo "UUID: $UUID"
fi
if [ -z "$EXTERNAL_PORT" ]; then
echo "EXTERNAL_PORT is not set, use default value 443"
EXTERNAL_PORT=443
fi
if [ -z "$DEST" ]; then
echo "DEST is not set. default value www.apple.com:443"
DEST="www.apple.com:443"
@ -43,17 +48,32 @@ else
jq ".inbounds[0].streamSettings.realitySettings.privateKey=\"$PRIVATEKEY\"" /config.json >/config.json_tmp && mv /config.json_tmp /config.json
jq ".inbounds[0].streamSettings.network=\"$NETWORK\"" /config.json >/config.json_tmp && mv /config.json_tmp /config.json
FIRST_SERVERNAME=$(echo $SERVERNAMES | awk '{print $1}')
# config info with green color
echo -e "\033[32m" >/config_info.txt
echo "IPV6: $IPV6" >>/config_info.txt
echo "IPV4: $IPV4" >>/config_info.txt
echo "UUID: $UUID" >>/config_info.txt
echo "DEST: $DEST" >>/config_info.txt
echo "PORT: $EXTERNAL_PORT" >>/config_info.txt
echo "SERVERNAMES: $SERVERNAMES (任选其一)" >>/config_info.txt
echo "PRIVATEKEY: $PRIVATEKEY" >>/config_info.txt
echo "PUBLICKEY: $PUBLICKEY" >>/config_info.txt
echo "NETWORK: $NETWORK" >>/config_info.txt
if [ "$IPV4" != "null" ]; then
SUB_IPV4="vless://$UUID@$IPV4:$EXTERNAL_PORT?encryption=none&security=reality&type=$NETWORK&sni=$FIRST_SERVERNAME&fp=chrome&pbk=$PUBLICKEY&flow=xtls-rprx-vision#wulabing_docker_vless_reality_vision"
echo "IPV4 订阅连接: $SUB_IPV4" >>/config_info.txt
echo "IPV4 订阅二维码: echo $SUB_IPV4 | qrencode -o - -t UTF8" >>/config_info.txt
fi
if [ "$IPV6" != "null" ];then
SUB_IPV6="vless://$UUID@$IPV6:$EXTERNAL_PORT?encryption=none&security=reality&type=$NETWORK&sni=$FIRST_SERVERNAME&fp=chrome&pbk=$PUBLICKEY&flow=xtls-rprx-vision#wulabing_docker_vless_reality_vision"
echo "IPV6 订阅连接: $SUB_IPV6" >>/config_info.txt
echo "IPV6 订阅二维码: echo $SUB_IPV6 | qrencode -o - -t UTF8" >>/config_info.txt
fi
echo -e "\033[0m" >>/config_info.txt
fi
# show config info