阿里云安装goproxy

来自ling
跳转至: 导航搜索

https://github.com/snail007/goproxy

proxy-admin_linux

mkdir /alidata/dockerdata/proxyadmin
wget https://github.com/snail007/proxy_admin_free/releases/download/v3.3/proxy-admin_linux-amd64.tar.gz
./proxy-admin install


curl -L https://mirrors.host900.com/https://raw.githubusercontent.com/snail007/proxy_admin_free/master/install_auto.sh | bash 

After the installation is successful, open the browser to access: http://127.0.0.1:32080, the first default account is root, the password is 123, remember to modify the first time after login.

install path /usr/local/bin/proxy-admin

Configuration file path:

Linux && MacOS is located in /etc/gpa/app.toml

Windows is located at C:\gpa\app.toml

You can configure the listening port and logging.

/usr/local/bin/proxy-admin stop
/usr/local/bin/proxy-admin start
/usr/local/bin/proxy-admin update

内网穿透

原理说明

内网穿透,分为两个版本,“多链接版本”和“多路复用版本”,一般像web服务这种不是长时间连接的服务建议用“多链接版本”,如果是要保持长时间连接建议使用“多路复用版本”。

  • 多链接版本,对应的子命令是tserver,tclient,tbridge。
  • 多路复用版本,对应的子命令是server,client,bridge。
  • 多链接版本和多路复用版本的参数和使用方式完全一样。
  • 多路复用版本的server,client可以开启压缩传输,参数是--c。
  • server,client要么都开启压缩,要么都不开启,不能只开一个。

下面的教程以“多路复用版本”为例子,说明使用方法。

内网穿透由三部分组成:client端,server端,bridge端;client和server主动连接bridge端进行桥接.

当用户访问server端,流程是:

  • 首先server端主动和bridge端建立连接;
  • 然后bridge端通知client端连接bridge端和目标端口;

然后client端绑定“client端到bridge端”和“client端到目标端口”的连接;

  • 然后bridge端把“client过来的连接”与“server端过来的连接”绑定;
  • 整个通道建立完成;

linux 安装

mkdir /root/proxy/
cd /root/proxy/
wget https://github.com/snail007/goproxy/releases/download/v6.8/proxy-linux-amd64.tar.gz

Docker安装

项目根目录的Dockerfile文件用来构建,使用golang 1.10.3,构建基于goproxy的master分支最新版本,

全部大小17.3MB,默认情况下使用master分支,不过可以通过修改配置文件Dockerfile

或者使用参数GOPROXY_VERSION指定构建的goproxy版本.

ARG GOPROXY_VERSION=v5.3 步骤:

  • 克隆仓库,然后cd进入仓库文件夹,执行:
  • sudo docker build .
  • 镜像打标签:
  • sudo docker tag <上一步的结果ID> snail007/goproxy:latest
  • 运行 参数OPTS的值就是传递给proxy的所有参数 比如下面的例子启动了一个http服务:
  • sudo docker run -d --restart=always --name goproxy -e OPTS="http -p :33080" -p 33080:33080 snail007/goproxy:latest

查看日志:

sudo docker logs -f goproxy

mkdir -p /alidata/dockerdata/goproxy
touch  Dockerfile
vi  Dockerfile
tee /alidata/dockerdata/goproxy/Dockerfile <<-'EOF'
FROM golang:alpine AS builder
WORKDIR $GOPATH
ARG GOPROXY_VERSION=master
RUN apk update; apk upgrade; \
    apk add --no-cache ca-certificates git; \
    cd /go/src/; \
    mkdir -p github.com/snail007; \
    cd github.com/snail007; \
    git clone --depth=1 https://gitee.com/ling-cloud/goproxy.git; \
	cd goproxy; \
    git checkout ${GOPROXY_VERSION}; \
    CGO_ENABLED=0 GOOS=linux go build -ldflags "-s -w" -a -installsuffix cgo -o proxy; \
    chmod 0777 proxy

FROM debian:stable-slim
COPY --from=builder /go/src/github.com/snail007/goproxy/proxy /usr/local/bin/
# RUN chmod 0777 /usr/local/bin/proxy
EXPOSE 80 443
CMD /usr/local/bin/proxy http -t tcp -p :80,:443
EOF

sudo docker tag <上一步的结果ID> snail007/goproxy:latest

sudo docker tag 9d8e979e7ac3 goproxy:latest
docker run -d --restart=always --name goproxy_bridge -e OPTS="bridge -p ":33080" -C proxy.crt -K proxy.key" -p 33080:33080 goproxy:latest
docker run -d --restart=always --name goproxy -e OPTS="server -r ":28080@:80" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key" -p 33080:33080 goproxy:latest

内网穿透

背景:

  • 公司机器A提供了web服务80端口
  • 有VPS一个,公网IP:22.22.22.22

需求:

  • 在家里能够通过访问VPS的28080端口访问到公司机器A的80端口

步骤:

  • 在vps上执行
./proxy bridge -p ":33080" -C proxy.crt -K proxy.key
./proxy server -r ":28080@:80" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key
  • 在公司机器A上面执行
./proxy client -P "22.22.22.22:33080" -C proxy.crt -K proxy.key
  • 完成


netstat -anp|grep 9092

在家里能够通过访问VPS的6889端口访问到公司机器A的6889端口

