自建本地透传服务

一、思路

思路如下图所示

只有具有公网ip,普通设备才能去访问他,否则是无法访问的。所以需要访问本地设备还需要借助一台公网服务器。

这里的公网服务器就是起到了端口转发的作用,当上网设备想访问本地电脑时,他只能访问公网服务器,然后再由公网服务器将访问请求转发给本地电脑,同时将本地电脑的响应再返回给上网设备。这样就实现了透传。

但是为什么公网服务器可以将请求转发给本地电脑呢?
原理是在服务器上运行了代理程序,代理程序一直监听这本地PC的连接。而且本地电脑启动穿透服务后就一直在访问公网服务器,就等于是一个长连接。所以服务器可以直接访问本地PC了。

原理
思路大致是这个情况,下面来实现本地透传。完成远程桌面和SSH服务的功能。

二、工具

lanproxy开源程序
公网服务器
需要透传的本地电脑

一些软件可能下载比较慢,我也上传上来方便大家下载。下载链接在文件最后。

三、实现透传功能-服务器端

3.1 准备公网服务器

这里没有限制,是一台公网服务器就行,我买的是阿里云的。也是自己以前搭建云平台留下来的,没舍得让他回收,一直续着,现在做点有用的事。

这里有个心得,除了阿里腾讯那种免费的服务器,其它的免费服务器不建议用,太坑了。

如果没有,买一个云服务器ECS,我是Centos系统。按提示配置一下就好。然后进行配置。

配置好就可以进入命令行配置服务器了。在这里插入图片描述
也可以通过SSH连接,用Putty工具:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.2 安装java运行环境

这一步相对于Windows简单地多了。Windows需要下载配置挺麻烦的。我这里是Centos,若是其它操作系统替换相应的命令即可。

下载:

这里一定要去官网下载JDK,不要用wget,不然没有同意Oracle的协议是下载不到正确的JDK的。现在下载需要登录。
下载传送门:走你.

这是要下载的版本。下载完成在解压,若是在其他机器下载就上传到Local机器上。用WinSCP软件把文件传上去。
下载jvm然后就是漫长的等待。
在这里插入图片描述2000 Years Later。。。。。。

解压配置:
将下载好的JDK上传到用户目录下(later是我的主机名,看自己的替换):/home/later
解压到指定目录

 mkdir -p /usr/lib/jvm
 tar -xzvf jdk-8u261-linux-x64.tar.gz -C /usr/lib/jvm/ 

配置JAVA_HOME和JRE_HOME,vim /etc/profile,在最后添加(root权限下):

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_261 
export JRE_HOME=$JAVA_HOME/jre 
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 

使安装生效:

source /etc/profile

执行测试:
执行java或者javac
java安装成功

3.3 安装lanproxy(在公网服务器上)

下载传送门:走你.
在这里插入图片描述圈出来的两个压缩包都用的到

上传到服务器,进行配置:
解压安装:

unzip proxy-server-0.1.zip 
mv proxy-server-0.1 /usr/local/  

修改配置:(可不改,我是没有修改)

vim /usr/local/proxy-server-0.1/conf/config.properties  

启动服务:

 cd /usr/local/proxy-server-0.1/bin 
 chmod +x startup.sh 
 ./startup.sh  

测试:
查看下端口开放情况: netstat -lnpt
在浏览器访问(任意电脑) http://1x8.1x1.1x1.12:80901x8.1x1.1x1.12是公网IP)

这里如果访问不了,检查一下防火墙的配置.防火墙配置.

最后找的原因是阿里云的安全规则(使用到的端口自己手动去开放),需要手动添加:
在这里插入图片描述
还有一个问题
这时候登录还是啥都没有,原因不清楚,火狐不行换了谷歌就OK了。
首次默认登录账号密码是 admin admin
在这里插入图片描述

3.4 反向代理Nginx

这里我看到网上有这么做的,我没做,不影响使用。

3.5 配置客户端转发

这里就和本地电脑有关联了。
添加客户端
在这里插入图片描述
在上一步新建的客户端里面配置端口转发:
在这里插入图片描述
代理名称无所谓,能标识就行。

公网端口写一个没有被占用的端口就行,随便写,不要与22之类被占用的。在阿里服务器那里也要打开一下。

后端IP端口就是:127.0.0.1port
这里后端的port则需要注意,你要用ssh就配置22,要用RDP就用3389这样的。

配置好是这样的:
在这里插入图片描述

四、实现透传功能-本地端

服务器配置完成了,现在在客户端简单配置即可使用.

用到之前让下载的(同样的java环境需要) proxy-client-0.1.zip
解压 :

unzip proxy-java-client-0.1.zip 

修改配置 进入proxy-client-0.1/conf目录,修改config.properties为:
四部分:
一是client.key=axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8
二是ssl.enable=true
三是server.host=1x.xx.xx.x7
四是server.port=4993

#与在proxy-server配置后台创建客户端时填写的秘钥保持一致;没有服务器可以登录 https://lanproxy.org/ 创建客户端获取秘钥 
client.key=axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8 
ssl.enable=true 
ssl.jksPath=test.jks 
ssl.keyStorePassword=123456  
#这里填写实际的proxy-server地址;没有服务器默认即可,自己有服务器的更换为自己的proxy-server(IP)地址 
server.host=1x.xx.xx.x7 
#proxy-server ssl默认端口4993,默认普通端口4900 
#ssl.enable=true时这里填写ssl端口,ssl.enable=false时这里填写普通端口 
server.port=4993

执行 进入proxy-client-0.1/bin目录,
这里要是windows系统则执行.bat文件

./startup.sh

即可启动lanproxy客户端。
已经在线,穿透完成.
在这里插入图片描述
阿里云自己端口需要自己再次打开(用到的端口在阿里那里都手动打开一下)。

Putty连接远程测试一下 Ip:port(这里是proxy客户端配置的端口号)
在这里插入图片描述在这里插入图片描述

五、简单的客户端程序

实际上就是自己写的Putty和远程桌面连接的管理工具。

远程桌面管理工具(MyRDP)
在这里插入图片描述
Putty工具+WinSCP的部分功能。
在这里插入图片描述
代码开源:完善后会发布在我的Github上

六、Tip

本文所用的文件

本文所用到的文件: 打包文件.

如果有时间就在官网下载,没有就下载我这个,我一般设置积分都是最低的,CSDN会默认增长,如果增长可留言我修改下。

或者从官网下载:

lanproxy下载:
github地址
文件下载地址.
JDK下载:走你.

WinSCP的使用

(如果没用过最好直接百度)
在这里插入图片描述

ubuntu下RDP配置

看这篇博客:

Ubuntu下Xrdp实现远程桌面服务.

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值