Skip to content

Instantly share code, notes, and snippets.

@scicco
Created February 20, 2018 14:53
Show Gist options
  • Save scicco/1ad14726841f76b72af42fdffbe9d4bd to your computer and use it in GitHub Desktop.
Save scicco/1ad14726841f76b72af42fdffbe9d4bd to your computer and use it in GitHub Desktop.
tcp proxy using netcat
#!/bin/sh -e
# found here: https://notes.tweakblogs.net/blog/7955/using-netcat-to-build-a-simple-tcp-proxy-in-linux.html
if [ $# != 3 ]
then
echo "usage: $0 <src-port> <dst-host> <dst-port>"
exit 0
fi
TMP=`mktemp -d`
BACK=$TMP/pipe.back
SENT=$TMP/pipe.sent
RCVD=$TMP/pipe.rcvd
trap 'rm -rf "$TMP"' EXIT
mkfifo -m 0600 "$BACK" "$SENT" "$RCVD"
sed 's/^/ => /' <"$SENT" &
sed 's/^/<= /' <"$RCVD" &
nc -l "$1" <"$BACK" | tee "$SENT" | nc "$2" "$3" | tee "$RCVD" >"$BACK"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment