Skip to content

Instantly share code, notes, and snippets.

@wycleffsean
Created February 12, 2020 23:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wycleffsean/b03b542e9295fd62df697c180f2b9f27 to your computer and use it in GitHub Desktop.
Save wycleffsean/b03b542e9295fd62df697c180f2b9f27 to your computer and use it in GitHub Desktop.
TCP Proxy
#!/bin/sh -e
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 -v -l "$1" <"$BACK" | tee "$SENT" | nc -v "$2" "$3" | tee "$RCVD" >"$BACK"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment