Categorygithub.com/chenen3/yeager
repositorypackage
1.35.2
Repository: https://github.com/chenen3/yeager.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Yeager

A proxy tool that helps speed up your internet connection in certain situations. The tool provides HTTP and SOCKS5 proxy as entry points and supports gRPC/HTTP2/Shadowsocks transport.

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