通过holer将端口映射到公网访问详细实现教程

本文涉及的产品
.cn 域名,1个 12个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: Holer是一个将局域网中的应用映射到公网访问的端口映射软件,支持转发基于TCP协议的报文。 Holer支持以下两种使用方式,根据实际需求,任选其中一种方式即可: 使用公开的holer映射或者开通holer服务,通过holer客户端软件经holer服务器实现公网访问。

Holer

1. Holer简介

Holer exposes local servers behind NATs and firewalls to the public internet over secure tunnels.

Support forwarding message based on TCP protocol.

Holer是一个将局域网中的应用映射到公网访问的端口映射软件,支持转发基于TCP协议的报文。

示意图

2. Holer使用

Holer支持以下两种使用方式,根据实际需求,任选其中一种方式即可:

方式一:

使用公开的holer映射或者开通holer服务,通过holer客户端软件holer服务器实现公网访问,详见2.1节

方式二:

使用holer服务端软件搭建holer服务,通过holer客户端软件自己服务器实现公网访问,详见2.2节

Holer客户端软件有Java版本详见2.1.1节和Go版本详见2.1.2节,根据偏好,任选其中一种版本使用即可。

如果下载holer软件遇到问题,更多的下载地址详见3.2节

2.1 使用公开的holer映射或者开通holer服务

方式一: 使用公开的holer映射或者开通holer服务,通过holer客户端软件经holer服务器实现公网访问。

公开的holer映射详情如下:

访问密钥 访问域名 公网地址 本地地址 使用场景
HOLER_CLIENT-2F8D8B78B3C2A0AE holer65530.wdom.net holer.org:65530 127.0.0.1:8080 WEB
HOLER_CLIENT-3C07CDFD1BF99BF2 holer65531.wdom.net holer.org:65531 127.0.0.1:8088 WEB
HOLER_CLIENT-2A623FCB6E2A7D1D holer65532.wdom.net holer.org:65532 127.0.0.1:80 WEB
HOLER_CLIENT-AF3E6391525F70E4 N/A holer.org:65533 127.0.0.1:3389 远程桌面
HOLER_CLIENT-822404317F9D8ADD N/A holer.org:65534 127.0.0.1:22 SSH
HOLER_CLIENT-27DD1389DF1D4DBC N/A holer.org:65535 127.0.0.1:3306 数据库

这里以映射本地Tomcat默认端口8080为例,选择表中的第一条映射进行配置;如果Web服务端的端口是80或者8088,请选择相匹配的端口映射,其他TCP端口映射步骤类似,更多的使用示例请参考官方文档

2.1.1 使用Java版本的holer客户端实现步骤

Java版本的holer客户端软件(源代码软件包)是由Java语言实现,支持跨平台。

2.1.1.1 安装 Java

安装Java 1.7或者更高版本,执行命令 java -version 检查Java是否可用。

2.1.1.2 安装Web服务端

以Tomcat为例,安装并启动Tomcat,默认安装的端口是8080;

在浏览器里输入如下URL来检查Tomcat服务是否可以正常访问:

http://127.0.0.1:8080

2.1.1.3 下载并配置holer客户端

下载并解压软件包holer-client.zip
修改配置文件:

holer-client/conf/holer.conf

设置HOLER_ACCESS_KEY如下:

HOLER_ACCESS_KEY=HOLER_CLIENT-2F8D8B78B3C2A0AE

2.1.1.4 启动holer

进入目录:

cd holer-client/bin

Windows系统:

执行命令 startup.bat 或双击 startup.bat

如果需要停止进程,执行命令shutdown.bat或双击shutdown.bat

Linux系统:

执行命令 bash startup.sh

如果需要停止进程,执行命令 bash shutdown.sh

然后就可以通过如下URL来访问Web应用:

http://holer65530.wdom.net 或者 http://holer.org:65530

2.1.1.5 设置开机启动

进入目录:

cd holer-client/bin

Windows系统:

双击 setup.vbs

注意事项:

请确保当前用户对如下目录具有读取、写入、执行、修改等权限:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

Linux系统:

执行命令 bash setup.sh

注意事项:

CentOS 7, RedHat 7, Ubuntu 18 及更高版本,建议执行命令bash setup-service.sh设置开机启动;

根据提示输入holer access keyholer server host

输入示例:

------------------------------------------
Enter holer access key: HOLER_CLIENT-2F8D8B78B3C2A0AE
------------------------------------------
Enter holer server host: holer.org
------------------------------------------

2.1.2 使用Go版本的holer客户端实现步骤

Go版本的holer客户端软件(源代码软件包)是由GO语言实现,支持多种操作系统和硬件架构。

2.1.2.1 安装Web服务端

以Tomcat为例,安装并启动Tomcat,默认安装的端口是8080;

