From df76653c9c296d50509e65354fe8319f06f975b8 Mon Sep 17 00:00:00 2001 From: uoosef Date: Sat, 27 Jan 2024 18:32:21 +0330 Subject: [PATCH] update readme --- README.md | 84 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 4965611a7..037b5efe1 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,50 @@ -# Go Implementation of [WireGuard](https://www.wireguard.com/) +# Warp-Plus-Go -This is an implementation of WireGuard in Go. +Warp-Plus-Go is an open-source implementation of Cloudflare's Warp, enhanced with Psiphon integration for circumventing censorship. This project aims to provide a robust and cross-platform VPN solution that can automatically switch to Psiphon when Warp connectivity is restricted or blocked. -## Usage +## Features -Most Linux kernel WireGuard users are used to adding an interface with `ip link add wg0 type wireguard`. With wireguard-go, instead simply run: +- **Warp Integration**: Leverages Cloudflare's Warp to provide a fast and secure VPN service. +- **Psiphon Chaining**: Integrates with Psiphon for censorship circumvention, allowing seamless access to the internet in restrictive environments. +- **Cross-Platform Support**: Designed to work on multiple platforms, offering the same level of functionality and user experience. +- **SOCKS5 Proxy Support**: Includes a SOCKS5 proxy for secure and private browsing. +- **Verbose Logging**: Optional verbose logging for troubleshooting and performance monitoring. -``` -$ wireguard-go wg0 -``` +## Getting Started -This will create an interface and fork into the background. To remove the interface, use the usual `ip link del wg0`, or if your system does not support removing interfaces directly, you may instead remove the control socket via `rm -f /var/run/wireguard/wg0.sock`, which will result in wireguard-go shutting down. +### Prerequisites -To run wireguard-go without forking to the background, pass `-f` or `--foreground`: +- Go (version 1.15 or later recommended) +- Basic understanding of VPN and proxy configurations -``` -$ wireguard-go -f wg0 -``` +### Installation + +1. Clone the repository: + ```bash + git clone https://github.com/yourusername/warp-plus-go.git + cd warp-plus-go + ``` -When an interface is running, you may use [`wg(8)`](https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8) to configure it, as well as the usual `ip(8)` and `ifconfig(8)` commands. +2. Build the project: + ```bash + go build + ``` -To run with more logging you may set the environment variable `LOG_LEVEL=debug`. +### Usage -## Platforms +Run the application with the following command: + +```bash +./warp-plus-go [-v] [-b addr:port] [-c config-file-path] [-e warp-ip] [-k license-key] [-country country-code] [-cfon] +``` + +- `-v`: Enable verbose logging. +- `-b`: Set the SOCKS bind address (default: `127.0.0.1:8086`). +- `-c`: Path to the Warp configuration file. +- `-e`: Specify the Warp endpoint IP. +- `-k`: Your Warp license key. +- `-country`: ISO 3166-1 alpha-2 country code for Psiphon. +- `-cfon`: Enable Psiphon over Warp. ### Termux @@ -38,35 +60,15 @@ bash <(curl -fsSL https://raw.githubusercontent.com/Ptechgithub/wireguard-go/mas - در روش warp به warp plus مقدار account id را وارد میکنید و با این کار هر 20 ثانیه 1 GB به اکانت شما اضافه میشود. -### Linux - -This will run on Linux; however you should instead use the kernel module, which is faster and better integrated into the OS. See the [installation page](https://www.wireguard.com/install/) for instructions. - -### macOS +## Contributing -This runs on macOS using the utun driver. It does not yet support sticky sockets, and won't support fwmarks because of Darwin limitations. Since the utun driver cannot have arbitrary interface names, you must either use `utun[0-9]+` for an explicit interface name or `utun` to have the kernel select one for you. If you choose `utun` as the interface name, and the environment variable `WG_TUN_NAME_FILE` is defined, then the actual name of the interface chosen by the kernel is written to the file specified by that variable. +Contributions to Warp-Plus-Go are welcome. Please read our [contributing guidelines](CONTRIBUTING.md) for more information. -### Windows +## Acknowledgements -This runs on Windows, but you should instead use it from the more [fully featured Windows app](https://git.zx2c4.com/wireguard-windows/about/), which uses this as a module. - -### FreeBSD - -This will run on FreeBSD. It does not yet support sticky sockets. Fwmark is mapped to `SO_USER_COOKIE`. - -### OpenBSD - -This will run on OpenBSD. It does not yet support sticky sockets. Fwmark is mapped to `SO_RTABLE`. Since the tun driver cannot have arbitrary interface names, you must either use `tun[0-9]+` for an explicit interface name or `tun` to have the program select one for you. If you choose `tun` as the interface name, and the environment variable `WG_TUN_NAME_FILE` is defined, then the actual name of the interface chosen by the kernel is written to the file specified by that variable. - -## Building - -This requires an installation of the latest version of [Go](https://go.dev/). - -``` -$ git clone https://git.zx2c4.com/wireguard-go -$ cd wireguard-go -$ make -``` +- Cloudflare Warp +- Psiphon +- All contributors and supporters of this project ## License