This is a simple TCP/UDP/SCTP port forwarder for network namespaces, so it will require root privileges.
Download all files from this gist in a folder and run:
$ go build ./netns-pf.go
#!/bin/bash | |
FW_MARK="$((RANDOM%2147483646 + 1))" | |
if [ "$(ip -4 rule show fwmark ${FW_MARK})" ] || [ "$(ip -6 rule show fwmark ${FW_MARK})" ]; then | |
while [ "$(ip -4 rule show fwmark ${FW_MARK})" ] || [ "$(ip -6 rule show fwmark ${FW_MARK})" ]; do | |
FW_MARK="$((RANDOM%2147483646 + 1))" | |
done | |
fi | |
TABLE="$((RANDOM%2147483396 + 1))" | |
if [ ! "$(ip -4 route show table ${TABLE} 2>/dev/null || echo 1)" = "1" ] || [ ! "$(ip -6 route show table ${TABLE} 2>/dev/null || echo 1)" = "1" ]; then |
#!/bin/bash | |
FW_MARK="$((RANDOM%2147483646 + 1))" | |
if [ "$(ip -4 rule show fwmark ${FW_MARK})" ] || [ "$(ip -6 rule show fwmark ${FW_MARK})" ]; then | |
while [ "$(ip -4 rule show fwmark ${FW_MARK})" ] || [ "$(ip -6 rule show fwmark ${FW_MARK})" ]; do | |
FW_MARK="$((RANDOM%2147483646 + 1))" | |
done | |
fi | |
TABLE="$((RANDOM%2147483396 + 1))" | |
if [ ! "$(ip -4 route show table ${TABLE} 2>/dev/null || echo 1)" = "1" ] || [ ! "$(ip -6 route show table ${TABLE} 2>/dev/null || echo 1)" = "1" ]; then |