在浏览器里输入如下URL来检查Tomcat服务是否可以正常访问:

http://127.0.0.1:8080

2.1.2.2 下载holer客户端

根据实际的系统平台,选择匹配的软件包下载并解压holer-xxx.tar.gz

2.1.2.3 启动holer

这里以Windows & Linux x86-64bit 为例,启动holer执行如下命令:

Windows系统:

holer-windows-amd64.exe -k HOLER_CLIENT-2F8D8B78B3C2A0AE -s holer.org

也可以执行命令 startup.bat 或者双击 startup.bat

如果需要停止进程,执行命令shutdown.bat或双击shutdown.bat

Linux系统:

nohup ./holer-linux-amd64 -k HOLER_CLIENT-2F8D8B78B3C2A0AE -s holer.org &

也可以执行命令 bash startup.sh

如果需要停止进程,执行命令 bash shutdown.sh

首次启动根据提示输入holer access keyholer server host

输入示例:

------------------------------------------
Enter holer access key: HOLER_CLIENT-2F8D8B78B3C2A0AE
------------------------------------------
Enter holer server host: holer.org
------------------------------------------

2.1.2.4 设置开机启动

进入目录:

cd holer-client/bin

Windows系统:

双击 setup.vbs

注意事项:

请确保当前用户对如下目录具有读取、写入、执行、修改等权限:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

Linux系统:

执行命令 bash setup.sh

注意事项:

CentOS 7, RedHat 7, Ubuntu 18 及更高版本,建议执行命令bash setup-service.sh设置开机启动;

根据提示输入holer access keyholer server host

输入示例:

------------------------------------------
Enter holer access key: HOLER_CLIENT-2F8D8B78B3C2A0AE
------------------------------------------
Enter holer server host: holer.org
------------------------------------------

2.2 使用holer服务端软件搭建holer服务

方式二: 使用holer服务端软件搭建holer服务,通过holer客户端软件经自己服务器实现公网访问。

用户也可以下载 holer-server.zip 搭建自己的holer服务。

如果下载holer软件遇到问题,更多的下载地址详见3.2节

Holer Server

2.2.1 搭建holer服务端准备工作

(1) 准备一台可以经公网IP访问的Linux系统或者Windows系统主机;

(2) 安装Java 1.8及以上版本,执行命令 java -version 检查Java是否可用;

(3) 安装并启动Nginx, 建议安装其稳定版本;

(4) 安装MariaDB并设置root用户密码

(5) 设置安全规则,允许访问holer服务端端口6060、600以及端口映射规则所涉及的端口;

(6) 建议申请域名并且完成域名备案,并设置域名泛解析(*.域名)直接解析主域名(@.域名),如果没有域名可以直接使用IP和端口访问。

2.2.2 配置并启动holer服务端

解压软件包,打开配置文件 holer-server/resources/application.yaml

2.2.2.1 修改数据库用户名和密码

spring:
  datasource:
    username: root
    password: 123456

2.2.2.2 修改域名和Nginx主目录

holer
  domain:
    name: your-domain.com
  nginx:
    #home: /usr/local/nginx
    home: C:/nginx-1.14.2

将示例中的域名your-domain.com修改成自己备案过的域名,如果没有域名,请忽略该配置项。

Linux系统默认安装Nginx路径 /usr/local/nginx

Windows系统中可以先将Nginx复制到某个目录下,然后在配置文件中指定其主目录。

注意事项:

请确保Nginx主目录下存在配置文件:conf/nginx.conf

Nginx目录结构示例:

Nginx主目录
├── conf
│   ├── nginx.conf
.   .
.   .

如果需要用到HTTPS功能,Window系统版本的Nginx默认支持HTTPS功能,Linux系统需要下载Nginx源码,配置和编译以及安装执行如下命令:

./configure --with-http_ssl_module
make;make install

2.2.2.3 启动holer服务端

Linux系统执行启动命令如下:

cd holer-server
chmod 755 holer
bash holer start

如果需要停止进程,执行命令bash holer stop

Windows系统执行启动命令如下:

cd holer-server
startup.bat

或者双击 startup.bat

如果需要停止进程,执行命令shutdown.bat或双击shutdown.bat

2.2.2.4 设置开机启动

进入目录:

cd holer-server/bin

Windows系统:

双击 setup.vbs

注意事项:

请确保当前用户对如下目录具有读取、写入、执行、修改等权限:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

Linux系统:

执行命令 bash setup.sh

注意事项:

CentOS 7, RedHat 7, Ubuntu 18 及更高版本,建议执行命令bash setup-service.sh设置开机启动。

2.2.3 创建端口映射

2.2.3.1 登录holer管理系统

如果配置文件application.yaml中设置了域名,并且指定了Nginx主目录,则在浏览器输入URL http://holer.your-domain.com
如果没有设置域名访问,则通过IP和端口登录系统 http://IP地址:600

