mirror of
https://github.com/sshuttle/sshuttle.git
synced 2024-11-21 15:33:23 +01:00
66 lines
1.3 KiB
Bash
Executable File
66 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/with-contenv bash
|
|
# shellcheck shell=bash
|
|
|
|
set -e
|
|
|
|
function with_set_x() {
|
|
set -x
|
|
"$@"
|
|
{
|
|
ec=$?
|
|
set +x
|
|
return $ec
|
|
} 2>/dev/null
|
|
}
|
|
|
|
|
|
function log() {
|
|
echo "$*" >&2
|
|
}
|
|
|
|
log ">>> Setting up $(hostname) | id: $(id)\nIP:\n$(ip a)\nRoutes:\n$(ip r)\npyenv:\n$(pyenv versions)"
|
|
|
|
echo "
|
|
AcceptEnv PYENV_VERSION
|
|
" >> /etc/ssh/sshd_config
|
|
|
|
iface="$(ip route | awk '/default/ { print $5 }')"
|
|
default_gw="$(ip route | awk '/default/ { print $3 }')"
|
|
for addr in ${ADD_IP_ADDRESSES//,/ }; do
|
|
log ">>> Adding $addr to interface $iface"
|
|
net_addr=$(ipcalc -n "$addr" | awk -F= '{print $2}')
|
|
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
|
|
|
|
log ">>> Starting iperf3 server"
|
|
iperf3 --server --port 5001 &
|
|
|
|
mkdir -p /www
|
|
echo "<h5>Hello from $(hostname)</h5>
|
|
<pre>
|
|
<u>ip address</u>
|
|
$(ip address)
|
|
<u>ip route</u>
|
|
$(ip route)
|
|
</pre>" >/www/index.html
|
|
echo "
|
|
daemon off;
|
|
worker_processes 1;
|
|
error_log /dev/stdout info;
|
|
events {
|
|
worker_connections 1024;
|
|
}
|
|
http {
|
|
include /etc/nginx/mime.types;
|
|
server {
|
|
access_log /dev/stdout;
|
|
listen 8080 default_server;
|
|
listen [::]:8080 default_server;
|
|
root /www;
|
|
}
|
|
}" >/etc/nginx/nginx.conf
|
|
|
|
log ">>> Starting nginx"
|
|
nginx &
|