refactor http tunnel and proxy, just let them use same port