summaryrefslogtreecommitdiffstats
path: root/scripts/tcp-proxy.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/tcp-proxy.sh')
-rwxr-xr-xscripts/tcp-proxy.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/scripts/tcp-proxy.sh b/scripts/tcp-proxy.sh
new file mode 100755
index 0000000..ff0ce53
--- /dev/null
+++ b/scripts/tcp-proxy.sh
@@ -0,0 +1,20 @@
+#!/bin/sh -e
+# Display TCP packets
+# code from:
+# 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 127.0.0.1 "$1" <"$BACK" | tee "$SENT" | nc "$2" "$3" | tee "$RCVD" >"$BACK"