File transfer is one of the most practical usages of netcat.
To transfer a file named filename from client to server, we first issue the following command on server:
nc -l -p 1234 > filename
where 1234 is the port number used by the server. On the client side, we issue:
nc -q 10 server 1234 < filename
where '-q 10' specifies to wait 10 seconds and then quit after EOF on stdin. This would cause the server to quit.
To transfer a director tree named /path from client to server, we issue the following command on server:
nc -l -p 1234 | tar xvzf -
On the client side, we issue:
tar cvzf - /path | nc -q 10 server 1234
If we want to reverse the direction of file transfer, i.e., client pulls file from server, we use:
nc -q 10 -l -p 1234 < filename
on server, and
nc server 1234 > filename
on client. Similarly, to reverse the direction of directory tree transfer, we use:
tar cvzf - /path | nc -q 10 -l -p 1234
on server, and
nc server 1234 | tar xvzf -
on client.
No comments:
Post a Comment