diff --git a/README.md b/README.md index a236c7f..5b4ba04 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ A tunnel interface for HTTP and SOCKS proxies on Linux, Android, macOS, iOS and - GFW evasion mechanism for certain use cases (see [issue #35](https://github.com/tun2proxy/tun2proxy/issues/35)) - SOCKS5 UDP support - Native support for proxying DNS over TCP +- UdpGW (UDP gateway) support for UDP over TCP, see the [wiki](https://github.com/tun2proxy/tun2proxy/wiki/UDP-gateway-feature) for more information ## Build Clone the repository and `cd` into the project folder. Then run the following: @@ -129,30 +130,40 @@ Tunnel interface to proxy. Usage: tun2proxy-bin [OPTIONS] --proxy [ADMIN_COMMAND]... Arguments: - [ADMIN_COMMAND]... Specify a command to run with root-like capabilities in the new namespace when using `--unshare`. - This could be useful to start additional daemons, e.g. `openvpn` instance + [ADMIN_COMMAND]... Specify a command to run with root-like capabilities in the new namespace when using `--unshare`. This could be + useful to start additional daemons, e.g. `openvpn` instance Options: - -p, --proxy Proxy URL in the form proto://[username[:password]@]host:port, where proto is one of - socks4, socks5, http. For example: socks5://myname:password@127.0.0.1:1080 - -t, --tun Name of the tun interface, such as tun0, utun4, etc. If this option is not provided, the - OS will generate a random one - --tun-fd File descriptor of the tun interface - --unshare Create a tun interface in a newly created unprivileged namespace while maintaining proxy - connectivity via the global network namespace - -6, --ipv6-enabled IPv6 enabled - -s, --setup Routing and system setup, which decides whether to setup the routing and system - configuration. This option is only available on Linux and requires root-like privileges. - See `capabilities(7)` - -d, --dns DNS handling strategy [default: direct] [possible values: virtual, over-tcp, direct] - --dns-addr DNS resolver address [default: 8.8.8.8] - -b, --bypass IPs used in routing setup which should bypass the tunnel, in the form of IP or IP/CIDR. - Multiple IPs can be specified, e.g. --bypass 3.4.5.0/24 --bypass 5.6.7.8 - --tcp-timeout TCP timeout in seconds [default: 600] - --udp-timeout UDP timeout in seconds [default: 10] - -v, --verbosity Verbosity level [default: info] [possible values: off, error, warn, info, debug, trace] - -h, --help Print help - -V, --version Print version + -p, --proxy Proxy URL in the form proto://[username[:password]@]host:port, where proto is one of + socks4, socks5, http. Username and password are encoded in percent encoding. For example: + socks5://myname:pass%40word@127.0.0.1:1080 + -t, --tun Name of the tun interface, such as tun0, utun4, etc. If this option is not provided, the + OS will generate a random one + --tun-fd File descriptor of the tun interface + --close-fd-on-drop Set whether to close the received raw file descriptor on drop or not. This setting is + dependent on [tun_fd] [possible values: true, false] + --unshare Create a tun interface in a newly created unprivileged namespace while maintaining proxy + connectivity via the global network namespace + --unshare-pidfile Create a pidfile of `unshare` process when using `--unshare` + -6, --ipv6-enabled IPv6 enabled + -s, --setup Routing and system setup, which decides whether to setup the routing and system + configuration. This option is only available on Linux and requires root-like privileges. + See `capabilities(7)` + -d, --dns DNS handling strategy [default: direct] [possible values: virtual, over-tcp, direct] + --dns-addr DNS resolver address [default: 8.8.8.8] + --virtual-dns-pool IP address pool to be used by virtual DNS in CIDR notation [default: 198.18.0.0/15] + -b, --bypass IPs used in routing setup which should bypass the tunnel, in the form of IP or IP/CIDR. + Multiple IPs can be specified, e.g. --bypass 3.4.5.0/24 --bypass 5.6.7.8 + --tcp-timeout TCP timeout in seconds [default: 600] + --udp-timeout UDP timeout in seconds [default: 10] + -v, --verbosity Verbosity level [default: info] [possible values: off, error, warn, info, debug, trace] + --daemonize Daemonize for unix family or run as Windows service + --exit-on-fatal-error Exit immediately when fatal error occurs, useful for running as a service + --max-sessions Maximum number of sessions to be handled concurrently [default: 200] + --udpgw-server UDP gateway server address, similar to badvpn-udpgw + --udpgw-max-connections Max udpgw connections, default value is 5 + -h, --help Print help + -V, --version Print version ``` Currently, tun2proxy supports HTTP, SOCKS4/SOCKS4a and SOCKS5. A proxy is supplied to the `--proxy` argument in the URL format. For example, an HTTP proxy at `1.2.3.4:3128` with a username of `john.doe` and a password of `secret` is