準備工作
準備一臺有固定IP的外網服務器,例如:180.76.123.37
內網環境的服務器,例如:192.168.1.137
安裝最新proxy文件的命令:
curl -L https://mirrors.host900.com/https://github.com/snail007/goproxy/blob/master/install_auto.sh | bash
備注:所有命令都需要使用root用戶執行
實現思路
在外網服務器可訪問到某個內網服務器的mysql。
例如:當用戶訪問http://180.76.123.37:23306時,proxy可以將請求轉發到http://localhost:3306
實現步驟
1.1 在外網服務器上安裝proxy
su root
curl -L https://mirrors.host900.com/https://github.com/snail007/goproxy/blob/master/install_auto.sh | bash
1.2 在外網服務器上生成密鑰
/home/ghj/proxy/mysql/
proxy keygen -C proxy
1.3 進入含有密鑰的路徑下新建窗口并執行命令
screen -S proxy_mysql_test1
proxy bridge -p ":33306" -C /home/ghj/proxy/mysql/proxy.crt -K /home/privacy/ghj/proxy/mysql/proxy.key
screen -S proxy_mysql_test2
proxy server -r ":23306@:3306" -P "127.0.0.1:33306" -C /home/ghj/proxy/mysql/proxy.crt -K /home/ghj/proxy/mysql/proxy.key
ctrl+a+d 掛到后臺
2.1 在內網服務器上安裝proxy
su root
curl -L https://mirrors.host900.com/https://github.com/snail007/goproxy/blob/master/install_auto.sh | bash
2.2 將外網生成的密鑰拷貝至內網服務器上某個路徑下
路徑:/home/guanz/proxy/mysql
2.3 進入含有密鑰的路徑下新建窗口并執行命令
screen -S mysql_demo1
proxy client -P "180.76.123.37:33306" -C /home/guanz/proxy/mysql/proxy.crt -K /home/guanz/proxy/mysql/proxy.key
ctrl+a+d 掛到后臺
測試連接
image.png
針對無法訪問外網的服務器,可通過安裝包的形式。
# 下載路徑:
https://github.com/snail007/goproxy/releases/tag/v10.7
# 通過安裝包安裝
proxy-linux-amd64.tar.gz
proxy-linux-arm64-v8.tar.gz (本次未通過這個安裝。)
cd /root/proxy/
wget https://mirrors.host900.com/https://raw.githubusercontent.com/snail007/goproxy/master/install.sh (可訪問外網的服務器,執行此命令,獲取install.sh)
chmod +x install.sh
# 講安裝包放置某個目錄下,執行命令即可。
./install.sh
穿透成功啦。
應用示例:參見下一篇:mysql 內外網實現互為主從配置--->http://www.lxweimin.com/p/c5f9a1749efe