diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2016-07-05 16:01:31 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2016-07-05 16:01:31 +0200 |
commit | f7ff6390bb898f343ef7b1590b6a9d56a296af8c (patch) | |
tree | aacdd65b3d7d97e2b8a1c1ae6aba93ff5c65ae42 /contrib/examples/ncat-client-server/client.sh | |
parent | receive: protect against impossible conditions (diff) | |
download | wireguard-monolithic-historical-f7ff6390bb898f343ef7b1590b6a9d56a296af8c.tar.xz wireguard-monolithic-historical-f7ff6390bb898f343ef7b1590b6a9d56a296af8c.zip |
contrib: organize example scripts and add synergy
Diffstat (limited to 'contrib/examples/ncat-client-server/client.sh')
-rwxr-xr-x | contrib/examples/ncat-client-server/client.sh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/contrib/examples/ncat-client-server/client.sh b/contrib/examples/ncat-client-server/client.sh new file mode 100755 index 0000000..fbae46a --- /dev/null +++ b/contrib/examples/ncat-client-server/client.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -e +[[ $UID == 0 ]] || { echo "You must be root to run this."; exit 1; } +umask 077 +trap 'rm -f /tmp/wg_private_key' EXIT INT TERM +exec 3<>/dev/tcp/demo.wireguard.io/42912 +wg genkey | tee /tmp/wg_private_key | wg pubkey >&3 +IFS=: read -r status server_pubkey server_port internal_ip <&3 +[[ $status == OK ]] +ip link del dev wg0 2>/dev/null || true +ip link add dev wg0 type wireguard +wg set wg0 private-key /tmp/wg_private_key peer "$server_pubkey" allowed-ips 0.0.0.0/0 endpoint "demo.wireguard.io:$server_port" +ip address add "$internal_ip"/24 dev wg0 +ip link set up dev wg0 +if [ "$1" == "default-route" ]; then + host="$(wg show wg0 endpoints | sed -n 's/.*\t\(.*\):.*/\1/p')" + ip route add $(ip route get $host | sed '/ via [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/{s/^\(.* via [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/}' | head -n 1) 2>/dev/null || true + ip route add 0/1 dev wg0 + ip route add 128/1 dev wg0 +fi |