Holer Login

登录系统需要输入默认的管理员账号,默认用户名: admin 密码: admin123

用户也可以在文件holer-server/resources/conf/holer-data.sql中修改默认的用户名和密码,然后重启holer服务端使其生效。

2.2.3.2 创建客户端和端口映射

在用户列表页面中创建一个holer客户端

http://holer.your-domain.com/view/holer-client.html

Holer Client

在端口映射页面中为该holer客户端创建端口映射

http://holer.your-domain.com/view/holer-port.html

Holer Port

在数据统计页面中查看报表信息

http://holer.your-domain.com/view/holer-report.html

Holer Report

2.2.3.3 配置holer客户端使其与holer服务端实现端口映射功能

在用户列表页面中选中一条客户端记录,在页面右上角点击详情按钮,弹出的详情框下点击复制按钮;

Holer Copy

然后将详情信息粘贴到记事本里,请严格按照详情信息里的使用说明进行操作,这样可以顺利完成holer客户端配置,从而实现基于自己holer服务端的端口映射功能。

3. 支持与帮助

3.1 Holer使用示例

获得更多的holer使用示例,请参考官方文档

3.2 Holer下载

3.2.1 Holer客户端软件

软件地址一

软件地址二

3.2.2 Holer服务端软件

软件地址一

软件地址二

3.3 问题帮助

使用中遇到问题可以查看holer日志信息来排查问题的具体原因。

3.3.1 Holer客户端日志

3.3.1.1 Java版本的holer客户端

查看日志文件:
holer-client/logs/holer-client.log

3.3.1.2 Go版本的holer客户端

Linux系统

查看可执行程序所在目录下的日志文件logs/holer-client.log或者nohup.out文件。

Windows系统

查看可执行程序所在目录下的日志文件logs/holer-client.log

3.3.2 Holer服务端日志

查看日志文件:
holer-server/logs/holer-server.log

3.4 申请holer服务

用户可以使用上述公开的holer映射详见2.1节,也可以申请holer服务

Holer服务详情,请访问Wisdom

Wisdom

目录
相关文章
|
2月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
|
3月前
|
弹性计算 应用服务中间件 Linux
阿里云服务器开放端口完整图文教程
笔者近期开发完成的服务端程序部署在阿里云的ECS云服务器上面,一些应用程序配置文件需要设置监听的端口(如Tomcat的8080、443端口等),虽然通过CentOs 7系统的的「防火墙」开放了对应的端口号,任然无法访问端口号对应的应用程序,后面了解到原来还需要设置云服务器的「安全组规则」,开放相应的端口权限,服务端的接口才能真正开放。
632 1
阿里云服务器开放端口完整图文教程
|
2月前
|
JSON 安全 网络协议
【Azure Policy】添加策略用于审计Azure 网络安全组(NSG)规则 -- 只能特定的IP地址允许3389/22端口访问
为了确保Azure虚拟机资源的安全管理,只有指定IP地址才能通过RDP/SSH远程访问。解决方案包括使用Azure Policy服务扫描所有网络安全组(NSG),检查入站规则中的3389和22端口,并验证源地址是否在允许的IP列表中。不符合条件的NSG规则将被标记为非合规。通过编写特定的Policy Rule并定义允许的IP地址参数,实现集中管控和合规性检查。
|
2月前
|
安全 网络安全
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
|
2月前
|
监控 网络协议 Linux
在Linux中,如何使用 tcpdump 嗅探 80 端口的访问看看谁最⾼?
在Linux中,如何使用 tcpdump 嗅探 80 端口的访问看看谁最⾼?
|
2月前
|
开发框架 前端开发 .NET
【Azure微服务 Service Fabric 】Service Fabric中应用开启外部访问端口及微服务之间通过反向代理端口访问问题
【Azure微服务 Service Fabric 】Service Fabric中应用开启外部访问端口及微服务之间通过反向代理端口访问问题
|
2月前
|
网络协议 Linux
在Linux中,如何使用iptables 写⼀条规则?把来源IP为192.168.1.101访问本机80端口的包直接拒绝.
在Linux中,如何使用iptables 写⼀条规则?把来源IP为192.168.1.101访问本机80端口的包直接拒绝.
|
2月前
|
Prometheus 监控 Kubernetes
将service类型由"ClusterIP"改为"NodePort"无法使用nodeip+端口访问服务解决方法.
将service类型由"ClusterIP"改为"NodePort"无法使用nodeip+端口访问服务解决方法.
|
3月前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之怎么对外网提供可访问域名端口
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
2月前
|
Kubernetes 应用服务中间件 Docker
在K8S中,Pod网络访问与Docker容器端口映射有何不同?
在K8S中,Pod网络访问与Docker容器端口映射有何不同?