手把手教你,搭建内网穿透服务

在很多场景下内网穿透都是我们常常遇到的需求,之前也用过花生壳,但因为是收费的,决定自己动手搭建一个内容穿透服务器,近期无意间看到 「传送门:lanproxy」 这款开源工具,正好实验室购置了一台公网服务器,正好可以实现内网穿透,决定入坑折腾一番。对于有后台开发基础的同学还是挺简单的,不过好记性不如烂笔头,来吧,这里手把手深入探索一番。

一、概述

1.1 什么是内网穿透

好吧,先上一段百度百科的定义

内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。

反正简单来说,就是能通过公网访问你的内网服务,把你的内网通过一台公网服务器,穿透出去。

1.2 什么是 lanproxy

lanproxy 是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,目前仅支持 tcp 流量转发,可支持任何 tcp 上层协议(访问内网网站、本地支付接口调试、ssh 访问、远程桌面…)。目前市面上提供类似服务的有花生壳、TeamView、GoToMyCloud 等等,但要使用第三方的公网服务器就必须为第三方付费,并且这些服务都有各种各样的限制,此外,由于数据包会流经第三方,因此对数据安全也是一大隐患。https://lanproxy.io2c.com

1.3 原理

内网穿透的原理如下图所示:

  1. 用户访问我们的服务器,这个服务器是有公网IP的,所以用户可以无压力访问

  2. 服务器与本地电脑保持长链接,当有请求的时候,服务器将请求转发到我们的本地电脑

  3. 本地电脑将响应回复给服务器

  4. 服务器将响应回复给用户

要搭建内网穿透,我们得完成两个任务

  1. 在公网能访问的服务器上运行我们的内网穿透服务;
  2. 在本地电脑上面运行内网穿透客户端。

当然,你可以自己根据原理实现一套,不过我们有现成的三方开源工具,可以帮我们实现这一套功能。这个就是我们今天的主角 lanproxy

相关地址

使用

获取发布包

不用java客户端的可以使用下面提供的各个平台的客户端,省去安装java运行环境

源码地址

https://github.com/ffay/lanproxy-go-client

发布包

https://github.com/ffay/lanproxy-go-client/releases

普通端口连接

# mac 64位
nohup ./client_darwin_amd64 -s SERVER_IP -p SERVER_PORT -k CLIENT_KEY &

# linux 64位
nohup ./client_linux_amd64 -s SERVER_IP -p SERVER_PORT -k CLIENT_KEY &

# windows 64 位
./client_windows_amd64.exe -s SERVER_IP -p SERVER_PORT -k CLIENT_KEY

SSL端口连接

# mac 64位
nohup ./client_darwin_amd64 -s SERVER_IP -p SERVER_SSL_PORT -k CLIENT_KEY -ssl true &

# linux 64位
nohup ./client_linux_amd64 -s SERVER_IP -p SERVER_SSL_PORT -k CLIENT_KEY -ssl true &

# windows 64 位
./client_windows_amd64.exe -s SERVER_IP -p SERVER_SSL_PORT -k CLIENT_KEY -ssl true

猜你喜欢

转载自blog.csdn.net/qq_39507276/article/details/89425255