[UPDATE] host mode 支持
This commit is contained in:
wulabing 2023-07-30 23:04:23 +08:00
parent f97b572a6f
commit 6db06c0646
No known key found for this signature in database
GPG Key ID: 213391AFDF73AE00
3 changed files with 57 additions and 12 deletions

View File

@ -20,6 +20,8 @@ ENV SERVERNAMES=""
ENV PRIVATEKEY=""
ENV SHORTIDS=""
ENV NETWORK=""
ENV INTERNAL_PORT=""
ENV HOSTMODE_PORT=""
ENV TZ=Asia/Shanghai
WORKDIR /
@ -35,5 +37,6 @@ RUN apk add --no-cache tzdata ca-certificates jq curl libqrencode && \
wget -O /geoip.dat https://github.com/v2fly/geoip/releases/latest/download/geoip.dat && \
chmod +x /entrypoint.sh
EXPOSE 443
ENTRYPOINT ["./entrypoint.sh"]
EXPOSE 443

View File

@ -1,16 +1,17 @@
## xray_docker_reality
xray reality docker 镜像
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
如果你没有安装 docker 请先安装 docker
```
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
```
如果你已经安装docker可以直接使用下面的命令运行后会自动下载镜像并启动容器
### 端口映射模式
如果你已经安装 docker可以直接使用下面的命令运行后会自动下载镜像并启动容器
EXTERNAL_PORT 为你想要使用的端口如下所示你将使用443端口
```
@ -19,6 +20,18 @@ 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
```
### host 模式
如果你想使用 host 模式,你可以使用以下命令,运行后会自动下载镜像并启动容器,
HOSTMODE_PORT 为你想要使用的端口如下所示你将使用443端口
>请注意,如果你使用 host 模式EXTERNAL_PORT 变量将不会生效,请使用 HOSTMODE_PORT 变量
```
docker pull wulabing/xray_docker_reality:latest
HOSTMODE_PORT=443
docker run -d --name xray_reality --restart=always --network host -e HOSTMODE_PORT=$HOSTMODE_PORT wulabing/xray_docker_reality:latest
```
查看日志获取配置信息,如下所示,按照提示配置客户端即可,
```
@ -26,15 +39,14 @@ docker logs -f xray_reality
```
## 进阶使用方法
如果你不想使用443端口你可以自定义端口例如使用8443端口如下所示
如果你不想使用 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端口
如果你想启动多个 reality 服务,你可以使用不同的容器名,并注意端口不要冲突,如下所示你将启动两个 reality 服务分别使用444和445端口
```
EXTERNAL_PORT=444
@ -43,9 +55,9 @@ 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,以及自定义目标地址和服务器名称,如下所示,**支持的自定义参数请参考下方环境变量说明**
如果你不想使用默认参数,你可以自定义参数,例如使用自定义的 UUID,以及自定义目标地址和服务器名称,如下所示,**支持的自定义参数请参考下方环境变量说明**
存在多个SERVERNAMES时使用空格分开例如www.apple.com images.apple.com
存在多个 SERVERNAMES 时使用空格分开例如www.apple.com images.apple.com
请注意,如果你使用自定义参数,你需要自己保证参数的正确性,否则可能会导致容器无法启动
```
@ -53,7 +65,7 @@ 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 所设置的名称)
使用以下命令删除已经创建的容器,如下所示,需要将 xray_reality 替换为你自己的容器名 (--name 所设置的名称)
```
docker rm -f xray_reality
@ -76,3 +88,24 @@ docker rm -f xray_reality
## 注意事项
请确保在使用前已正确安装和配置 XRay 客户端。
为了保证安全和稳定,请勿将 UUID、私钥等敏感信息泄露给他人。
## 捐赠
您可以使用我的 搬瓦工 AFF 购买 VPS
https://bandwagonhost.com/aff.php?aff=63939
您可以使用我的 JustMySocks AFF 购买搬瓦工提供的代理
https://justmysocks.net/members/aff.php?aff=17621
您可以使用我的 DMIT AFF 购买 VPS
https://www.dmit.io/aff.php?aff=3957
您可以使用我的 Vultr AFF 创建新的 Vultr 账号并使用
https://www.vultr.com/?ref=6881279
您可以通过 USDT 支持我,感谢您的支持
TRC20:TFannfnajNGYsMTuVDcXfZXXPbcaxAEffa

View File

@ -15,6 +15,11 @@ else
EXTERNAL_PORT=443
fi
if [ -n "$HOSTMODE_PORT" ];then
EXTERNAL_PORT=$HOSTMODE_PORT
jq ".inbounds[0].port=$HOSTMODE_PORT" /config.json >/config.json_tmp && mv /config.json_tmp /config.json
fi
if [ -z "$DEST" ]; then
echo "DEST is not set. default value www.apple.com:443"
DEST="www.apple.com:443"
@ -38,6 +43,7 @@ else
echo "NETWORK is not set,set default value tcp"
NETWORK="tcp"
fi
# change config
jq ".inbounds[0].settings.clients[0].id=\"$UUID\"" /config.json >/config.json_tmp && mv /config.json_tmp /config.json
jq ".inbounds[0].streamSettings.realitySettings.dest=\"$DEST\"" /config.json >/config.json_tmp && mv /config.json_tmp /config.json
@ -48,6 +54,9 @@ 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