Networking Forums

Networking Forums > Computer Networking > Linux Networking > nat traverse

Reply
 
 
Larry
Guest
Posts: n/a

 
      11-05-2007, 01:51 PM
Hi,

I've found this script script that I've found very usefull
(http://linide.sourceforge.net/nat-traverse/), yet I'd love to use nat
traverse to set up a udp tunnel to make a browser on host A to connect
to apache listening on HOST B. Both HOST A and HOST B are behind NAT.

** on host A I have this:

perl nat-traverse --cmd="nc -vlp 65000" 40000:host B:40001

Now, "nc" is bound to nat-traverse...

I use my browser to connect to 127.0.0.1:65000 ("nc" gets tha request
and sends it to the UDP tunnel...than waits for the response from he
tunnel)

** on HOST B I have the following:

perl nat-traverse --cmd="perl mediator.pl" 40001:host A:40000

mediator gets data from the UDP tunnel and make a req to apache
(listening locally on port 80) than sends the apache response back to
the tunnel...(whereas NC gets the response and send it to the browser)

here's mediator.pl code:

#!/usr/bin/perl

use strict;
use warnings;
use IO::Socket::INET;
use IO::Handle;
STDOUT->autoflush();

my $key;
my %header;
my $req;
my $line;

while(1)
{
chomp($line = <STDIN>);

while( defined($_ = <STDIN>) )
{
s/[\r\n]+$//;
last unless length $_;
/^ ([\w\-]+) :[\ \t]+ (.+) $/x;
$key = uc($1);
$key =~ tr/-/_/;
$header{$key} = $2
}

$req = "$line\n";

foreach (sort keys %header)
{
$req .= $_ . ':' . " $header{$_}\n";
}

$req .= "\n";

{
my ($buff, $sock);
$sock = IO::Socket::INET->new(PeerAddr => '127.0.0.1', PeerPort =>
'80', Proto => 'tcp') || die "$!";
$sock->autoflush(1);

syswrite $sock, $req;

while ( sysread($sock, $buff, 1024) )
{
print STDOUT $buff;
}

close($sock);
}

}

__END__;

tha thing with the whole above scenario is that "nc" exits when the
browser closes the connection...

Does anyone how to sort this out??

How can I bound STDIN e STDOUT to fifo files??

thanks ever so much
 
Reply With Quote
 
 
 
 
आशीष शुक्ल Ashish Shukla
Guest
Posts: n/a

 
      11-05-2007, 06:50 PM
On Mon, 05 Nov 2007 15:51:10 +0100, Larry wrote:
[...]

> Does anyone how to sort this out??


Use '-k' switch with 'nc', for more details, see nc(1) .

HTH
--
Ashish Shukla आशीष शुक्ल http://wahjava.wordpress.com/
·-- ·- ···· ·--- ·- ···- ·- ·--·-· --· -- ·- ·· ·-·· ·-·-·- -·-· --- --
 
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off




1 2 3 4 5 6 7 8 9 10 11