diff --git a/tests/iperf/dante.conf b/tests/iperf/dante.conf new file mode 100644 index 0000000..b723f5b --- /dev/null +++ b/tests/iperf/dante.conf @@ -0,0 +1,24 @@ +# logoutput: /var/log/socks.log +internal: 10.0.0.3 +external: 10.0.0.3 +clientmethod: none +socksmethod: none +user.privileged: root +user.notprivileged: nobody + +client pass { + from: 0/0 to: 0/0 + log: error connect disconnect +} + +socks pass { + from: 0/0 to: 0/0 + command: bind connect udpassociate + log: error connect disconnect + socksmethod: none +} + +socks pass { + from: 0.0.0.0/0 to: 0.0.0.0/0 + command: bindreply udpreply +} diff --git a/tests/iperf/test.sh b/tests/iperf/test.sh new file mode 100755 index 0000000..29e1a6f --- /dev/null +++ b/tests/iperf/test.sh @@ -0,0 +1,39 @@ +netns="test" +dante="sockd" +tun2proxy="../../target/release/tun2proxy" + +ip netns add "$netns" + +ip link add veth0 type veth peer name veth0 netns "$netns" + +# Configure veth0 in default ns +ip addr add 10.0.0.2/24 dev veth0 +ip link set dev veth0 up + +# Configure veth0 in child ns +ip netns exec "$netns" ip addr add 10.0.0.3/24 dev veth0 +ip netns exec "$netns" ip addr add 10.0.0.4/24 dev veth0 +ip netns exec "$netns" ip link set dev veth0 up + +# Configure lo interface in child ns +ip netns exec "$netns" ip addr add 127.0.0.1/8 dev lo +ip netns exec "$netns" ip link set dev lo up + +echo "Starting Dante in background ..." +ip netns exec "$netns" "$dante" -f dante.conf & + +# Start iperf server in netns +ip netns exec "$netns" iperf -s -B 10.0.0.4 & + +sleep 1 + +# Prepare tun2proxy +ip tuntap add name tun0 mode tun +ip link set tun0 up +ip route add 10.0.0.4 dev tun0 +"$tun2proxy" --proxy socks5://10.0.0.3:1080 & + +# Run iperf client through tun2proxy +iperf -c 10.0.0.4 + +iperf -c 10.0.0.4 -R