MCPcopy Index your code
hub / github.com/snail007/goproxy

github.com/snail007/goproxy @v15.2 sqlite

repository ↗ · DeepWiki ↗ · release v15.2 ↗
187 symbols 463 edges 16 files 34 documented · 18% 1 cross-repo links
README

GOPROXY Introduction

stable license download_count download


The GoProxy is a high-performance http proxy, https proxy, socks5 proxy, ss proxy, websocket proxies, tcp proxies, udp proxies, game shield, game proxies. Support forward proxies, reverse proxy, transparent proxy, internet nat proxies, https proxy load balancing, http proxy load balancing , socks5 proxies load balancing, socket proxy load balancing, ss proxy load balancing, TCP / UDP port mapping, SSH transit, TLS encrypted transmission, protocol conversion, anti-pollution DNS proxy, API authentication, speed limit, limit connection. Reverse proxies to help you expose a local server behind a NAT or firewall to the internet so that you or your visitors can access it directly and easily.


中文用户请看 中文说明,中文与英文内容的安装等资源链接是不一样的,谢谢合作!

Official Website

官方网站

点击我观看视频教程

ProxyAdmin Demo

And ProxyAdmin is a powerful web console of snail007/goproxy .

What can it do?

  • Chained proxies, the program itself can be used as an proxies, and if it is set up, it can be used as a secondary proxies or even an N-level proxies.
  • Communication encryption, if the program is not a level one proxies, and the upper level proxies is also the program, then the communication between the upper level proxies and the upper level proxies can be encrypted, and the underlying tls high-intensity encryption is used, and the security is featureless.
  • Smart HTTP, SOCKS5 proxy, will automatically determine whether the visited website is blocked. If it is blocked, it will use the upstream proxies (provided that the upstream proxies is configured) to access the website; if the visited website is not blocked, in order to speed up the access, the proxies will Direct access to the website without using a upstream proxies.
  • Domain name black and white list, more free to control the way the website is accessed.
  • Cross-platform, whether you are windows, linux, mac, or even raspberry pie, you can run the proxy very well.
  • Multi-protocol support, support for HTTP(S), TCP, UDP, Websocket, SOCKS5 proxy.
  • TCP/UDP port forwarding.
  • Support intranet penetration, protocol supports TCP and UDP.
  • SSH relay, HTTP (S), SOCKS5 proxy supports SSH relay, the upper Linux server does not need any server, a local proxy can be happy online.
  • KCP protocol support, HTTP(S), SOCKS5, SPS proxy supports KCP protocol to transmit data, reduce latency and improve browsing experience.
  • Dynamic selection of upstream proxies, through the external API, HTTP (S), SOCKS5, SPS proxies can achieve user-based or IP-based speed limit, connection limit, dynamic access to upstream.
  • Flexible upstream allocation, HTTP(S), SOCKS5 proxy can implement user- or IP-based speed limit, connection limit, and upper-level through configuration files.
  • Transparent HTTP (S) proxy, in conjunction with iptables, forwards the outgoing 80, 443 traffic directly to the proxy at the gateway, enabling non-aware intelligent router proxy.
  • Protocol conversion, which can convert existing HTTP(S) or SOCKS5 or SS proxy into one port and support HTTP(S) and SOCKS5 and SS proxy at the same time. Converted SOCKS5 and SS proxy. If the upstream is SOCKS5 proxy, then UDP is supported. Features while supporting powerful cascading authentication.
  • Custom underlying encrypted transmission, http(s)\sps\socks proxy can encrypt tcp data via tls standard encryption and kcp protocol on top of tcp, in addition to support custom encryption after tls and kcp, that is Said custom encryption and tls|kcp can be used in combination, the internal AES256 encryption, you only need to define a password when you use it.
  • Underlying compression efficient transmission, http(s)\sps\socks proxy can encrypt tcp data through custom encryption and tls standard encryption and kcp protocol on tcp, and can also compress data after encryption, that is, compression function And custom encryption and tls|kcp can be used in combination.
  • Secure DNS proxy, which can secure and prevent pollution DNS queries through encrypted proxy communication between the DNS proxy server provided by the local proxy and the upstream proxy.
  • Load balancing, high availability, HTTP(S)\SOCKS5\SPS proxies supports upstream load balancing and high availability, and multiple upstream repeat-P parameters can be used.
  • Specify the egress IP. The HTTP(S)\SOCKS5\SPS\TCP proxy supports the client to connect with the ingress IP, and uses the ingress IP as the egress IP to access the target website. If the ingress IP is an intranet IP, the egress IP does not use the ingress IP.
  • Support speed limit, HTTP(S)\SOCKS5\SPS\TCP proxy supports speed limit.
  • SOCKS5 proxies supports cascading certification.
  • The certificate parameter uses base64 data. By default, the -C, -K parameter is the path of the crt certificate and the key file. If it is the beginning of base64://, then the latter data is considered to be base64 encoded and will be used after decoding.
  • Support client IP black and white list, more secure control of client access to proxy service, if black and white list is set at the same time, then only whitelist is effective. Socks / HTTP(S) / SPS / TCP / UDP / DNS / intranet NAT The bridge/intranet NAT the tbridge and supports the client IP black and white list.
  • Range ports listen on, HTTP(S)\SOCKS5\SPS\TCP proxy supports port range listening, avoiding starting too many processes and improving performance.

