pufferffish / wireproxy

Wireguard client that exposes itself as a socks5 proxy
ISC License
4.11k stars 235 forks source link

Multi-topic: Usage clarification, SOCKS5 auth, rotation policy feature, relatability to Gost #8

Open opsoyo opened 2 years ago

opsoyo commented 2 years ago

Greatly appreciate this project. Many thanks.

I had a few things to note, and I didn't want to clutter up the issues with many entries unnecessarily.

Usage clarification

SOCKS Auth

Rotation Policy Feature

Gost (out of project scope)

Thanks again for building this!

pufferffish commented 2 years ago

I agree that the documentation can be more fleshed out. I will fix it soon.

Having multiple peers is a nice feature but it's currently at the bottom of my todo list, e.g. UDP tunnel. But I can probably get it done pretty soon hopefully.

pufferffish commented 2 years ago

I've also addressed Usage clarification in a new commit, do you have feedback on this?

opsoyo commented 2 years ago

I've also addressed Usage clarification in a new commit, do you have feedback on this?

Simple fix works for me 👍 Thanks!

pufferffish commented 2 years ago

I've finally gotten around to check out gost. It's possible to use gost + wireproxy by forming a proxy chain using -F socks5://<wireproxy address>.

It's cleaner to directly implement wireguard support in gost, but that is outside the scope of this project, and should be handled by gost contributors. Perhaps I will study gost codebase in the future and make a PR to support wireguard as a transport, but I don't see that happening in the near future.

fscarmen commented 2 years ago

Before WireProxy. I installed WGCF in alpine docker. And use the gost to create a socks5 proxy for the host machine.

opsoyo commented 2 years ago

I've finally gotten around to check out gost. It's possible to use gost + wireproxy by forming a proxy chain using -F socks5://<wireproxy address>.

It's cleaner to directly implement wireguard support in gost, but that is outside the scope of this project, and should be handled by gost contributors. Perhaps I will study gost codebase in the future and make a PR to support wireguard as a transport, but I don't see that happening in the near future.

You're on point. I'm looking forwarded to a unified experience, but Gost can compensate for now. Thanks for taking time to check into it.

happyharryh commented 1 year ago

You can try my branch: https://github.com/happyharryh/gost/tree/wireguard-client

# Build
git clone -b wireguard-client --recursive https://github.com/happyharryh/gost.git
cd gost
git apply wireproxy.patch
go build ./cmd/gost

# Usage (assuming that 1234 is your lucky number)
./gost -L=auto://127.0.0.1:8000 -F=wg://:1234?c=proxy.conf

It can be used only as the client, but not the server.