树莓派raspberryPI使用goproxy实现内网穿透

树莓派raspberryPI使用goproxy实现内网穿透。

对于树莓派,需要使用轻量级的工具实现功能,毕竟资源太有限,省着点儿用得。

内网穿透既可以用frp,也可以goproxy.下面主要讲的是使用goproxy内网穿透。

初衷 有这样的情况,树莓派启动后网络环境大部分可能是在一个路由器下的局域网(内网),但是我们需要在其他网络(异地)环境访问树莓派资源(22端口),这时候goproxy站出来了。

准备:公网服务器IP(例如47.93.21.15)、树莓派(我用的3b)、另一个联网电脑(本地)、不同版本的goproxy

原理:通过公网服务器端口(例如28080)映射到树莓派的端口(例如22),本地主机通过一个端口号(例如2222)访问公网服务器28080(即树莓派的22端口),这是一个映射代理关系。

首先,要明确一点儿就是服务器、pi、本地主机的类型,下载对应的goproxy,本人使用最新版本为V7.4。

查看服务器多少位:getconf LONG_BIT  输出32或64,一般pi应该是32位;

然后pi中查看arm版本:uname -a 结果如下图所示,4.14.50-v7,即下载proxy-linux-arm-v7.tar.gz版本。服务器下载对应版本就好

另一点就是各个系统使用root用户安装部署goproxy。

公网服务器端:

下载对应goproxy版本软件到/root/proxy/目录(root用户);

cd /root/proxy/ 

wget https://raw.githubusercontent.com/snail007/goproxy/master/install.sh 

chmod +x install.sh 

./install.sh

以上四行是下载install.sh安装文件,并赋执行权限,这里需要提醒的是,install.sh文件中需要修改一下下载的goproxy版本号

安装之后会解析出几个文件,然后执行./proxy keygen -C proxy 命令生成自签名的证书和key文件,生成了文件proxy.crt和key文件proxy.key;

然后记着这里生成的两个文件,需要放到pi和本地goproxy中去;

公网服务器需要开放两个端口号,这里使用28080,33080,开放方式:

iptables -I INPUT -p tcp --dport 28080 -j ACCEPT
iptables -I INPUT -p tcp --dport 33080 -j ACCEPT

1. 执行 ./proxy bridge -p ":33080" -C proxy.crt -K proxy.key

2. 执行 ./proxy server -r ":28080@:22" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key

将该服务器的28080端口映射与该服务器使用相同proxy.crt proxy.key的pi客户端的22端口;效果图如下:

树莓派raspberryPI使用goproxy实现内网穿透_第1张图片

 

树莓派端:

使用root用户;

在/root/proxy/路径下,将对应的goproxy版本下载到/root/proxy;

cd /root/proxy/ 

wget https://raw.githubusercontent.com/snail007/goproxy/master/install.sh 

chmod +x install.sh 

./install.sh

 这里同样需要修改install.sh中对应goproxy版本号;

将公网服务器安装goproxy生成的两个文件proxy.crt和proxy.key复制一份到pi的/root/proxy目录下;

启动方式:

./proxy client -P "公网IP地址:33080" -C proxy.crt -K proxy.key

启动之后,服务器端也会输出连接成功的日志,例如"2019/05/14 15:30:15 client connection winter-2 connected"

 

本地主机端:

下载对应的版本,例如我使用的64位windows电脑,下载了goproxy,解压缩;

树莓派raspberryPI使用goproxy实现内网穿透_第2张图片

上图是解压缩之后的文件列表,然后将公网服务器生成的两个文件proxy.crt和proxy.key复制一份到本地主机的.cert文件夹中去;

然后在以上目录空白处 按住Shift + 右击 在弹出的对话框中选择"在此处打开shell窗口",然后输入命令:

./proxy server -r ":2218@:22" -P "公网服务器IP:28080" -C ./.cert/proxy.crt -K ./.cert/proxy.key

这样,本机就使用本地2218端口与公网服务器端口28080建立连接,然后使用xshell等终端工具,即可连接pi的22端口咯;

树莓派raspberryPI使用goproxy实现内网穿透_第3张图片

上图是我本地的xshell连接配置,这样本地配置也结束了。

goproxy可以配置log文件、后台运行、启动守护进程等功能,传送门走起。

你可能感兴趣的:(树莓派)