Skip to content

Instantly share code, notes, and snippets.

@ericychoi
Last active November 26, 2021 13:15
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ericychoi/c652040006e97d51be445c182d4267c9 to your computer and use it in GitHub Desktop.
Save ericychoi/c652040006e97d51be445c182d4267c9 to your computer and use it in GitHub Desktop.
A quick tcp proxy bash script using nc (not my original)
#!/bin/sh -e
# usage: ./tcp-proxy.sh 8080 tweakers.net 80
# script written by
# 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