Appearance
怎么使用npc客户端实现内网穿透(外网可以直接访问内网服务)
准备工作
- 获取对应操作系统的npc客户端 下载
- 获取对应的key以及对应的外部服务端口,请联系管理员 注意:所有人只能使用独立的key以及端口,不然会引起服务穿透错误
直接运行客户端
- mac版本命令:sh
./npc -server=nps.zktx-soft.com:19000 -vkey=[you key] -type=tcp
- windows命令:sh
./npc.exe -server=nps.zktx-soft.com:19000 -vkey=[you key] -type=tcp
使用服务
- 本地服务端口默认为8004,如需特殊调整,请联系管理员
- 本地如需要多个隧道(对应多个端口服务),请联系管理员
- 访问本地服务:http://nps.zktx-soft.com:[端口]/[应用上下文+服务路径]
本地服务配置
项目可以分成两种运行模式,一种是本地开发模式, 一种是线上docker运行模式,所以本地项目需要准备两个配置文件后缀分别是dev、docker
注意
同一服务在docker容器中与本地如果是同一service 服务名称,可能会出现调度上有时是docker、有时是dev的问题。目前没有找到更好的办法在线上环境与本地开发环境快速切换不同的服务名,只能依靠开发人员自己灵活控制相关服务的启停
- dev模式
- 在开发人员本地运行,通过阿里云服务远程可以在低代码平台中配置,可以访问本地的服务便于调试。
- 1、注册到远程nacos
- 2、声明本地服务host
- 3、声明本地服务端口
yaml
spring:
cloud:
nacos:
discovery:
# username: test
# password: test
enabled: true
service: projectTask # 本地注册到远程的服务名,不能跟其他服务重名
server-addr: http://nacosHost:nacosPort # 远程nacos 服务地址,便于注册发现
ip: nps.zktx-soft.com #本地服务地址,通过npc客户端后可以直接使用这个域名
port: 19*** # 端口依不同的用户需要与管理员联系以配置不同的外部端口
config:
max-retry: 20
timeout: 600000
metadata:
connect-timeout: 600000
response-timeout: 600000
- docker模式
- 注意要保证service 配置项中本服务名称与其他同一nacos的服务名称有区别
yaml
spring:
cloud:
nacos:
discovery:
enabled: true
service: ${FOA5_NACOS_SERVER:项目名称} # 注意这里一定要改成自己的项目名称,并保证与注册到nacos上其他服务名称区别,不能重复
server-addr: ${FOA5_NACOS_SERVER_ADDR:nacos} # docker容器中nacos服务名
metadata:
connect-timeout: 5000
response-timeout: ${FOA5_NACOS_response_timeout:60000}
config:
max-retry: 20
timeout: 15000
metadata:
connect-timeout: 600000
response-timeout: 600000
常见问题
- 客户端无法连接服务端
- 请检查配置文件中的所有端口是否在安全组,防火墙放行
- 请检查vkey是否对应
- 请检查版本是否对应,公司采用版本是v0.26.10,请核对客户端版本