yeager

command module
v1.34.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2024 License: MIT Imports: 19 Imported by: 0

README

Yeager

A proxy tool that helps speed up your internet connection in certain situations.

Features:

  • gRPC and HTTP/2 transport
  • supports mutual TLS
  • supports HTTP proxy and SOCKS5

How it works:

browser request -> [HTTP proxy -> yeager client] -> firewall -> [yeager server] -> endpoints

As remote server

Firstly update firewall and allows TCP port 57175.

You may want to enable BBR (a TCP congestion control alogorithm) to improve unstable network:

$ sudo sysctl -w net.core.default_qdisc=fq
$ sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
Running with command line
$ wget https://github.com/chenen3/yeager/releases/latest/download/yeager-linux-amd64.tar.gz
$ tar -xzvf yeager-linux-amd64.tar.gz 
$ ./yeager -genconf
generated server.json
generated client.json
$ ./yeager -config server.json
Running with systemd
$ wget https://github.com/chenen3/yeager/releases/latest/download/yeager-linux-amd64.tar.gz
$ tar -xzvf yeager-linux-amd64.tar.gz 
$ sudo cp yeager /usr/local/bin/yeager
$ sudo mkdir -p /usr/local/etc/yeager
$ cd /usr/local/etc/yeager
$ sudo /usr/local/bin/yeager -genconf
generated server.json
generated client.json
# the client.json will be used later

create file /etc/systemd/system/yeager.service with the following content:

[Unit]
Description=yeager
Documentation=https://github.com/chenen3/yeager
After=network.target

[Service]
ExecStart=/usr/local/bin/yeager -config /usr/local/etc/yeager/server.json
TimeoutStopSec=5s
LimitNOFILE=1048576
# can bind privileged ports, e.g. 443
# AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

start service:

$ sudo systemctl daemon-reload
$ sudo systemctl enable yeager
$ sudo systemctl start yeager

As local client

Running with command line

Copy client.json to local device.

Download binary, extract and run:

$ ./yeager -config client.json

SOCKS server address is 127.0.0.1:1080, HTTP proxy server address is 127.0.0.1:8080

Running with launchd on macOS

Let yeager run in the background when the operating system starts

Copy client.json to /usr/local/etc/yeager.json

Install:

$ curl -LO https://github.com/chenen3/yeager/releases/latest/download/yeager-macos-amd64.tar.gz
$ tar -xzvf yeager-macos-amd64.tar.gz
x yeager
x README.md
x LICENSE
$ cp yeager /usr/local/bin/yeager

Create file ~/Library/LaunchAgents/yeager.plist with the following content:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>RunAtLoad</key>
    <true/>
    <key>Label</key>
    <string>yeager</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/yeager</string>
      <string>-config</string>
      <string>/usr/local/etc/yeager.json</string>
    </array>
    <key>StandardErrorPath</key>
    <string>/usr/local/var/log/yeager.log</string>
  </dict>
</plist>

Run:

$ launchctl load ~/Library/LaunchAgents/yeager.plist

Credit

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL