commit
9501b7e83b
4 changed files with 80 additions and 0 deletions
@ -0,0 +1,2 @@ |
|||||
|
.env |
||||
|
goxray |
@ -0,0 +1,14 @@ |
|||||
|
FROM alpine:3 |
||||
|
|
||||
|
RUN apk add --no-cache \ |
||||
|
findutils openresolv iptables ip6tables iproute2 wget musl gcompat curl |
||||
|
|
||||
|
#WORKDIR / |
||||
|
|
||||
|
RUN wget -O /usr/bin/goxray https://github.com/goxray/tun/releases/download/v0.0.7/goxray_cli_linux_amd64 && \ |
||||
|
chmod +x /usr/bin/goxray |
||||
|
|
||||
|
#COPY goxray /usr/bin/goxray |
||||
|
COPY entrypoint.sh /entrypoint.sh |
||||
|
|
||||
|
ENTRYPOINT ["/entrypoint.sh"] |
@ -0,0 +1,26 @@ |
|||||
|
services: |
||||
|
vless_tun_client: |
||||
|
#image: vless-transparent-client |
||||
|
build: ./ |
||||
|
#sysctls: |
||||
|
# - net.ipv4.ip_forward=1 |
||||
|
# devices: |
||||
|
# - /dev/net/tun:/dev/net/tun |
||||
|
devices: |
||||
|
- /dev/net/tun |
||||
|
cap_add: |
||||
|
- NET_ADMIN |
||||
|
- SYS_MODULE |
||||
|
sysctls: |
||||
|
net.ipv4.conf.all.src_valid_mark: 1 |
||||
|
env_file: |
||||
|
- .env |
||||
|
# environment: |
||||
|
# - SERVER_ADDRESS=your-server.com |
||||
|
# - UUID=your-uuid |
||||
|
# - PUBLIC_KEY=server-public-key |
||||
|
# - SERVER_NAME=real-website.com |
||||
|
# tester: |
||||
|
# image: alpine:latest |
||||
|
# network_mode: "service:vless_tun_client" |
||||
|
# command: sh -c "apk add curl && curl -s ifconfig.me" |
@ -0,0 +1,38 @@ |
|||||
|
#!/bin/sh |
||||
|
|
||||
|
set -e |
||||
|
|
||||
|
echo "Setup default route" |
||||
|
default_route_ip=$(ip route | grep default | awk '{print $3}') |
||||
|
if [[ -z "$default_route_ip" ]]; then |
||||
|
echo "No default route configured" >&2 |
||||
|
exit 1 |
||||
|
fi |
||||
|
echo "Default route $default_route_tp" |
||||
|
|
||||
|
echo "Check sysctl" |
||||
|
if [[ "$(cat /proc/sys/net/ipv4/conf/all/src_valid_mark)" != "1" ]]; then |
||||
|
echo "sysctl net.ipv4.conf.all.src_valid_mark=1 is not set" >&2 |
||||
|
exit 1 |
||||
|
fi |
||||
|
|
||||
|
/usr/bin/goxray "$URL" & \ |
||||
|
echo "runned" |
||||
|
|
||||
|
# Allow traffic to local subnets |
||||
|
for local_subnet in ${LOCAL_SUBNETS//,/$IFS} |
||||
|
do |
||||
|
echo "Allowing traffic to local subnet ${local_subnet}" >&2 |
||||
|
ip route add $local_subnet via $default_route_ip |
||||
|
iptables -I OUTPUT -d $local_subnet -j ACCEPT |
||||
|
done |
||||
|
|
||||
|
shutdown () { |
||||
|
killall goxray |
||||
|
exit 0 |
||||
|
} |
||||
|
|
||||
|
trap shutdown SIGTERM SIGINT SIGQUIT |
||||
|
|
||||
|
sleep infinity & |
||||
|
wait $! |
Loading…
Reference in new issue