自从上次 frp 因版本更新导致图床短时间无法访问后,杜老师一直在寻找其它内网穿透工具。机缘巧合遇到一个,看介绍很不错,但杜老师暂未进行性能测试,感兴趣的小伙伴可以试一下!
运行示例
首页可显示 License 统计、端口映射统计、今日流量、流量汇总、流量监控:
系统管理页面中包含用户管理端口池管理、用户管理、端口分组管理、调度管理:
端口池管理页面用于统一管理服务器内网穿透端口,方便统一设置安全组提高安全性:
License 是客户端连接服务端唯一合法凭证。一个 License 同时只可以被一个客户端使用,一个 License 可维护多条端口映射:
服务端 IP 端口对应客户端 IP 端口的四元组映射,是内网穿透的基本单元:
代理示意
当用户通过公网IP加端口访问时,服务端会通过指定端口回源到客户端随机端口,客户端会通过随机端口,反代本地服务端口,实现内网穿透:
服务部署
1.9.0 版本服务端配置格式有所调整。从之前版本升级的,需要注意。在服务器上创建目录/root/neutrino-proxy/config
,以下是最新的服务端 app.yml
配置格式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| server: port: ${WEB_PORT:8888}
neutrino: proxy: logger: level: ${LOG_LEVEL:info} tunnel: boss-thread-count: 2 work-thread-count: 10 port: ${OPEN_PORT:9000} ssl-port: ${SSL_PORT:9002} key-store-password: ${STORE_PASS:123456} key-manager-password: ${MGR_PASS:123456} jks-path: ${JKS_PATH:classpath:/test.jks} transfer-log-enable: ${TUNNEL_LOG:false} server: tcp: boss-thread-count: 5 work-thread-count: 20 http-proxy-port: ${HTTP_PROXY_PORT:80} https-proxy-port: ${HTTPS_PROXY_PORT:443} domain-name: ${DOMAIN_NAME:} key-store-password: ${HTTPS_STORE_PASS:} jks-path: ${HTTPS_JKS_PATH:} transfer-log-enable: ${SERVER_LOG:false} udp: boss-thread-count: 5 work-thread-count: 20 transfer-log-enable: ${SERVER_LOG:false} data: db: type: ${DB_TYPE:sqlite} url: ${DB_URL:jdbc:sqlite:data.db} username: ${DB_USER:} password: ${DB_PASSWORD:}
|
当前最新版本为 1.9.0,下面的脚本中,可使用 registry.cn-hangzhou.aliyuncs.com/asgc/neutrino-proxy:1.9.0
指定版本安装,推荐使用 latest
直接安装最新版:
1 2 3 4
| docker run -it -p 9000-9200:9000-9200/tcp -p 8888:8888 \ -v /root/neutrino-proxy/config:/root/neutrino-proxy/config \ -d --restart=always --name neutrino \ registry.cn-hangzhou.aliyuncs.com/asgc/neutrino-proxy:latest
|
客户部署
1.9.0 版本客户端配置格式有所调整。从之前版本升级的,需要注意。点击 这里 下载客户端软件包,并且在同级目录创建配置文件 app.yml
,以下是最新客户端配置格式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| neutrino: proxy: logger: level: ${LOG_LEVEL:info} tunnel: thread-count: 50 key-store-password: ${STORE_PASS:123456} jks-path: ${JKS_PATH:classpath:/test.jks} server-ip: ${SERVER_IP:localhost} server-port: ${SERVER_PORT:9002} ssl-enable: ${SSL_ENABLE:true} license-key: ${LICENSE_KEY:} client-id: ${CLIENT_ID:} transfer-log-enable: ${CLIENT_LOG:false} reconnection: interval-seconds: 10 unlimited: false client: udp: boss-thread-count: 5 work-thread-count: 20 puppet-port-range: 10000-10500 transfer-log-enable: ${CLIENT_LOG:false}
|
首先确保本地已安装 Java8 运行环境,执行下面的命令启动客户端,查看服务端 License 管理,刷新页面,对应 License 在线状态为在线,表明客户端已正常连接:
1
| java -jar neutrino-proxy-client.jar config=app.yml
|
条评论