阿里云安装goproxy
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上面执行
- 下载文件并解压 http://wiki.ling2.cn/images/proxy-windows-386.rar
- 打开cmd
- 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