Hi Toussaint,
I will explain things here on the list as there may be other people wondering about this...
The package you can download at https://pe1chl.nl/Softw/elproxy.tar.gz includes a README file and a configuration example. You can also look on the original Echolink.org site for the Java proxy and its documentation, this proxy has nearly the same configuration and of course the same usage scenario. See https://secure.echolink.org/proxy.htm
An echolink proxy server is a connection between a TCP session at the user side and a pair of UDP ports at the proxy. This has been invented because Echolink requires 2 UDP ports to be open to the public (5198 and 5199) to be able to receive incoming connections from other users. As users often are behind firewalls or NAT that they do not manage, the proxy server is used to move the UDP ports outside the own network and use only a single outgoing TCP connection which normally passes through NAT and firewalls without issue.
Each proxy server can be used only by a single user at a time, and it requires its own static IP address on the internet, without NAT. So you can usually cut some space out of a 44.190 allocation (or just any allocation) and run several proxy servers. We run 230 proxy servers on 44.137.75.x, and several other networks already offer proxy servers in the 44.190 space. See http://echolink.org/proxylist.jsp for a list of currently active proxies and their busy status. A proxy server, when configured and running, automatically registers itself in that list.
A relay server is a kind of "proxy server light" that was invented for use by the echolink app on mobile devices. It has some restrictions:
- users of a relay can only make outbound connections, you cannot connect someone behind a relay
- only one of all users of the same relay can connect to the same destination
As a big benefit, a relay can have multiple users so a single relay, occupying a single external IP address, can serve many of those mobile users. We are running 10 relay server instances which typically have 40-50 users each. But they consume only 10 IP addresses instead of 500. The echolink software detects conflicts when you want to connect someone who is already connected by another user of the same relay, and hops over to another relay. That is the reason it still is useful to run e.g. 10 relays on a single site, e.g. when several users want to connect to a popular repeater.
A relay server requires manual registration at Echolink. There is a geo-aware DNS service for the domain name relay.echolink.org and it returns a number of IP adresses of available relay servers, depending on the approximate location from where the request was made. (unless you use a VPN to the other side of the world or a DNS resolver somewhere else, of course) The mobile app picks a number of these addresses, sends a ping to each of them, and then connects to the relay that responds the quickest.
Normally you would first gain some experience with proxy servers, maybe setup the relays and use a trick to let relay.echolink.org resolve to your own relay servers locally on your network, and when it all works and you still want to do this you can contact the admin to suggest adding your relay servers to the pool. (our 10 relays consume about 150GB/month of data traffic so make sure that is no problem)
For all of this, software released by Echolink already exists. But it is written in Java and each instance of the program can only serve 1 proxy. My software is different in that it is written in C and a single instance of the program can serve hundreds of proxies and many relays, provided that the machine where it runs has many IP addresses on its network device (I use a separate dummy0 interface where I add all the IP addresses in a startup script). The total resource consumption (memory and CPU) of our 230proxy+10relay service is much less than even a single instance of the Java software :-) (about 3MB memory and 3-5% of a single core of a Xeon CPU E5-2667 v3 @ 3.20GHz)
I have been running these proxies for about 5 years and often the process has run for well over a year. In the 1.2.4c version I have had some stability problems but it looks like they now are under control. I have not changed the software version number to track each change, as originally all proxies had the version 1.2.3 (of the Java version) and I changed that to 1.2.3c for my C version. Now there is version 1.2.4c but it would actually have been better to increment the version at each change. I did not do that because I was unsure if there would been issues with that in the network (I know that there are issues when the version number of the clients is changed, because the server changes behavior depending on client version number...). However, the Echolink admin has recently confirmed there is no such issue with the proxy/relay version, so I will likely just increment it in the future. The file date of the .c file is now Apr 6, 2021. When you have an older version, please re-download it.
I also have been trying to add it to the GIT repository recently discussed, but I have encountered difficulty when trying to synchronize the entire history instead of only the most recent version. (due to my lack of knowledge of GitLab)
I don't think there is a dedicated mailing list, I am in direct contact with the Echolink author/admin when I have questions. But to run relays that is not required, you can just install the program, configure it, and provide the proxies which will automatically be used.
Rob
On 4/15/21 3:31 PM, Toussaint OTTAVI via 44Net wrote:
Le 24/03/2021 à 09:15, Rob PE1CHL via 44Net a écrit :
I have released a new version 1.2.4c of my Echolink proxy/relay software, which is now available on my websitehttps://pe1chl.nl/%C2%A0 ashttps://pe1chl.nl/Softw/elproxy.tar.gz
Hi Rob,
I have quite no experience with Echolink. But as far as users seem to enjoy this mode, I'd like to install a local relay and/or proxy on our 44.190 IP range. Do you have some documentation about how to setup a relay / proxy ? Do I need both ? Can the same software do both ? Do I need several instances of each ?
I know it may be a little bit off-topic here. Is there a dedicated mailing-list about Echolink sysop / server administration ?
Thank you in advance.
73 de TK1BI
44Net mailing list 44Net@mailman.ampr.org https://mailman.ampr.org/mailman/listinfo/44net