All Projects → nakov → NakovForwardServer

nakov / NakovForwardServer

Licence: MIT license
TCP port forwarding software, written in Java: forwards a local TCP port (e.g. 127.0.0.1:1521) to external port (e.g. 0.0.0.0:1522)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to NakovForwardServer

tunman
Comprehensive solution for SSH tunnels - respawning, healthchecking/monitoring
Stars: ✭ 43 (+4.88%)
Mutual labels:  reverse-proxy, tunneling
anytunnel
内网穿透,内网穿透代理服务器,商用内网穿透代理系统,内网穿透平台,内网穿透多用户会员系统。
Stars: ✭ 115 (+180.49%)
Mutual labels:  tcp, reverse-proxy
reverse-tunnel
Reverse tunnel TCP and UDP
Stars: ✭ 100 (+143.9%)
Mutual labels:  tcp, tunneling
Goproxy
🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。
Stars: ✭ 11,334 (+27543.9%)
Mutual labels:  tcp, reverse-proxy
LightTunnel
LightTunnel-内网穿透映射工具,支持TCP、HTTP、HTTPS穿透映射,支持Windows、Linux、Mac、Android系统
Stars: ✭ 40 (-2.44%)
Mutual labels:  tcp, reverse-proxy
Portfusion
Haskell-powered cross-platform transport-layer distributed reverse / forward proxy & tunneling solution – currently available for all TCP protocols (RDP, VNC, HTTP(S), SSH, ...).
Stars: ✭ 177 (+331.71%)
Mutual labels:  tcp, reverse-proxy
MQTTnet
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
Stars: ✭ 3,309 (+7970.73%)
Mutual labels:  tcp
overload
📡 Overload DoS Tool (Layer 7)
Stars: ✭ 167 (+307.32%)
Mutual labels:  tcp
okhoxi-serac
冰塔协议-传输层协议
Stars: ✭ 33 (-19.51%)
Mutual labels:  tcp
netxduo
Azure RTOS NetX Duo is an advanced, industrial-grade TCP/IP network stack designed specifically for deeply embedded real-time and IoT applications
Stars: ✭ 151 (+268.29%)
Mutual labels:  tcp
mqtt
The fully compliant, embeddable high-performance Go MQTT v5 server for IoT, smarthome, and pubsub
Stars: ✭ 356 (+768.29%)
Mutual labels:  tcp
palantir
🔮 HTTP REST API reverse proxy
Stars: ✭ 21 (-48.78%)
Mutual labels:  reverse-proxy
NLog
Flexible logging for C# and Unity
Stars: ✭ 158 (+285.37%)
Mutual labels:  tcp
iroko
A platform to test reinforcement learning policies in the datacenter setting.
Stars: ✭ 55 (+34.15%)
Mutual labels:  tcp
ChatServerTCP
保密型聊天软件服务器 /Private Chat Server
Stars: ✭ 14 (-65.85%)
Mutual labels:  tcp
authentik
The authentication glue you need.
Stars: ✭ 2,941 (+7073.17%)
Mutual labels:  reverse-proxy
jesi
Hypermedia API Accelerator
Stars: ✭ 19 (-53.66%)
Mutual labels:  reverse-proxy
go-eventserver
A socket server which reads events from an event source and forwards them to the user clients when appropriate
Stars: ✭ 18 (-56.1%)
Mutual labels:  tcp
quebec-power-grid-talk
🎭 Quebec's 735kv power lines can survive the apocalypse, but can they run TCP?!
Stars: ✭ 31 (-24.39%)
Mutual labels:  tcp
p3y
A single binary reverse proxy written in go. It was developed for use in Kubernetes, to wrap services like Prometheus with simple BasicAuth and TLS encryption.
Stars: ✭ 15 (-63.41%)
Mutual labels:  reverse-proxy

NakovForwardServer (TCP Reverse Proxy)