Why do you need it?

  • When for some reason we are unable to access our services elsewhere, we can establish a secure tunnel to access our services through multiple connected proxy nodes.
  • WeChat interface is developed locally for easy debugging.
  • Remote access to intranet machines.
  • Play LAN games with your friends.
  • I used to play only on the LAN, and now I can play anywhere.
  • Replace the sword inside Netnet, show IP internal Netcom, peanut shell and other tools.
  • ..

The manual on this page applies to the latest version of goproxy. Other versions may not be applicable. Please use the command according to your own instructions.

Joining the organization

Click to join the Telegram

Download and install

Quick installation

  1. If your VPS is a Linux 64-bit system, you only need to execute the following sentence to complete the automatic installation and configuration.

Tip: All operations require root privileges.

The free version performs this:

bash -c "$(curl -s -L https://raw.githubusercontent.com/snail007/goproxy/master/install_auto.sh)"

The commercial version performs this:

bash -c "$(curl -s -L https://raw.githubusercontent.com/snail007/goproxy/master/install_auto_commercial.sh)"

The installation is complete, the configuration directory is /etc/proxy. For more detailed usage, please refer to the manual directory above to learn more about the features you want to use. If the installation fails or your vps is not a linux64-bit system, follow the semi-automatic steps below to install:

Manual installation

  1. Download the proxy

Download address: https://github.com/snail007/goproxy/releases/latest

Let's take v7.9 as an example. If you have the latest version, please use the latest version of the link. Note that the version number in the download link below is the latest version number.

The free version performs this:

cd /root/proxy/
wget https://github.com/snail007/goproxy/releases/download/v7.9/proxy-linux-amd64.tar.gz

The commercial version performs this:

cd /root/proxy/
wget https://github.com/snail007/goproxy/releases/download/v7.9/proxy-linux-amd64_commercial.tar.gz
  1. Download the automatic installation script

The free version performs this:

cd /root/proxy/
wget https://raw.githubusercontent.com/snail007/goproxy/master/install.sh
chmod +x install.sh
./install.sh

The commercial version performs this:

cd /root/proxy/
wget https://raw.githubusercontent.com/snail007/goproxy/master/install_commercial.sh
chmod +x install_commercial.sh
./install_commercial.sh

UPDATE

proxy update use mirror to download, if your update has error with mirror, you can set an environment variable UPDATE_MIRROR=false
Windows: set UPDATE_MIRROR=false then proxy update
Linux: export UPDATE_MIRROR=false then proxy update

Linux

proxy update

Force update.

proxy update -f

Windows

For example proxy placed in c:\gp\proxy.

c:\
cd gp
proxy update

Force update.

c:\
cd gp
proxy update -f

License

Proxy is licensed under GPLv3 license.

