Alexander Bersenev
0614c35020
implement read timeout, if server sends nothing for 1 min, connection drops
2026-02-18 02:37:36 +05:00
Alexander Bersenev
368669a546
don't prefer ipv6 if using middle proxies, they are unstable
2026-02-18 02:10:55 +05:00
Alexander Bersenev
949ee12ed2
use utc timezone when getting the server time
2026-02-18 01:30:46 +05:00
Alexander Bersenev
1f7ce9e977
fix typos
2026-02-18 00:04:07 +05:00
Alexander Bersenev
8920faf650
better handling for server-side socket closing in connection pool
2026-02-17 21:14:42 +05:00
Alexander Bersenev
34f743858c
fix small bugs
2026-02-10 16:49:20 +05:00
Alexander Bersenev
375fee1535
update default proxy addresses
2025-11-18 04:27:47 +05:00
Alexander Bersenev
e0ea17978c
update client hello handling for newer tg clients
2025-11-18 03:46:19 +05:00
Rustam @SecondFry Gubaydullin
8bb885ada5
Upgrade base image to Ubuntu 24.04 and Python version
2025-11-13 14:09:38 +05:00
Alexander Bersenev
bc841cff48
change middle proxy default port from 80 to 8888
2024-11-12 01:08:57 +05:00
Alexander Bersenev
c89479000f
change ip of default second middle proxy server, it was updated on the telegram side
2024-09-21 02:51:18 +05:00
Viacheslav Komarov
74711c4212
Hotfix, Change ubuntu version to 22.04 LTS in Dockerfile ( #296 )
2023-10-30 18:49:14 +05:00
Alexander Bersenev
51b2482dec
support domains which send several tls records, but print warning
2023-02-27 00:40:25 +05:00
Alexander Bersenev
87f4370927
update ubuntu version in docker
2023-02-20 14:45:21 +05:00
Alexander Bersenev
a978eae922
ignore all new rpc calls instead of closing connection
2023-02-20 14:37:16 +05:00
Alexander Bersenev
88c8c57a44
add handling of some unknown new rpc
2023-02-17 20:16:52 +05:00
Alexander Bersenev
446682521b
use newer Ubuntu and Python in Dockerfile
2022-05-09 00:05:24 +05:00
Alexander Bersenev
b26873176a
compat with python3.10
2022-05-09 00:00:14 +05:00
Alexander Bersenev
6e8e8b63b2
add check if returned ipv6 address is correct
2021-03-02 17:04:54 +05:00
AlisonTNT
3b4f239cc1
Add Pysocks in Dockerfile ( #239 )
...
It's necessary if using upstream SOCKS5 proxy.
2020-09-29 18:29:49 +05:00
Erfan
0283d6264a
set the home domain instead of IP ( #231 )
...
* set the home domain
set the home domain for the proxy, has an influence only on the log message
* fixed a bug
2020-08-09 13:51:43 +05:00
Erfan
15a8f607ca
added ability to load time from local time set on original server ( #230 )
...
using this command the local time setting will be pushed to docker as a read-only file so you can use your local time
2020-06-20 15:59:25 +05:00
Alexander Bersenev
6076db9f8c
add certificates to Dockerfile
2020-06-17 15:45:47 +05:00
Alexander Bersenev
6560a6c1d2
use new ubuntu 20.04 as base image
2020-04-28 16:20:33 +05:00
Peter Dave Hello
24479e68ab
Add --no-install-recommends to apt-get in Dockerfile ( #221 )
...
Prevent to install unnecessary recommended packages, make it lighter.
2020-04-28 15:25:38 +05:00
Peter Dave Hello
6ecf0ec9ac
Refactor Dockerfile with less layer and improved layer cache ( #220 )
2020-04-27 17:22:57 +05:00
Allineer
18a80e52cd
metrics: broken pipe fix ( #210 )
...
I think, this fixes my issue #208 .
2020-03-29 22:18:33 +05:00
Alexander Bersenev
ea3b8a44c3
restrict the logs size with 100MB
2020-03-17 03:11:13 +05:00
Alexander Bersenev
37d570f8dc
handle unknown ips, e.g. from unix sockets
2020-03-05 13:55:10 +05:00
Alexander Bersenev
8f48e9ef65
fix the missing constant
2020-02-27 19:17:15 +05:00
Alexander Bersenev
76bc2253eb
small code style fixes
2020-02-25 20:41:08 +05:00
Alexander Bersenev
07bd9b795a
handle bad secrets in configs
2020-02-25 02:41:49 +05:00
Alexander Bersenev
1cad031947
make dataflow functions top level functions for better speed and memory consumption
2020-02-23 03:03:15 +05:00
Alexander Bersenev
923dac842b
handle broken pipe error
2020-02-17 12:18:13 +05:00
Alexander Bersenev
1a63fdae11
add an option to ignore time skew
2020-02-15 17:12:15 +05:00
Alexander Bersenev
c7b6dcf3c2
save the utilitary task as a variable to prevent early garbage collecting
2020-02-14 18:58:25 +05:00
Alexander Bersenev
a95b1ec3c1
fix typo
2020-02-13 18:21:09 +05:00
Alexander Bersenev
49bc5d1f3b
get rid of "socket.send() raised exception" messages
2020-02-13 18:14:37 +05:00
Alexander Bersenev
c2414c3487
simplify dockerfile
2020-02-13 15:08:01 +05:00
Alexander Bersenev
8b26cc843d
catch IncompleteReadError while handling a bad client
2020-02-13 14:22:32 +05:00
Alexander Bersenev
639dea5e8d
use debian image by default
2020-02-13 04:13:49 +05:00
Alexander Bersenev
c48cacce83
add statisctics about up/down traffic
2020-02-12 16:28:18 +05:00
Alexander Bersenev
2bb0ef0b1f
simplify initialization and stats
2020-02-12 15:41:05 +05:00
Alexander Bersenev
f5ee5db86f
use asyncio.all_tasks on new pythons
2020-02-11 19:10:43 +05:00
Peter Dave Hello
9c50cab94e
Fix file permission in Docker image ( #189 )
...
`chown` needs to be done "after" the file copy, otherwise there is no
meaning to do it as /home/tgproxy is default owned by tgproxy already.
2020-02-11 13:50:48 +02:00
Boris Klimenko
199eaeb7c4
Alpine 3.11, Python 3.8 ( #185 )
2020-01-22 20:04:29 +02:00
Alexander Bersenev
66ac871a74
remove the hackish logic against replay attacks because it stopped to work with new android clients
...
see https://github.com/alexbers/mtprotoproxy/issues/183
2020-01-16 19:05:18 +05:00
Alexander Bersenev
c5344df0eb
Add wiki links to readme
2019-12-14 14:55:10 +05:00
Alexander Bersenev
93ad268d48
add ip logging
2019-11-29 17:30:10 +05:00
Alexander Bersenev
1c29465b6e
change comment in config
2019-11-22 02:11:41 +05:00
Alexander Bersenev
d41b4abf35
MODES option instead of SECURE_ONLY and TLS_ONLY
2019-11-22 02:05:05 +05:00
Alexander Bersenev
7f19b3f78d
more secure defaul settings
2019-11-19 05:22:49 +05:00
Alexander Bersenev
0549fd7200
increase the connection pool size
2019-11-19 05:00:53 +05:00
Alexander Bersenev
fd75ca3cf9
remove loop argument from create server for compatibility with Python 3.8
2019-11-14 02:43:10 +05:00
Alexander Bersenev
522b0cfe75
move more logic to pooled connection
2019-11-13 02:56:05 +05:00
Alexander Bersenev
4a4d449a34
init pooled connections to save one more round trip time
2019-11-13 02:31:51 +05:00
Alexander Bersenev
8c15fc8fe0
use socket from pool in the creation order
2019-11-12 04:31:47 +05:00
Alexander Bersenev
e436792992
introduce connection pool to reduce pings
2019-11-12 03:53:10 +05:00
K900
07759f67cb
Fix running on Python 3.8 ( #161 )
...
3.8 removes the asyncio.streams re-export of `IncompleteReadError`, so just access it directly from `asyncio`, like everywhere else in the code already does.
2019-11-11 16:04:14 +05:00
Alexander Bersenev
f525cc9611
more strict validation of tls domain
2019-10-30 22:27:46 +05:00
dasmfm
c010543889
Prefix for Prometheus metrics ( #151 )
...
Added default prefix for Prometheus metrics.
2019-10-09 14:35:02 +05:00
Alexander Bersenev
0a41479054
add copy instruction to docker-compose
2019-10-09 01:56:48 +05:00
Alexander Bersenev
5f206361f2
revert the last commit
2019-10-09 01:56:06 +05:00
Alexander Bersenev
6980bfd3be
add copy instruction to docker-compose
2019-10-09 01:52:09 +05:00
Alexander Bersenev
027ee2713b
use tls-only mode in the default config
2019-10-08 14:44:09 +05:00
Alexander Bersenev
3c4c92cdb2
adjust stats duration bucket sizes
2019-10-08 14:42:03 +05:00
Alexander Bersenev
3ef826cd6b
more logical name for connection duration
2019-09-21 23:55:53 +05:00
Alexander Bersenev
9ec1e543bd
expose the length of connections as metrics
2019-09-21 23:17:00 +05:00
Alexander Bersenev
fae04ed3c7
do not export proxy links by default
2019-09-20 18:57:37 +05:00
Alexander Bersenev
25685f370c
reword the link desc
2019-09-20 18:10:37 +05:00
Alexander Bersenev
1feb8e5fc7
export proxy links as metrics
2019-09-20 17:52:30 +05:00
Alexander Bersenev
5e488203a2
check for socks mode before importing uvloop
2019-09-20 17:26:30 +05:00
Alexander Bersenev
94fd98a1fb
correct spelling
2019-09-20 17:19:33 +05:00
Alexander Bersenev
4c5b0803fa
add upstream socks proxy consistency checks
2019-09-20 17:17:16 +05:00
Alexander Bersenev
8fa8aabc8e
ability to specify socks user and pass
2019-09-20 16:13:06 +05:00
Alexander Bersenev
f2fbaa923b
refactor upstream proxy handling
2019-09-20 16:06:59 +05:00
Alexander Bersenev
79eaabdd23
move socks handling in the config parsing
2019-09-20 15:40:33 +05:00
Alexander Bersenev
23c7b0d53b
make the socks module optional
2019-09-20 15:38:18 +05:00
pasha-zzz
516600a32d
Add support for upstream SOCKS5 proxy ( #143 )
2019-09-20 15:28:29 +05:00
Alexander Bersenev
5fcd1c0158
change metrics pushes to pulls
2019-09-19 02:27:57 +05:00
Alexander Bersenev
781549f37f
update readme
2019-09-19 00:08:20 +05:00
Alexander Bersenev
dc1223fd90
add hanshake_timeout metric
2019-09-18 23:22:06 +05:00
Alexander Bersenev
0d52ae0bc7
rename metrics, add connects_all metric
2019-09-18 23:13:32 +05:00
Alexander Bersenev
2b1469985d
add an ability to export metrics to prometheus
2019-09-18 19:44:19 +05:00
Alexander Bersenev
4784491800
use only half of the digest as a key for used digest
2019-09-13 17:20:32 +05:00
Alexander Bersenev
7a2c6b9825
cast client port to int
2019-09-13 01:19:19 +05:00
Alexander Bersenev
37307a98fb
print replay attackers summary
2019-09-08 14:28:46 +05:00
Alexander Bersenev
02b39168c3
print the possible replay-attackers summary instead of every time
2019-09-08 14:12:06 +05:00
Alexander Bersenev
163e7b7cce
print a message about getting the cert
2019-09-08 03:12:19 +05:00
Alexander Bersenev
1ed13d9efa
get rid from annoying time skew messages, print summary instead
2019-09-08 02:01:23 +05:00
Alexander Bersenev
51c8d68271
disable the first bad packet heuristics if the tls-only mode activated, it has time-based protection instead
2019-09-08 01:09:44 +05:00
Alexander Bersenev
50cd74051f
add a message if uvloop is found
2019-08-30 16:05:08 +05:00
Alexander Bersenev
1d826866d1
print time skew message as one line
2019-08-26 17:00:34 +05:00
Alexander Bersenev
ff6b826e13
do not output canceled errors to get rid from scarry traceback on the proxy termination
2019-08-26 16:51:48 +05:00
Alexander Bersenev
3315ac1df6
add one more param into the undocummented mode of launch
2019-08-26 16:07:35 +05:00
Alexander Bersenev
4184875405
advice to use uvloop instead of PyPy interpreter. The uvloop gives a better speed and memory consumption
2019-08-25 03:05:45 +05:00
Alexander Bersenev
d34a15bca3
nicer exception printing
2019-08-23 23:55:26 +05:00
Alexander Bersenev
56bfab51d5
necer exception printing
2019-08-23 23:51:53 +05:00
Alexander Bersenev
4f8b1b16db
modify the workaround
2019-08-23 18:12:53 +05:00
Alexander Bersenev
27f5d249a7
add a workaround against the clients who send zero as their itimestamp
2019-08-23 17:19:03 +05:00
Alexander Bersenev
c51f6f85b8
correct the byte in the initial server hello
2019-08-23 05:24:18 +05:00
Alexander Bersenev
44a52bf958
remove the workaround
2019-08-23 02:19:21 +05:00
Alexander Bersenev
8520a26837
ability to disable replay protection
2019-08-23 01:59:53 +05:00
Alexander Bersenev
068996ab36
fix small typo
2019-08-23 01:45:54 +05:00
Alexander Bersenev
4faa96732f
workaround: the fifth telegram server doesn't answer on IPv6
2019-08-23 01:43:44 +05:00
Alexander Bersenev
bee0b3be6b
cache the ip address of mask host
2019-08-23 01:18:24 +05:00
Alexander Bersenev
09fec8ca99
Merge branch 'master' of github.com:alexbers/mtprotoproxy
2019-08-21 16:15:31 +05:00
Alexander Bersenev
25d76bee09
do not create the copy of cryptography adapter classes
2019-08-21 16:14:48 +05:00
Alexander Bersenev
a680b3e854
Update README.md
2019-08-21 03:06:20 +05:00
Alexander Bersenev
3fe87954a2
Update README.md
2019-08-21 02:50:34 +05:00
Alexander Bersenev
3fb3da139f
Update README.md
2019-08-21 02:05:57 +05:00
Alexander Bersenev
014e450e62
change readme
2019-08-21 02:03:55 +05:00
Alexander Bersenev
04491f8a6a
use hand-made random generator to make randoms more unpredictable
2019-08-20 01:58:19 +05:00
Alexander Bersenev
e081d6b727
generate plausible x25519 public key for server hello also
2019-08-19 21:48:54 +05:00
Alexander Bersenev
ea28a7055a
small readme fixes
2019-08-19 19:16:36 +05:00
Alexander Bersenev
45cb849ca9
change tls status from experimental to new
2019-08-19 18:50:52 +05:00
Alexander Bersenev
e66818326e
generate plausible keys in the key share extension
2019-08-19 17:48:10 +05:00
Alexander Bersenev
4a1bf1ec6a
print warning about default settings on stderr
2019-08-19 04:59:05 +05:00
Alexander Bersenev
854aaa1f24
add flush on print
2019-08-19 04:57:48 +05:00
Alexander Bersenev
5b0ad45cb9
cosmetic fix
2019-08-19 04:56:37 +05:00
Alexander Bersenev
26e00a7409
give some advices about non-secure settings on startup
2019-08-19 04:55:09 +05:00
Alexander Bersenev
ac6d20a897
redesing exception handling logic in handle_bad_client
2019-08-19 04:13:50 +05:00
Alexander Bersenev
06ed40c815
handle unknown ip situation, for example for unix-sockets
2019-08-19 03:44:08 +05:00
Alexander Bersenev
1938c7d3bb
change comment
2019-08-19 03:33:04 +05:00
Alexander Bersenev
01fd1a34c2
be more clear about proxy protocol usage
2019-08-19 03:31:10 +05:00
Alexander Bersenev
1a0977b10e
handle the connection resets
2019-08-19 00:25:54 +05:00
Alexander Bersenev
9dc8521c18
copy the way how the mask server closes the tcp connection to the client
2019-08-18 21:59:33 +05:00
Alexander Bersenev
4169e6acab
move the import to the top of the file
2019-08-17 15:20:05 +05:00
Vladislav Grishenko
121a8974de
add unix socket support ( #127 )
...
Config option LISTEN_UNIX_SOCK = "/path/to/socket.file" allows to listen
on specified unix socket in additional to (or instead of) configured ip
addresses. Listening on a socket can be useful for connection from local
reverse proxy w/o wasting tcp ports and network subsystem resources just
for inter-process communication.
Default value is empty - socket not used.
2019-08-17 15:11:49 +05:00
Alexander Bersenev
fdf5efe3d2
change max tls record size to make it look like complying https://tools.ietf.org/html/rfc8446\#section-5.2 instead of the section 5.1
2019-08-17 14:42:49 +05:00
Alexander Bersenev
015d0a2012
be more tolerate to time skewing. This should cover 90% of cases
2019-08-17 13:21:57 +05:00
Alexander Bersenev
dcad0bd51b
if the client time is skewed, just print a message for a while. Additional analysis needed
2019-08-17 04:48:17 +05:00
Alexander Bersenev
da9e51ed03
better error texts
2019-08-17 02:07:17 +05:00
Alexander Bersenev
59306e6e67
take cert length from the masked host
2019-08-16 20:25:23 +05:00
Alexander Bersenev
7502d1dc31
add one more message about the client time skew
2019-08-16 18:11:50 +05:00
Alexander Bersenev
9df42cda79
time based protection against replay attack
2019-08-16 18:01:20 +05:00
Alexander Bersenev
a65f7a8e17
add one more nonce in the reserved nonces list
2019-08-16 16:45:22 +05:00
Alexander Bersenev
8a4bc77125
make default client handshake timeout random
2019-08-16 16:23:14 +05:00
Alexander Bersenev
294cb65738
rename the function from pseudo tls to the fake tls to make the terminology consistent
2019-08-16 16:15:09 +05:00
Alexander Bersenev
559c577df1
early break if the protocol is not tls
2019-08-16 15:17:07 +05:00
Alexander Bersenev
ccc8c3fb14
read initial tls header byte by byte
2019-08-16 15:07:27 +05:00
Alexander Bersenev
e061cd81c4
optimize reading a handshake by detecting tls early
2019-08-15 18:26:56 +05:00
Alexander Bersenev
7527d402d6
mimic as tls 1.3 instead of tls 1.2 to bypass uncrypted certificates problem
2019-08-15 16:23:44 +05:00
Vladislav Grishenko
f51a4bfe34
Add proxy protocol v1/v2 support ( #119 )
...
* add proxy protocol v1/v2 support
With fake-tls enabled, it was still quite hard to use mtprotoproxy
as backend behing some reverse https/tls proxy (nginx, haproxy, etc)
because it still need client address & port info.
With nginx already configured to use stream proxy with proxy protocol,
it was impossibe to connect due additional proxy header transmission
before real hadshake.
Adding general support of proxy protocol fixed both issues.
New config option PROXY_PROTOCOL = True enables transparent support,
unproxied incoming connections will still be accepted.
Since reverse proxy needs to be trusted, option disabled by default.
References:
* https://www.haproxy.com/blog/haproxy/proxy-protocol/
* http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
* slightly optimize proxy v1 error path
* rework proxy handler
* deny direct connection with enabled PROXY_PROTOCOl per specs
* simplify proxy header checking
* use textual form of proxy v1 header
* drop useless find() call
* fix client address logging
2019-08-14 23:03:01 +05:00
Alexander Bersenev
d9fa5b222a
remove unused variable
2019-08-14 04:07:36 +05:00
Alexander Bersenev
91ec36653e
add slots to classes, thanks to MrMrRobat
2019-08-14 03:59:44 +05:00
Allineer
e43ae99911
Fix default port in the main script.
...
Different port in main and config files. It's changed to 3256.
2019-08-13 16:42:14 +05:00
Alexander Bersenev
ab52521a25
change the tls links to hex encoding until base64 is fixed
2019-08-13 16:26:38 +05:00
Alexander Bersenev
53184470e9
fixed cached readings in fake tls
2019-08-13 15:23:47 +05:00
Alexander Bersenev
48330f1e8a
shrunk max tls record size according to https://tools.ietf.org/html/rfc8446\#section-5.1
2019-08-13 03:31:49 +05:00
Alexander Bersenev
4e2cb87685
change the comment
2019-08-13 02:52:41 +05:00
Alexander Bersenev
a030ae2978
redirect bad clients to some host
2019-08-13 02:06:17 +05:00
Alexander Bersenev
3d8961316e
use urlsafe version of base64 encoder
2019-08-11 21:28:55 +05:00
Alexander Bersenev
d7c163c0dc
add tls only mode
2019-08-11 21:22:10 +05:00
Alexander Bersenev
80062c95bc
print proxy addresses and logins on reload
2019-07-26 14:51:41 +05:00
Alexander Bersenev
c1fdc4c0a3
move setting instant rst into a function
2019-07-25 02:09:10 +05:00
Alexander Bersenev
f5d41e9aa7
close tcp connection with rst when tls failed
2019-07-25 02:05:04 +05:00
Alexander Bersenev
4e754a75bd
add an experimental note for the new proto
2019-07-24 03:16:03 +05:00
Alexander Bersenev
1a934f992d
add fake-tls mode
2019-07-24 03:03:36 +05:00
Alexander Bersenev
c543bc1c3d
launch script explicitely using python
2019-07-23 18:01:44 +05:00
Alexander Bersenev
96ba65aba0
add one more reserved string in the nonce beginnings
2019-07-23 10:26:58 +05:00
Alexander Bersenev
985e3eb546
add user data quotas
2019-07-22 21:34:09 +05:00
Alexander Bersenev
129f5cc981
use global var to enable direct connect
2019-07-22 18:55:27 +05:00
Alexander Bersenev
6fb022284e
check if ipv6 is available every time before using
2019-07-22 18:24:03 +05:00
Alexander Bersenev
4691917c34
optimize docker containers for reloading
2019-07-22 17:21:43 +05:00
Alexander Bersenev
7d11ff07bd
cancel all tasks on exit
2019-07-19 15:58:54 +05:00
Alexander Bersenev
1c875e3d31
do not listen if listen addr is zero
2019-07-19 15:46:34 +05:00
Alexander Bersenev
a2890cf213
redesign the config handling
2019-07-19 03:11:18 +05:00
Alexander Bersenev
026849cb54
rename USER_EXPIRATION to USER_EXPIRATIONS and reformat the code to comply pep8
2019-06-29 13:15:08 +05:00
Alexander Bersenev
4f1fea79eb
Merge pull request #107 from pouryare/master
...
adding expiration date for users
2019-06-29 12:51:51 +05:00
pouryare
50df84bc80
Update mtprotoproxy.py
2019-06-28 16:41:41 +04:30
pouryare
6823117c63
Update mtprotoproxy.py
2019-06-27 06:23:45 +04:30
pouryare
d21eab60c2
Update mtprotoproxy.py
...
adding expiration date for users
2019-06-27 06:05:01 +04:30
Alexander Bersenev
312539c3b8
more reliable protection from replay attacks
2019-05-30 14:36:24 +05:00
Alexander Bersenev
a9e12bb1bb
add warning about default secrets
2019-05-17 02:45:24 +05:00
Alexander Bersenev
6c5155ce07
rename USER_CONN_LIMITS to USER_MAX_TCP_CONNS
2019-05-17 02:35:39 +05:00
Alexander Bersenev
422c409480
update the ip address of one of the telegram servers
2019-05-17 00:27:40 +05:00
Alexander Bersenev
cdd4fef49e
better comment
2019-05-15 17:42:33 +05:00
Alexander Bersenev
9da90d25d3
ability to specify user limits
2019-05-15 17:16:01 +05:00
Alexander Bersenev
eba7f9be69
protect from time skewing. The proxy protocol is very sensible to clock skew. If the skew is detected, disable advertising, making the connection directly to tg servers, instead of middle proxies
2019-05-12 01:42:20 +05:00
Alexander Bersenev
af8c102449
disable one fingerprinting protection by default because it causes trouble on some ios clinets
2019-05-09 03:29:53 +05:00
Alexander Bersenev
a01896522d
changed the comment
2019-05-09 02:59:06 +05:00
Alexander Bersenev
6f70ff3003
adaptive buffer sizes
2019-05-09 02:51:36 +05:00
Alexander Bersenev
d48c177e36
comment out the message active fingerprinting - there is too many messages
2019-04-23 15:01:34 +05:00
Alexander Bersenev
f55ae68092
even more protect against replay-based fingerprinting
2019-04-20 15:02:13 +05:00
Alexander Bersenev
4cae6290b9
active fingerprinting detection and blocking
2019-04-20 04:44:11 +05:00
Alexander Bersenev
830d55fe77
fix ipv4 resolver url
2019-04-04 16:06:24 +05:00
Alexander Bersenev
66d9c03ff9
set secure mode on by default because most tg clients support this mode and many countries are able to detect proxies in non-secure mode
2019-03-10 23:02:27 +05:00
Alexander Bersenev
73592c4f72
change ip address resovers since the old one doesnt work anymore
2019-02-15 20:11:57 +05:00
Alexander Bersenev
b0cb48f684
ignore errors in setsockopt on old kernels
2018-12-30 14:44:28 +05:00
Alexander Bersenev
cb10355681
more verbose error messages on https failures
2018-12-30 14:25:17 +05:00
Alexander Bersenev
bd8e0f935d
add some endlines
2018-11-27 22:25:47 +05:00
Alexander Bersenev
e2435461ca
refactoring
2018-11-27 22:15:38 +05:00
Alexander Bersenev
47218748aa
more reliable ip detection
2018-11-25 22:25:13 +05:00
Alexander Bersenev
b082d06f9b
Merge branch 'master' into stable
2018-11-14 02:46:31 +05:00
Alexander Bersenev
5187725088
Revert "just for history: attempting to pretent cloudfare service"
...
This reverts commit dd1d0a6262 .
2018-11-13 02:18:13 +05:00
Alexander Bersenev
dd1d0a6262
just for history: attempting to pretent cloudfare service
2018-11-13 02:18:04 +05:00
Alexander Bersenev
d5daf8bbdf
add secure only mode example in config
2018-11-13 01:11:24 +05:00
Alexander Bersenev
780dbc5866
document all advanced options
2018-09-20 04:03:32 +05:00
Alexander Bersenev
298614b1f6
add an ability to specify listen address
2018-09-16 12:50:41 +05:00
Alexander Bersenev
f5c30c6115
secure only mode
2018-08-29 00:04:58 +05:00
Alexander Bersenev
e4473d6374
Merge branch 'master' into stable
2018-08-01 21:32:34 +05:00
Alexander Bersenev
c2278501bf
change the ip obtaining service
2018-08-01 21:30:05 +05:00
Alexander Bersenev
534b26cd04
Merge branch 'master' into stable
2018-07-13 12:57:46 +05:00
Alexander Bersenev
c1bef68602
update alpine linux in the image
2018-07-10 19:22:04 +05:00
Alexander Bersenev
8e79dacd26
make the passive protocol detection harder
2018-07-10 15:48:39 +05:00
Alexander Bersenev
520a26aa89
fix typo
2018-07-08 23:52:57 +05:00
Alexander Bersenev
647b6f6edd
add connect retrying
2018-07-08 19:05:45 +05:00
Alexander Bersenev
c2ad0de665
increase default buffer limit
2018-07-08 17:48:13 +05:00
Alexander Bersenev
47f7c088af
Merge branch 'master' into stable
2018-07-05 16:12:56 +05:00
Alexander Bersenev
6f8bfdb568
add timeout error to errno
2018-07-05 15:45:53 +05:00
Alexander Bersenev
0a7e2d85b8
shrink timeouts, removed annoying message about timeouts
2018-07-04 13:54:27 +05:00
Alexander Bersenev
0caf5f89a8
count msgs
2018-07-02 02:28:43 +05:00
Alexander Bersenev
33fabe7590
ignore no route to host error
2018-07-02 00:47:35 +05:00
Alexander Bersenev
c0ed5e1e38
Merge branch 'master' of github.com:alexbers/mtprotoproxy
2018-07-01 16:45:34 +05:00
Alexander Bersenev
bcac5eb878
add sending timeout
2018-07-01 16:43:54 +05:00
Alexander Bersenev
b38084bf36
add information about Prometheus to readme
2018-07-01 01:40:30 +05:00
Alexander Bersenev
675d5a6aba
send buffer size on the direct handshake also
2018-06-30 23:09:43 +05:00
Alexander Bersenev
b31768165c
buffers redesign
2018-06-30 22:54:11 +05:00
Alexander Bersenev
372861ac6e
support for secure mode
2018-06-29 18:51:47 +05:00
Alexander Bersenev
6a27096618
add secure tag
2018-06-29 17:52:37 +05:00
Alexander Bersenev
93f71f5ec2
Merge branch 'master' into stable
2018-06-29 12:48:58 +05:00
Alexander Bersenev
03f7ca1d4c
more reliable logic to check reuseport availability
2018-06-29 02:00:46 +05:00
Alexander Bersenev
3477402c0d
use cryptography module in docker file, do not copy pyaes
2018-06-29 01:07:16 +05:00
Alexander Bersenev
532021ab87
support for cryptography module and advise to use it
2018-06-28 20:47:12 +05:00
Alexander Bersenev
6900cdda43
Merge branch 'master' of github.com:alexbers/mtprotoproxy
2018-06-27 20:04:28 +05:00
Alexander Bersenev
ec1c6b4fb6
we need at least one undocumented launching way :)
2018-06-27 20:04:05 +05:00
Alexander Bersenev
63b689e3bf
Add a section about advanced usage
2018-06-27 18:25:40 +05:00
Alexander Bersenev
71e3206b19
check if signal exists before placing it. It can absent in some OSes, like Windows
2018-06-27 13:33:51 +05:00
Alexander Bersenev
7eea7d3201
replace infinite loop with timeout with while loop, when the client is bad
2018-06-27 11:13:42 +05:00
Alexander Bersenev
2e86308e90
Revert "Revert "simplify dissconnect logic". The idea with task cancelation doesn't work"
...
This reverts commit 32d3bffc7b .
2018-06-27 11:11:50 +05:00
Alexander Bersenev
d74bb68f03
Revert "Revert "refactor task canceling a bit". The idea with the task cancelation doesn't work"
...
This reverts commit b74079c433 .
2018-06-27 11:11:45 +05:00
Alexander Bersenev
5f35b4ed0a
add debugging signal
2018-06-27 01:14:44 +05:00
Alexander Bersenev
b74079c433
Revert "refactor task canceling a bit". The idea with the task cancelation doesn't work
...
This reverts commit 444a1876b6 .
2018-06-27 01:05:08 +05:00
Alexander Bersenev
32d3bffc7b
Revert "simplify dissconnect logic". The idea with task cancelation doesn't work
...
This reverts commit a20b1c9929 .
2018-06-27 01:04:06 +05:00
Alexander Bersenev
a20b1c9929
simplify dissconnect logic
2018-06-26 22:53:46 +05:00
Alexander Bersenev
444a1876b6
refactor task canceling a bit
2018-06-26 20:39:43 +05:00
Alexander Bersenev
ed088d9449
revert the last commit
2018-06-26 20:21:51 +05:00
Alexander Bersenev
accba06b45
count client stats only for successfull clients
2018-06-26 20:17:52 +05:00
Alexander Bersenev
bd3d9731d7
if the handshake failed, just consume all the data
2018-06-26 11:48:58 +05:00
Alexander Bersenev
9077ceb471
simplify current connects counting
2018-06-26 03:38:11 +05:00
Alexander Bersenev
d2ff0f61e4
add handshake timeout, refactor client handling a bit
2018-06-26 03:24:45 +05:00
Alexander Bersenev
d56c995ee2
use uvloop if available
2018-06-22 15:26:33 +05:00
Alexander Bersenev
51c40903ab
allows to bind on privilleged ports
2018-06-21 10:19:38 +05:00
Alexander Bersenev
e1d592cd84
enable port reuse on non-windows platforms
2018-06-19 21:51:02 +05:00