TCP port forwarding software, written in Java: forwards local TCP port (e.g. 127.0.0.1:1521) to external network port (e.g. 0.0.0.0:1522). Works as reverse proxy server (like nginx) to tunnel a TCP connection through external port to an internal server+port in a local network.

Nakov TCP Socket Forward Server - freeware Version 1.0 - March, 2002 (c) 2001 by Svetlin Nakov - http://www.nakov.com

Short decription: Nakov Forward Server is designed to forward (redirect) TCP connections from a client to a server choosen from a servers list. When a client is connected to Nakov Forward Server, a new connection is opened to some of the specified destination servers and all the traffic from destination server to Nakov Forward Server is redirected to the client and also all the traffic from the client to Nakov Forward Server is redirected to destination server. That way Nakov Forward Server makes transparent redirection of TCP connections.

The TCP connection data transfer goes like this:

CLIENT  <-->  NAKOV_FORWARD_SERVER  <-->  DESTINATION_SERVER

Clients and destination servers communicate only with Nakov Forward Server.

Typical usage scenario is to access an internal network resource from Internet by TCP port forwarding:

    Internet IP         <-->    NakovForwardServer       <-->     Internal network IP
(e.g. 62.176.119.226)         (e.g. 212.50.7.153:8888)          (e.g. 192.168.1.117:80)

Nakov Forward Server supports failt tolerance. When some of the servers in the list fail to respond to TCP connect request (dead server), Nakov Forward Server tries the next server in the list until it finds alive server. All dead servers are checked if they are alive through some time interval and when some server becomes available, it is added to alive list. When no server is alive, no connection will be established.

Nakov Forward Server supports also load balancing features. If load balancing is enabled, when a client connection is accepted, Nakov Forward Server will redirect the client to the least loaded server from the servers list. We consider the server which hast minimal alive connections established by Nakov Forward Server is least loaded.

Benefits of Using Nakov Forward Server?

  • Destination server does not know the real IP of the client. It thinks that the IP of Nakov Forward Server is its client. Thus we can use a server licensed for one IP address on several machines simultaneously.

  • Nakov Forward Server can run on a port number that is allowed by the firewall and forward to a port number that is not allowed by firewall. Thus, started on a server in a local network, it can give access to some disabled by the firewall services.

  • Nakov Forward Server can give access to multiple clients to some service that is allowed only for some fixed IP address when started on the machine with this IP.

  • Fault Tolerance (failover) of Nakov Forward Server helps to avoid faults when some of the servers die. Of course there is special hardware for this, but it has high price. Instead you can use Nakov Forward Server (that is free). If you setup several Nakov Forward Servers configured to use the same set of destination servers and if you configure your routers to use redirect traffic to both servers, you will obtain a stable fault tolerance system. In such a system you have guarantee that crash of any of the servers (including some of the Nakov Forward Servers) will not stop the service that these servers provide. Of course the destination servers should run in a cluster and replicate their sessions.

  • Load balancing helps to avoid overloading of the servers by distributing the clients between them. Of course this should be done by special hardware called "load balancer", but if we don't have such hardware, we can still use this technology. When we use load balancing, all the servers in the list should be running in a cluster and there should be no matter what of the servers the client is connected to. The servers should communicate each other and replicate their session data.

Configuration

NakovForwardServer.properties configuration file contains all the settings of Nakov Forward Server. The only mandatory field is "Servers". Destination servers should be described in following format:

Servers = server1:port1, server2:port2, server3:port3, ...

For example:

Servers = 192.168.0.22:80, rakiya:80, 192.168.0.23:80, www.nakov.com:80

Nakov Forward Server listening port should be in format:

ListeningPort = some_port (in range 1-65535)

Check alive interval through which all dead threads should be re-checked if they are alive is specified by following line:

CheckAliveInterval = time_interval (in milliseconds)

Using load balancing algorithm is specified by following line:

LoadBalancing = Yes/No

Compilation

javac *.java

Running the server

java NakovForwardServer

ngrok

Finally, if you have more advanced needs, you might find this localhost tunelling software useful: https://ngrok.com

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].