Contact

Official Telegram Group: goproxy

Source code declaration

The author of this project found that a large number of developers based on the project for secondary development or using a large number of core code of the project without complying with the GPLv3 agreement, which seriously violates the original intention of using the GPLv3 open source agreement in this project. In view of this situation, the project adopts the source. The code delays the release strategy, to a certain extent, to curb these behaviors that do not respect open source and do not respect the labor results of others. This project will continue to update the iterations and continue to release the full platform binary program, providing you with powerful and convenient proxies tools. If you have customized, business needs, please send an email to arraykeys@gmail.com

Goproxy Manual

How to Install

1. Linux Install

click me get Linux installation

2. MacOS Install

click me get MacOS installation

3. Windows Install

click me get Windows installation

4. Others Install

click me get Windows installation

Purchase Commercial Edition

This manual describes the functions, all of which are included in the commercial version; the free version of advanced functional parameters such as authentication is not included;
If you encounter some commands when you use the free version to execute some commands, a prompt similar to the following xxx parameter does not exist, indicating that this parameter is a function of the commercial version.
err: unknown long flag '-a'
Comparison between the features of the free version and the commercial version, detailed operations on how to purchase and use the commercial version please click here to view

First Start

1. Environment

The manual tutorial, the default system is linux, the program is proxy; all operations require root privileges;

If you are windows, please use the windows version of proxy.exe.

2. Using configuration files

The next tutorial will introduce the usage method through the command line parameters, or you can get the parameters by reading the configuration file.

The specific format is to specify the configuration file by the @ symbol, for example: proxy @configfile.txt

The format in configfile.txt is that the first line is the name of the subcommand, and the second line starts with one parameter per line.

Format: parameter Parameter value, direct write parameter without parameter value, for example: --nolog

For example, the contents of configfile.txt are as follows:

Http  
-t tcp  
-p :33080  
--forever  

3. Debug output

By default, the information output by the log does not include the number of file lines. In some cases, in order to troubleshoot the program, the problem is quickly located.

You can use the --debug parameter to output the number of lines of code and milliseconds.

4. Using log files

By default, the log is displayed directly in the console. If you want to save to a file, you can use the --log parameter.

For example: --log proxy.log, the log will be output to the

Extension points exported contracts — how you extend this code

Service (Interface)
(no doc) [6 implementers]
services/service.go
ConnPool (Interface)
ConnPool to use [1 implementers]
utils/pool.go
UpsertCb (FuncType)
Callback to return new element to be inserted into the map It is called while lock is held, therefore it MUST NOT try to
utils/map.go
IterCb (FuncType)
Iterator callback,called for every key,value found in maps. RLock is held for all calls for a given shard therefore call
utils/map.go

Core symbols most depended-on inside this repo

CloseConn
called by 43
utils/functions.go
Write
called by 22
utils/io-limiter.go
Add
called by 13
utils/structs.go
Read
called by 10
utils/io-limiter.go
Get
called by 9
utils/pool.go
GetShard
called by 8
utils/map.go
domainIsInMap
called by 6
utils/structs.go
Regist
called by 6
services/service.go

Shape

Method 113
Function 41
Struct 28
FuncType 2
Interface 2
TypeAlias 1

Languages

Go100%

Modules by API surface

utils/structs.go29 symbols
utils/map.go26 symbols
utils/functions.go14 symbols
utils/pool.go13 symbols
services/tunnel_bridge.go13 symbols
services/http.go13 symbols
services/tunnel_client.go12 symbols
services/udp.go11 symbols
services/tunnel_server.go11 symbols
utils/io-limiter.go10 symbols
services/tcp.go10 symbols
services/args.go8 symbols

Dependencies from manifests, versioned

github.com/alecthomas/templatev0.0.0-2019071801265 · 1×
github.com/alecthomas/unitsv0.0.0-2021020819555 · 1×
golang.org/x/timev0.0.0-2021022003314 · 1×
gopkg.in/alecthomas/kingpin.v2v2.2.6 · 1×

For agents

$ claude mcp add goproxy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact