mirror of
https://github.com/sshuttle/sshuttle.git
synced 2025-08-14 18:25:05 +02:00
refactoring to make it better structured
This commit is contained in:
@ -25,5 +25,4 @@ services:
|
||||
networks:
|
||||
default:
|
||||
driver: bridge
|
||||
enable_ipv6: true
|
||||
internal: true
|
||||
# internal: true
|
@ -1,15 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
|
||||
node=$1
|
||||
|
||||
if [[ ! $node =~ [1-9]+ ]]; then
|
||||
echo "node argument missing. should be '1' , '2' etc"
|
||||
exit 2
|
||||
fi
|
||||
shift
|
||||
|
||||
ip="10.55.$node.77"
|
||||
|
||||
exec iperf3 --client "$ip" --port 5001
|
37
hack/exec-tool
Executable file
37
hack/exec-tool
Executable file
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
tool=${1?:"tool argument missing. should be one of iperf3,ping,curl,ab"}
|
||||
node=${2?:"node argument missing. should be '1' , '2' etc"}
|
||||
shift 2
|
||||
|
||||
ip="10.55.$node.77"
|
||||
connect_timeout_sec=3
|
||||
|
||||
function with_set_x() {
|
||||
set -x
|
||||
"$@"
|
||||
{
|
||||
ec=$?
|
||||
set +x
|
||||
return $ec
|
||||
} 2>/dev/null
|
||||
}
|
||||
|
||||
case "$tool" in
|
||||
ping)
|
||||
with_set_x exec ping -W $connect_timeout_sec "$@" "$ip"
|
||||
;;
|
||||
iperf3)
|
||||
port=5001
|
||||
with_set_x exec iperf3 --client "$ip" --port=$port --connect-timeout=$connect_timeout_sec "$@"
|
||||
;;
|
||||
curl)
|
||||
port=8080
|
||||
with_set_x exec curl "http://$ip:$port/" -v --connect-timeout $connect_timeout_sec "$@"
|
||||
;;
|
||||
ab)
|
||||
port=8080
|
||||
with_set_x exec ab -n 100 -c 20 -s $connect_timeout_sec "$@" "http://$ip:$port/"
|
||||
;;
|
||||
esac
|
40
hack/run-benchmark
Executable file
40
hack/run-benchmark
Executable file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
function with_set_x() {
|
||||
set -x
|
||||
"$@"
|
||||
{ ec=$?; set +x;return $ec; } 2>/dev/null
|
||||
}
|
||||
|
||||
|
||||
./test-bed up -d
|
||||
|
||||
|
||||
|
||||
benchmark() {
|
||||
local sshuttle_bin="${1?:}"
|
||||
echo -e "\n======== Benchmarking sshuttle: $sshuttle_bin ========"
|
||||
if [[ "$sshuttle_bin" == dev ]]; then
|
||||
sshuttle_bin="../run"
|
||||
fi
|
||||
SSHUTTLE_BIN=$sshuttle_bin ./exec-sshuttle 1 --listen 55771 &
|
||||
sshuttle_pid=$!
|
||||
trap 'kill -0 $sshuttle_pid &>/dev/null && kill -15 $sshuttle_pid' EXIT
|
||||
while ! nc -z localhost 55771; do sleep 0.1; done
|
||||
sleep 1
|
||||
./exec-tool iperf3 1 --time=4
|
||||
with_set_x kill -15 $sshuttle_pid
|
||||
wait $sshuttle_pid || true
|
||||
}
|
||||
|
||||
|
||||
if [[ "$1" ]]; then
|
||||
benchmark "$1"
|
||||
else
|
||||
benchmark "${SSHUTTLE_BIN:-/bin/sshuttle}"
|
||||
benchmark dev
|
||||
fi
|
||||
|
||||
|
@ -5,16 +5,20 @@ set -e
|
||||
|
||||
echo -e ">>> Setting up $(hostname) | id: $(id) | $(python --version) \nip: $(ip a)\n route: $(ip r)"
|
||||
|
||||
function with_set_x() {
|
||||
set -x
|
||||
"$@"
|
||||
{ ec=$?; set +x;return $ec; } 2>/dev/null
|
||||
}
|
||||
|
||||
|
||||
iface="$(ip route | awk '/default/ { print $5 }')"
|
||||
default_gw="$(ip route | awk '/default/ { print $3 }')"
|
||||
for addr in ${IP_ADDRESSES//,/ }; do
|
||||
echo ">>> Adding $addr to interface $iface"
|
||||
net_addr=$(ipcalc -n "$addr" | awk -F= '{print $2}')
|
||||
(
|
||||
set -ex
|
||||
ip addr add "$addr" dev "$iface"
|
||||
ip route add "$net_addr" via "$default_gw" dev "$iface" # so that sshuttle -N can discover routes
|
||||
)
|
||||
with_set_x ip addr add "$addr" dev "$iface"
|
||||
with_set_x ip route add "$net_addr" via "$default_gw" dev "$iface" # so that sshuttle -N can discover routes
|
||||
done
|
||||
|
||||
echo ">>> Starting iperf3 server"
|
||||
|
30
hack/test-bed
Executable file
30
hack/test-bed
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
|
||||
if [[ -z $1 || $1 = -* ]]; then
|
||||
set -- up "$@"
|
||||
fi
|
||||
|
||||
function with_set_x() {
|
||||
set -x
|
||||
"$@"
|
||||
{ ec=$?; set +x;return $ec; } 2>/dev/null
|
||||
}
|
||||
|
||||
function build() {
|
||||
# podman build -t ghcr.io/sshuttle/sshuttle-testbed .
|
||||
with_set_x docker build -t ghcr.io/sshuttle/sshuttle-testbed -f Containerfile .
|
||||
}
|
||||
|
||||
function compose() {
|
||||
# podman-compose "$@"
|
||||
with_set_x docker compose "$@"
|
||||
}
|
||||
|
||||
|
||||
if [[ $* = *--build* ]]; then
|
||||
build
|
||||
fi
|
||||
compose "$@"
|
@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# podman build -t ghcr.io/sshuttle/sshuttle-testbed .
|
||||
# podman-compose up
|
||||
|
||||
docker build -t ghcr.io/sshuttle/sshuttle-testbed -f Containerfile .
|
||||
docker compose up
|
Reference in New Issue
Block a user