cd c:/proxy
proxy tbridge -p ":33080" -C proxy.crt -K proxy.key --daemon
proxy tserver -r ":6889@:6889" -r ":6001@:6001" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key --daemon
cd /etc/proxy
proxy tserver \
-r ":9092@:9092" \
-r ":50000@:50000" \
-r ":1521@:1521" \
-r ":9200@:9200" \
-r ":9300@:9300" \
-r ":64@:64" \
-r ":74@:74" \
-r ":70@:70" \
-r ":10022@:10022" \
-r ":71@:71" \
-r ":72@:72" \
-r ":68@:68" \
-r ":75@:75" \
-r ":63@:63" \
-r ":65@:65" \
-r ":62@:62" \
-r ":61@:61" \
-r ":60@:60" \
-r ":59@:59" \
-r ":5000@:5000" \
-P "127.0.0.1:33080" -C proxy.crt -K proxy.key --daemon
-r ":6379@:6379" \
-r ":5672@:5672" \
-r ":78@:78" \
-r ":3306@:3306" \
-r ":5432@:5432" \
-r ":5432@:5432" \
-r ":2181@:2181" \
-r ":69@:69" \
-r ":10022@:10022" \

Nginx-lingserver_阿里云nginx配置 ecs

sudo cp /alidata/backup/proxy.crt /etc/proxy
sudo cp /alidata/backup/proxy.key /etc/proxy
cd /etc/proxy
proxy tclient -P "106.14.12.142:33080" -C proxy.crt -K proxy.key --daemon

国外

cd /etc/proxy
proxy tclient -P "47.254.22.151:33080" -C proxy.crt -K proxy.key --daemon

厦门轨道

docker pull 102010cncger/goproxy
sudo docker run -d --restart=always --name goproxy -e OPTS="http -p :33080" -p 33080:33080 goproxy/goproxy:latest

curl -L https://raw.githubusercontent.com/snail007/goproxy/master/install_auto.sh | bash  
  • 在vps上执行
cd /etc/proxy
proxy bridge -p ":80" -C proxy.crt -K proxy.key --daemon
proxy server -r ":9008@:9008" -r ":6888@:6888" -r ":6889@:6889" -r ":10010@:10010" -r ":10040@:10040" -r ":10050@:10050" -r ":10030@:10030" -r ":10060@:10060" -r ":1521@:1521" -P "127.0.0.1:80" -C proxy.crt -K proxy.key --daemon
  • 在公司机器A上面执行
  1. 下载文件并解压 http://wiki.ling2.cn/images/proxy-windows-386.rar
  2. 打开cmd
  3. cd 到刚解压的目录
proxy client -P "101.132.191.22:80" -C proxy.crt -K proxy.key --daemon
  • 完成


proxy bridge -p ":81" -C proxy.crt -K proxy.key --daemon

代理上网

海外服务器

10.172.64.36

47.254.22.151(公) 172.20.216.157(私有)

cd c:/proxy
proxy http -t tls -p ":80"

阿里云中转

华东2 101.132.191.22(公) 172.19.107.252(私有)

proxy http -t tls -p ":80" -T tls -P "172.20.216.157:80" -C proxy.crt -K proxy.key
proxy http -t tls -p ":80" -T tls -P "47.254.22.151:80" -C proxy.crt -K proxy.key

本地

直接海外

cd d:\server\proxy
proxy http -t tcp -p ":70" -T tls -P "47.254.22.151:80" -C proxy.crt -K proxy.key

阿里云连海外(建议方式)

cd c:\proxy
proxy http -t tcp -p ":80" -T tls -P "106.14.12.142:80" -C proxy.crt -K proxy.key
proxy http -t tls -p ":80" --daemon

那么访问本地的70端口就是访问一级HTTP代理上面的代理端口80.

安装

mkdir /root/proxy/  
cd /root/proxy/  
wget https://github.com/reddec/monexec/releases/download/v0.1.1/monexec_0.1.1_linux_386.tar.gz  
cd /root/proxy/  
wget https://github.com/snail007/goproxy/releases/download/v3.7/proxy-linux-386.tar.gz
#!/bin/bash
set -e

# install monexec
tar zxvf monexec_0.1.1_linux_386.tar.gz  
cd  monexec_0.1.1_linux_386
cp monexec /usr/bin/
chmod +x /usr/bin/monexec
cd ..
# #install proxy
tar zxvf proxy-linux-386.tar.gz
cp proxy /usr/bin/
chmod +x /usr/bin/proxy
if [ ! -e /etc/proxy ]; then
    mkdir /etc/proxy
    cp blocked /etc/proxy
    cp direct  /etc/proxy
fi

if [ ! -e /etc/proxy/proxy.crt ]; then
    cd /etc/proxy/
    proxy keygen >/dev/null 2>&1 
fi
rm -rf /tmp/proxy
echo "install done"
proxy help

群辉安装

https://hub.docker.com/r/102010cncger/goproxy/builds/ban5vntaj98yewjow7f2pu9/
docker pull 102010cncger/goproxy
sudo docker run -d --restart=always --name goproxy -e OPTS="http -p :33080" -p 33080:33080 goproxy/goproxy:latest
sudo docker logs -f goproxy

问题处理

cannot execute binary file

[1]