Unverified Commit a9701a3a authored by Sergey Prokhorov's avatar Sergey Prokhorov

Merge branch 'master' into multiplexing

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