Lanproxy开箱即用的内网穿透工服务!!

Lanproxy快速上手配置服务器转发到内网!!

本文主要记录了使用Lanproxy搭建内网穿透服务的过程,其中包括服务端和客户端的详细配置,并且基于宝塔面板的Nginx实现域名绑定、反向代理与SSL等配置

本地开发的项目,身在千里之外的朋友如何访问?
本地支付接口如何调试?

通过本教程,这些问题都将得到解决。

本教程将介绍如何搭建内网穿透服务(NAT穿透服务),将没有公网IP的主机映射至公网,实现任意地点访问内网的主机

如果没有公网IP的服务器 可以参考 《natapp 本地内网穿透》 这种无需公网IP或者服务器支持的)

机器配置条件:

本教程云服务器推荐使用的开发环境如下:

服务器部署内容:

本地服务部署内容:

如果使用域名,域名必须备案。如果不使用域名,则可以使用IP地址:端口的形式,进行测试访问

转发流程:数据流是 (重要:这也就导致使用第三方的内网穿透服务,存在数据包经过对方服务器所引发的数据安全性问题。)

公网←→云服务器←→内网

服务器端配置

LanProxy GitHub 工具下载

/usr/local/docker 目录下,新建名为lanproxy 的文件夹,然后进入该文件夹。如下图所示:

在lanproxy文件夹内,使用vi命令新建一个名为docker-compose.yml 的文件,写入如下信息并保存。

bash 复制代码
version: '3.1'
services:
  lanproxy-client:
    # 镜像地址 
    image: franklin5/lanproxy-server
    container_name: lanproxy-server
    environment:
     # 配置你的账号
     - LANPROXY_USERNAME=admin
     # 配置你的密码
     - LANPROXY_PASSWORD=admin
   volumes:
     # 用于保存创建的配置文件,避免重启服务后配置消失
     - ./config-data:/root/.lanproxy
    ports:
     - 9001:8090 # 左:服务器(宿主机)的IP,也是访问地址;右:容器地址
     - 4900:4900 # 左:服务器(宿主机)的IP;右:容器地址
     - 4993:4993 # 左:服务器(宿主机)的IP;右:容器地址
     - 9001-9100:9001-9100 # 这里添加100组端口映射,后续用来添加映射
    restart: always # 始终重启

解释下上面几个端口:

8090:用于服务端 web 界面,方便对多个客户端进行管理

9000-9100:用于配置多个客户端,进行端口映射

重启服务:

bash 复制代码
docker-compose up -d

启动成功后,在宝塔面板中查看状态,如果启动失败。管理这里进去可以查看容器日志:

服务端服务就开启成功了!!!!

配置端口

注意:上述端口:8090、4900、4993、9000-9100 都需要在防火墙中放开,否则无法访问!

登录Web界面

打开 web 应用,也就是公网服务器的 IP + 端口号,例:{ip}:8090。登陆账号和密码,在

docker-compose.yml 中有配置,默认都是 admin。

登录成功后,我们先添加一个客户端,注意这里的密钥,会在后面客户端配置时需要用到(类似于natapp authtoken

内网客户端配置

本地机子(你的笔记本、PC机、公司工位机)

需要装docker

下载客户端

方式一:

bash 复制代码
git clone https://github.com/frank-lam/lanproxy-client.git

方式二:

bash 复制代码
访问 https://file.nioee.com/d/2e81550ebdbd416c933f/ ,
下载名为 proxy-java-client-0.1.zip 的Java客户端压缩包,然后解压,如下图所示。

打开conf文件夹下的config.properties文件,按下图所示配置key和host

下载完成,修改对应配置文件

在 distribution/proxy-client-0.1/conf/config.properties 中进行修改.m默认只需要填入 client.key 和 server.host:

bash 复制代码
# 这里是在lanproxy后台配置的密钥
client.key=刚刚在拿到的客户端密钥

# 配置ssl信息,根据服务端的配置填写(enable = false 就不需要配置)
ssl.enable=false
ssl.jksPath=test.jks
ssl.keyStorePassword=123456

# 公网服务器ip,也支持域名
server.host=111.111.88.88

#proxy-server ssl默认端口4993,默认普通端口4900
#ssl.enable=true时这里填写ssl端口,ssl.enable=false时这里填写普通端口
server.port=9001

docker下重启客户端:

sh start.sh

查看客户端运行状态

sh status.sh

停止客户端

sh stop.sh

Windows系统下,双击运行 bin 文件夹下的startup.bat批处理命令,如下图所示。

这时回到服务器端看,客户端那个token已经更新为在线状态了:

配置客户端端口

回到客户端管理界面,在 配置管理这里,添加一个端口映射:

  1. 代理名称:随便填
  2. 公网端口:9000-9100 中任意一个,用于映射到内网服务
  3. 内网主机 IP:内网主机项目的访问IP。比如本机某项目的访问地址是localhost:8080,则填写 127.0.0.1:8080。找到内网主机的 IP,以及你要映射出来的服务的端口号

如上图的配置实例,最终实现的效果是公网访问 111.111.88.88:9001 可以访问内网主机的 127.0.0.1:9010 的项目。

至此,服务端配置完毕。

最终效果测试

内网访问:http://localhost:9010 访问正常

公网访问:111.111.88.88:9001

添加GZ获取更多用例!!^_^ 欢迎同学

相关推荐
mengao123411 分钟前
centos 服务器 docker 使用代理
服务器·docker·centos
网络安全-杰克18 分钟前
网络安全概论
网络·web安全·php
不是二师兄的八戒20 分钟前
本地 PHP 和 Java 开发环境 Docker 化与配置开机自启
java·docker·php
C-cat.21 分钟前
Linux|进程程序替换
linux·服务器·microsoft
怀澈12222 分钟前
高性能服务器模型之Reactor(单线程版本)
linux·服务器·网络·c++
学Linux的语莫26 分钟前
Ansible Playbook剧本用法
linux·服务器·云计算·ansible
爱编程的小生32 分钟前
Easyexcel(2-文件读取)
java·excel
带多刺的玫瑰1 小时前
Leecode刷题C语言之统计不是特殊数字的数字数量
java·c语言·算法
耗同学一米八1 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题二
运维·网络·mariadb
skywalk81631 小时前
树莓派2 安装raspberry os 并修改成固定ip
linux·服务器·网络·debian·树莓派·raspberry