socat -d -d TCP4-LISTEN:15432,fork UNIX-CONNECT:/srv/mongodb-27017.sock./forward-port-to-socket.sh 15432 /srv/mongodb-27017.socksocat -d -d TCP4-LISTEN:15432,fork UNIX-CONNECT:/srv/mongodb-27017.sock./forward-port-to-socket.sh 15432 /srv/mongodb-27017.sock| #!/bin/sh -e | |
| if [ $# != 2 ]; then | |
| echo "usage: $0 <public-port> <path-private-socket>" | |
| echo "example: $0 15432 /srv/my-service.sock" | |
| exit 0 | |
| fi | |
| PUBLIC_PORT=$1 | |
| PRIVATE_SOCKET=$2 | |
| SOCAT_LOG=/tmp/socat-$PUBLIC_PORT.log | |
| echo "--> socat forwarding:\n\t- from port: $PUBLIC_PORT\n\t- to socket: $PRIVATE_SOCKET" | |
| echo "--> allowed ips:\n\t$(cat socat-allow)" | |
| echo "--> logs: $SOCAT_LOG" | |
| socat -d -d -lf $SOCAT_LOG \ | |
| TCP4-LISTEN:$PUBLIC_PORT,reuseaddr,fork,tcpwrap=socat,allow-table=socat-allow,deny-table=socat-deny \ | |
| UNIX-CONNECT:$PRIVATE_SOCKET |
| socat:<allowed-ip-here> |
| socat:all |