diff --git a/README.md b/README.md index 6902bdf..0f58790 100644 --- a/README.md +++ b/README.md @@ -43,9 +43,10 @@ docker run -d --network=host -e MTP_PORT=443 -e MTP_SECRET=d0d6e111bada5511fcce9 Where -* `-p 443` / `MTP_PORT` proxy port -* `-s d0d6e111bada5511fcce9584deadbeef` / `MTP_SECRET` proxy secret (don't append `dd`! it should be 32 chars long!) -* `-t dcbe8f1493fa4cd9ab300891c0b5b326` / `MTP_TAG` ad-tag that you get from [@MTProxybot](https://t.me/MTProxybot) +* `-p 443` / `MTP_PORT=…` proxy port +* `-s d0d6e111bada5511fcce9584deadbeef` / `MTP_SECRET=…` proxy secret (don't append `dd`! it should be 32 chars long!) +* `-t dcbe8f1493fa4cd9ab300891c0b5b326` / `MTP_TAG=…` ad-tag that you get from [@MTProxybot](https://t.me/MTProxybot) +* `-d` / `MTP_DD_ONLY=t` only allow "secure" connections (dd-secrets) ### To run with custom config-file @@ -274,6 +275,6 @@ Helpers Number of connections -```erlang +```bash /opt/mtp_proxy/bin/mtp_proxy eval 'lists:sum([proplists:get_value(all_connections, L) || {_, L} <- ranch:info()]).' ``` diff --git a/src/mtproto_proxy.app.src b/src/mtproto_proxy.app.src index e850945..d45d44f 100644 --- a/src/mtproto_proxy.app.src +++ b/src/mtproto_proxy.app.src @@ -30,7 +30,7 @@ %% `ip_lookup_services' will be tried one-by-one: if 1st is not responding, %% 2nd one will be tried and so on {ip_lookup_services, - ["http://ip.seriyps.ru/", + ["http://ipv4.seriyps.ru/", "https://digitalresistance.dog/myIp", "http://ipv4.myexternalip.com/raw"]}, %% {external_ip, "YOUR.SERVER.EXTERNAL.IP"}, diff --git a/start.sh b/start.sh index b755948..5ead358 100755 --- a/start.sh +++ b/start.sh @@ -2,6 +2,7 @@ # Script that helps to overwrite port/secret/ad tag from command line without changing config-files CMD="/opt/mtp_proxy/bin/mtp_proxy foreground" +# CMD="/opt/mtp_proxy/bin/mtp_proxy console" THIS=$0 usage() { @@ -10,13 +11,16 @@ usage() { echo "${THIS}" echo "To start in single-port mode configured from command-line:" echo "${THIS} -p -s -t " + echo "To only allow connections with randomized protocol (dd-secrets):" + echo "${THIS} -d" echo "Parameters:" echo "-p : port to listen on. 1-65535" echo "-s : proxy secret. 32 hex characters 0-9 a-f" - echo "-t : promo tag, that you get from @MTProxybot. 32 hex characters" - echo "port secret and tag can also be configured via environment variables:" - echo "MTP_PORT, MTP_SECRET, MTP_TAG" - echo "If both command line and environment are set, command line have higher priority" + echo "-t : promo tag that you get from @MTProxybot. 32 hex characters" + echo "-d: only allow 'secure' connections (with dd-secret)" + echo "port, secret, tag and secure mode can also be configured via environment variables:" + echo "MTP_PORT, MTP_SECRET, MTP_TAG, MTP_DD_ONLY" + echo "If both command line and environment are set, command line have higher priority." } error() { @@ -29,9 +33,10 @@ error() { PORT=${MTP_PORT:-""} SECRET=${MTP_SECRET:-""} TAG=${MTP_TAG:-""} +DD_ONLY=${MTP_DD_ONLY:-""} # check command line options -while getopts "p:s:t:h" o; do +while getopts "p:s:t:dh" o; do case "${o}" in p) PORT=${OPTARG} @@ -42,16 +47,25 @@ while getopts "p:s:t:h" o; do t) TAG=${OPTARG} ;; + d) + DD_ONLY="y" + ;; h) usage exit 0 esac done +DD_ARG="" + +if [ -n "${DD_ONLY}" ]; then + DD_ARG='-mtproto_proxy allowed_protocols [mtp_secure]' +fi + # if at least one option is set... if [ -n "${PORT}" -o -n "${SECRET}" -o -n "${TAG}" ]; then # If at least one of them not set... - [ -z "${PORT}" -o -z "${SECRET}" -o -z "${SECRET}" ] && \ + [ -z "${PORT}" -o -z "${SECRET}" -o -z "${TAG}" ] && \ error "Not enough options: -p '${PORT}' -s '${SECRET}' -t '${TAG}'" # validate format @@ -62,7 +76,7 @@ if [ -n "${PORT}" -o -n "${SECRET}" -o -n "${TAG}" ]; then [ -n "`echo $TAG | grep -x '[[:xdigit:]]\{32\}'`" ] || \ error "Invalid tag. Should be 32 chars of 0-9 a-f" - exec $CMD -mtproto_proxy ports "[#{name => mtproto_proxy, port => $PORT, secret => <<\"$SECRET\">>, tag => <<\"$TAG\">>}]" + exec $CMD $DD_ARG -mtproto_proxy ports "[#{name => mtproto_proxy, port => $PORT, secret => <<\"$SECRET\">>, tag => <<\"$TAG\">>}]" else - exec $CMD + exec $CMD $DD_ARG fi