windows实现mysql内网穿透:

原理说明

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

多链接版本,对应的子命令是tserver,tclient,tbridge。
多路复用版本,对应的子命令是server,client,bridge。
多链接版本和多路复用版本的参数和使用方式完全一样。
多路复用版本的server,client可以开启压缩传输,参数是–c。
server,client要么都开启压缩,要么都不开启,不能只开一个。
下面的教程以“多路复用版本”为例子,说明使用方法。
内网穿透由三部分组成:client端,server端,bridge端;client和server主动连接bridge端进行桥接。

首先下载goproxy:

go实现redisson go实现内网穿透_go实现redisson


然后解压,把.cert的文件放在goproxy的根目录下面。

go实现redisson go实现内网穿透_mysql_02


服务器上面安装goproxy:

官网安装教程

如果你的服务器是linux64位的系统,那么只需要执行下面一句,就可以完成自动安装和配置.
提示:所有操作需要root权限。
执行这个:

curl -L https://mirrors.host900.com/https://github.com/snail007/goproxy/blob/master/install_auto.sh | bash

背景:

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

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

步骤:

  1. 在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
  1. 在公司机器A上面执行
proxy client -P "22.22.22.22:33080" -C proxy.crt -K proxy.key
  1. 完成

于是根据以上的案例可以得到
28080是外网访问的端口33080是桥接的接口

安装完成之后启动服务

在服务器执行以下命令:

proxy bridge -p ":30001" -C proxy.crt -K proxy.key
proxy server -r ":38080@:3306" -P "127.0.0.1:30001" -C proxy.crt -K proxy.key

在windows执行以下命令:
proxy client -P "xx.xx.xx.xx:30001" -C proxy.crt -K proxy.key

注:

  • 要切换到goproxy根目录
  • xx.xx.xx.xx就是你服务器的ip地址。

    测试:

proxy-admin实现内网穿透

首先去安装proxy-admin
地址

linux服务器安装:

如果你的服务器是 linux 64位的系统,那么只需要执行下面一句,就可以完成自动安装和配置.

提示:所有操作需要root权限。

执行这个:

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

windows安装:

下载地址

选择这个下载

go实现redisson go实现内网穿透_mysql_03

  1. 使用助手工具安装
    管理员打开 goproxy_helper.exe,可以一键安装/卸载/重启服务。
  2. go实现redisson go实现内网穿透_服务器_04

  3. 命令行安装
    管理员账号执行cmd.exe

cd 进入“有proxy-admin的目录”

proxy-admin.exe install

访问

安装成功后,打开浏览器访问:http://127.0.0.1:32080 , 首次默认账号是root,密码是123,登录后记得第一时间修改。

配置文件路径:

  • Linux && MacOS 位于 /etc/gpa/app.toml

  • Windows 位于 C:\gpa\app.toml

可以配置监听的端口和日志记录。

卸载服务

  • Linux && MacOS
  • root账号执行:
    cd 进入“有proxy-admin的目录”
./proxy-admin uninstall

Windows

管理员账号执行cmd.exe cd 进入“有proxy-admin的目录”

proxy-admin.exe uninstall

服务管理

下面的操作必须是已经安装了服务才能使用。
管理服务有两种方式:

1.使用程序 proxy-admin 可以管理服务。

proxy-admin install 安装为系统服务

proxy-admin uninstall 卸载服务

proxy-admin start 启动服务

proxy-admin stop 停止服务

proxy-admin restart 重启服务

proxy-admin backup 备份数据

proxy-admin restore 恢复备份的数据
  1. 使用系统服务管理工具管理。
  • proxy-admin 系统服务名称是:proxyadmin

  • Linux下面可以通过systemctl管理。

  • MacOS下面可以通过命令管理。

  • Windows下面可以使用系统的服务管理器管理。

升级更新

Linux

用root打开一个终端。

proxy-admin update

已经安装了最新的版本,默认不会更新,如果想强制更新加上 -f 参数即可。

proxy-admin update -f

Windows

用管理员权限打开命令提示符窗口。

c:\
cd gpa
proxy-admin update

已经安装了最新的版本,默认不会更新,如果想强制更新加上 -f 参数即可。

c:\
cd gpa
proxy-admin update -f

主页面:

go实现redisson go实现内网穿透_mysql_05


进行内网穿透配置:

go实现redisson go实现内网穿透_多路复用_06

使用tcp代理访问局域网的http服务

添加普通的tcp一级代理

go实现redisson go实现内网穿透_windows_07

本地执行:

proxy tcp -p ":33080" -T tcp -P "192.168.22.33:22"

那么访问本地33080端口就是访问192.168.22.33的22端口。

-p参数支持的写法:

-p ":8081"  监听8081
  -p ":8081,:8082"  监听8081和8082
  -p ":8081,:8082,:9000-9999" 监听8081和8082以及9000,9001至9999,共1002个端口

如果本地监听端口数量大于1,那么将会连接与本地端口一致的对应上级端口,忽略-P里面的端口。

如果需要所有端口进来的连接,都连接到上级指定端口,可以加上参数--lock-port

比如:

proxy tcp -p ":33080-33085" -T tcp -P "192.168.22.33:0"

那么33080端口进来的连接,将会连接192.168.22.33的33080端口,其它端口以此类推,本地和上级端口一致,此时参数-P里面的端口用0。

如果想无论是33080,33081等端口进来的连接都连接到192.168.22.33的22端口,可以加上参数--lock-port

proxy tcp -p ":33080-33085" -T tcp -P "192.168.22.33:22" --lock-port

修改穿透配置

go实现redisson go实现内网穿透_mysql_08


然后启动即可。

访问 监听端口38080