Merge branch 'windows' of https://github.com/blechschmidt/tun2proxy into windows

This commit is contained in:
ssrlive 2023-10-17 20:34:32 +08:00
commit d32ceaa577
4 changed files with 36 additions and 18 deletions

View file

@ -19,6 +19,7 @@ ENV PROXY=
ENV DNS=virtual ENV DNS=virtual
ENV MODE=auto ENV MODE=auto
ENV BYPASS_IP= ENV BYPASS_IP=
ENV VERBOSITY=info
RUN apt update && apt install -y iproute2 curl && apt clean all RUN apt update && apt install -y iproute2 curl && apt clean all

View file

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) B. Blechschmidt and contributors Copyright (c) @ssrlive, B. Blechschmidt and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View file

@ -119,16 +119,27 @@ Next, start a container from the tun2proxy image:
```bash ```bash
docker run -d \ docker run -d \
-e PROXY=PROXY_TYPE://PROXY_IP:PROXY_PORT \ -e PROXY=proto://[username[:password]@]host:port \
-v /dev/net/tun:/dev/net/tun \ -v /dev/net/tun:/dev/net/tun \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--sysctl net.ipv6.conf.default.disable_ipv6=0 \ --sysctl net.ipv6.conf.default.disable_ipv6=0 \
--cap-add NET_ADMIN \ --cap-add NET_ADMIN \
--name tun2proxy \ --name tun2proxy \
tun2proxy tun2proxy
``` ```
You can then provide the running container's network to another worker container by sharing the network namespace: container env list
| container env | Default | program option | mean |
| ------------- | ------- | ----------------------- | ------------------------------------------------------------ |
| TUN | tun0 | -t, --tun <name> | Name of the tun interface [default: tun0] |
| PROXY | None | -p, --proxy <URL> | Proxy URL in the form proto://[username[:password]@]host:port |
| DNS | virtual | -d, --dns <strategy> | DNS handling strategy [default: virtual] [possible values: virtual, over-tcp, direct] |
| MODE | auto | -s, --setup <method> | Routing and system setup [possible values: auto] |
| BYPASS_IP | None | -b, --bypass <IP> | Public proxy IP used in routing setup which should bypassing the tunnel |
| VERBOSITY | info | -v, --verbosity <level> | Verbosity level [default: info] [possible values: off, error, warn, info, debug, trace] |
| | | | |
You can then provide the running container's network to another worker container by sharing the network namespace (like kubernetes sidecar):
```bash ```bash
docker run -it \ docker run -it \

View file

@ -2,28 +2,34 @@
run() { run() {
if [ -n "$BYPASS_IP" ]; then if [ -n "$TUN" ]; then
BYPASS_IP="--bypass $BYPASS_IP" TUN="--tun $TUN"
fi
if [ -n "$DNS" ]; then
DNS="--dns $DNS"
fi
if [ -n "$MODE" ]; then
MODE="--setup $MODE"
fi fi
if [ -n "$PROXY" ]; then if [ -n "$PROXY" ]; then
PROXY="--proxy $PROXY" PROXY="--proxy $PROXY"
fi fi
if [ -n "$TUN" ]; then if [ -n "$DNS" ]; then
TUN="--tun $TUN" DNS="--dns $DNS"
fi fi
exec tun2proxy $TUN $PROXY $DNS $MODE $BYPASS_IP if [ -n "$BYPASS_IP" ]; then
BYPASS_IP="--bypass $BYPASS_IP"
fi
if [ -n "$VERBOSITY" ]; then
VERBOSITY="-v $VERBOSITY"
fi
if [ -n "$MODE" ]; then
MODE="--setup $MODE"
fi
echo "Bootstrap ready!! Exec Command: tun2proxy $TUN $PROXY $DNS $VERBOSITY $MODE $BYPASS_IP $@"
exec tun2proxy $TUN $PROXY $DNS $VERBOSITY $MODE $BYPASS_IP $@
} }
run || echo "Runing ERROR!!" run $@ || echo "Runing ERROR!!"