1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#!/bin/bash
set -eu
source "$(dirname "$0")/common.sh"
cp server.json client.json forward.json "$TMPDIR"
cd "$TMPDIR"
exec 2>> test.log
yes '' | openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 1 -nodes
mkdir true
cd true
echo true > whoami.txt
python3 -m http.server 10081 > server.log 2>&1 &
PID1="$!"
cd ..
mkdir fake
cd fake
echo fake > whoami.txt
python3 -m http.server 10080 > server.log 2>&1 &
PID2="$!"
cd ..
./trojan -v
./trojan -t server.json
./trojan server.json -l server.log &
PID3="$!"
./trojan -t client.json
./trojan client.json -l client.log &
PID4="$!"
./trojan -t forward.json
./trojan forward.json -l forward.log &
PID5="$!"
wait_port 10081
wait_port 10080
wait_port 10443
wait_port 11080
wait_port 20081
WHOAMI=$(curl -v --socks5 127.0.0.1:11080 http://127.0.0.1:10081/whoami.txt)
WHOAMI2=$(curl -v http://127.0.0.1:20081/whoami.txt)
kill -KILL "$PID1" "$PID2" "$PID3" "$PID4" "$PID5"
if [[ "$WHOAMI" = "true" && "$WHOAMI2" = "true" ]]; then
exit 0
else
exit 1
fi
|