Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
uoosef committed Jan 27, 2024
1 parent 733dbe2 commit df76653
Showing 1 changed file with 43 additions and 41 deletions.
84 changes: 43 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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

Expand Down

0 comments on commit df76653

Please sign in to comment.