21

What I want is to configure a computer in home with Windows and use it as a TCP proxy for connect and route packets from the 80 to port 23 in another server in the Internet

2

5 Answers 5

16

Note: Luca's answer which arrived three years after this one was accepted, is probably the one that you want if running Vista or later.


rinetd should do the job, and a Windows binary for it can be had from [sorry, link no longer valid] (for anyone looking for the same thing under Linux, rinetd is in the standard repositories of just about every distro so can be installed with "apt-get install rinetd" or "yum install rinetd" or similar)

Note: the previous link to a Windows binary is no longer valid. Windows builds of the tool can be found in cygwin and similar packages, after a cursory search I didn't find a direct link to a stand-alone Windows binary to replace the link with. All references found pointed to the same, now invalid, link.

3
  • That link looks down to me? Or is it supposed to redirect to a loans website?
    – CLOVIS
    Oct 22, 2020 at 15:00
  • Looks like the domain lapsed and has been taken over. I couldn't find a replacement location for a stand-alone Windows binary. I've updated the question accordingly. Oct 22, 2020 at 17:13
  • @DavidSpillett github.com/samhocevar/rinetd has a windows binary in the releases section.
    – psychowood
    Oct 3, 2022 at 20:46
81

You can use the built-in netsh portproxy. In your case:

netsh interface portproxy add v4tov4 listenport=80 connectaddress=ip-of-server-on-internet connectport=23 listenaddress=ip-of-windows-machine protocol=tcp

You'll need Administrator privileges. No need to install additional software!

You are required to install IPv6 on your operating system before using this feature. On Vista and later this is a non-issue as IPv6 comes installed by default, but on XP/2003 you have to open up your network interface property panel, and add the Microsoft TCP/IP version 6 protocol first.

12
  • 7
    Why isn't this the accepted answer?!?
    – Hafthor
    Nov 9, 2012 at 21:28
  • 1
    this is a fantastic answer!
    – Dima
    Oct 15, 2017 at 20:09
  • 1
    This is awesome sauce. If it's an unusual port don't forget to immediately wf.msc and let it through the firewall!
    – BaseZen
    Jan 5, 2018 at 1:32
  • 1
    amazing! worked like a charm. This MUST become the accepted answer!
    – atomaras
    Jul 18, 2018 at 22:10
  • 2
    Command to shut down the created proxy: netsh interface portproxy delete v4tov4 listenport=8081 listenaddress=0.0.0.0 protocol=tcp
    – amasmiller
    Dec 22, 2021 at 15:58
2

You're looking for a TCP proxy. There are a variety of free TCP proxies for Windows. I'm not going to recommend one because I don't have any good experience with any of them. Google for "Windows TCP proxy" and you'll come up with a boatload.

This one is cute and source is available, but I don't know how reliable: http://dposey.no-ip.com/Proxy/

It's a fairly trivial piece of code, though one could put some pretty neat features into a high-end TCP proxy (load balancing, logging of traffic, etc).

2
  • Also, make sure you understand that, depending on where the servers are, and what kind of connections are available, latency can be horrible. Jun 2, 2009 at 18:18
  • 2
    This is Stack Exchange, so now this is the top QA that comes up for that Google Search. Recursion loop. Sep 6, 2021 at 15:22
2

Assuming it's http packets you could use one of the many windows proxies out there Like Squid NT or something similar.

But if you just wanna port forward any packets, SSH tunneling is the way to go. Check out sshwindows for the server piece and http://oldsite.precedence.co.uk/nc/putty.html for a quick howto on how to set up port forwarding in PuTTY.

There might be an easier way using Some built in Microsoft tool, but this is what came to the top of my head first.

1

3proxy is a small and flexible cross-platform multipurpose proxy which can act as a TCP proxy too.

0

Not the answer you're looking for? Browse other questions tagged .