Netcat file transfer problem
- by thepurplepixel
I have two custom scripts I just wrote to facilitate transferring files between my VPS and my home server. They are both written in bash (short & sweet):
To send:
#!/bin/bash
SENDFILE=$1
PORT=$2
HOST='<my house>'
HOSTIP=`host $HOST | grep "has address" | cut --delimiter=" " -f 4`
echo Transferring file \"$SENDFILE\" to $HOST \($HOSTIP\).
tar -c "$SENDFILE" | pv -c -N tar -i 0.5 | lzma -z -c -6 | pv -c -N lzma -i 0.5 | nc -q 1 $HOSTIP $PORT
echo Done.
To receive:
#!/bin/bash
SERVER='<myserver>'
SERVERIP=`host $SERVER | grep "has address" | cut --delimiter=" " -f 4`
PORT=$1
echo Receiving file from $SERVER \($SERVERIP\) on port $PORT.
nc -l $PORT | pv -c -N netcat -i 0.5 | lzma -d -c | pv -c -N lzma -i 0.5 | tar -xf -
echo Done.
The problem is that, for a very quick second, I see something flash along the lines of "Connection Refused" (before pv overwrites it), and no file is ever transferred. The port is forwarded through my router, and nmap confirms it:
~$ sudo nmap -sU -PN -p55515 -v <my house>
Starting Nmap 5.00 ( http://nmap.org ) at 2010-04-21 18:10 EDT
NSE: Loaded 0 scripts for scanning.
Initiating Parallel DNS resolution of 1 host. at 18:10
Completed Parallel DNS resolution of 1 host. at 18:10, 0.00s elapsed
Initiating UDP Scan at 18:10
Scanning 74.13.25.94 [1 port]
Completed UDP Scan at 18:10, 2.02s elapsed (1 total ports)
Host 74.13.25.94 is up.
Interesting ports on 74.13.25.94:
PORT STATE SERVICE
55515/udp open|filtered unknown
Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 2.08 seconds
Raw packets sent: 2 (56B) | Rcvd: 5 (260B)
Also, running netcat normally doesn't work either:
squircle@summit:~$ netcat <my house> 55515
<my house> [<my IP>] 55515 (?) : Connection refused
Both boxes are Ubuntu Karmic (9.10). The receiver has no firewall, and outbound traffic on that port is allowed on the sender. I have no idea what to troubleshoot next. Any ideas?
P.S.: Feel free to move this to SO/SF if you feel it would fit better there.