pForward


Reza Naghibi (reza.naghibi@yahoo.com)
version (2005-11-06)

pForward is a port forwarding server I wrote to forward ports on my windows 2000 box. I find this program useful because its so simple and forwarding ports can come in handy in todays world of firewall and ip restricted access.

pForward uses pforward.ini to read in its settings. The following settings are supports:

  • pforward=[inport]:[outhost]:[outport] - Whatever connections are made to the server running pforward on port inport gets forwarded to outhost on port outport. You can make as many pforward entries as you see fit.
  • maxconnections=[amount] - This is the maximum amount of simultanous connections allowed on pforward. Each connection is dedicated a thread. This is an optional parameter, the default is 10. These connections are shared for all pforward entries.
  • statwait=[seconds] - amount of seconds between each status report in the pforward.txt. This is an optional parameter, the default is 3600, a value of 0 disables this feature.

    Here is an example ini file: pforward.ini

    All output of pforward gets put into pforward.txt. Specific connection related output is put into [outhost]_[outport].txt.

    The source for pforward is located here: pforward [2005-11-06]. Ive compiled this on both my windows2000 and my Linux Fedora4 box.

    If you have any questions, comments, problems, bugs, or anything related, please shoot me an email at reza.naghibi@yahoo.com



    An example installation for windows2000 is located here: pforward

    On my windows 2000 machine, I installed pforward as a Service. I did this using instsrv.exe and srvany.exe. These are the steps to install pforward as a Windows Service:

    1) Download instsrv.exe and srvany.exe from here and save them to your hd in a good place, ex: c:\WINNT\SYSTEM32. Never delete these files at a later time.
    2) Open up a command prompt terminal and run the following command:
          [path_to_instsrv]\instsrv.exe pforward [path_to_srvany]\srvany.exe
    3) You should now have pforward installed as a service, but it points to srvany.exe, which is a service wrapper. Open up regedit and drill down to:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pforward
    4) Create a new key (folder) named Parameters
    5) Download pforward.exe and cygwin1.dll from here and create yourself an ini file. Put all of this somewhere on your hd.
    6) Create 2 new string value keys in the newly created Parameters folder as follows:
          Name: AppDirectory Value: c:\[path_to_directory_with_pforward]
          Name: Application Value: c:\[path_to_directory_with_pforward]\pforward.exe
    7) This may be an optional step, but on my system, I had to goto Control Panel>Admin Tools>Services and change the logon account the pforward service runs under to my Administrator account. The LocalSystems account is pretty restrictive. This could have also been done during step #2.
    8) Start the service either via the Control panel or by running the following command:
          net start pforward



    On Linux, this should be really easy:

    1) Download the pforward source from here
    2) Compile the server by cd'ing into the source dir and typing the following:
          make
    3) Generate your ini file.
    4) Start the server, remember to put it in the background as well.
    5) Put the server in your startup script, example: /etc/rc.local.

    (sample bash scripts to help run pforward are located here)



    Home