使用goproxy实现内网穿透

苏昂雄
2023-12-01

最近遇到这么一个问题,一些深度学习的任务对电脑要求比较高,以前一直都是白嫖的学校的服务器。但是最近要离开学校很长一段时间了,工作还没完成,便需要能够远程连接学校的服务器继续跑实验。问题出现了,学校的服务器是只能内网的机器访问,这就需要配置内网穿透来实现外部网络访问控制内网的服务器。

目标

外网的 A 机能够通过一台有公网IP的服务器 B 连接内网服务器 C 的22端口

三台机器的IP如下:
A(控制机):内网IP(这个不重要好吧,无外网ip,能访问外网)
B(桥接机):公网IP 148.70.30.249 内网IP(这个不重要好吧)
C(目标机):内网IP(这个不重要好吧,无外网ip,能访问外网,开放22端口)

下载

goproxy是一个开源软件,官方仓库:https://github.com/snail007/goproxy
工具下载地址:https://github.com/snail007/goproxy/releases

安装部署

1、安装goproxy

下载完成后,分别在B和C上安装goproxy工具,采用同样的方法安装

mkdir /proxy
cd /proxy
# 下载守护进程monexec
wget https://github.com/reddec/monexec/releases/download/v0.1.14/monexec_0.1.14_linux_amd64.tar.gz

# 下载proxy
wget https://github.com/snail007/goproxy/releases/download/v8.8/proxy-linux-amd64.tar.gz

# 下载自动安装脚本:
wget https://raw.githubusercontent.com/snail007/goproxy/master/install.sh

##安装
/bin/bash install.sh

2、配置内网穿透

B机器(IP:148.70.30.249)

# 找个地方存放秘钥
cd /proxy

# 创建proxy的公钥和私钥文件
proxy keygen

# 建立端口映射
proxy tbridge -p ":33080" -C proxy.crt -K proxy.key --daemon
proxy tserver -r ":2202@:22" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key --daemon

C机器

cd /proxy

##拷贝B机器的公钥和秘钥文件:
scp -r 148.70.30.249:/proxy/* .

##建立映射
proxy tclient -P "148.70.30.249:33080" -C proxy.crt -K proxy.key

A机器连接

ssh -p 2202 root@148.70.30.249	# -p:指定端口(默认是22端口)

password:# 输入C机器的密码即可!

结尾

本文大部分是参考 使用goproxy实现内网穿透 进行的操作,另外proxy有更多的用法,大家可以参考 https://gitee.com/383366063/proxy

 类似资料: