Git Product home page Git Product logo

ffay / lanproxy Goto Github PK

View Code? Open in Web Editor NEW
5.6K 211.0 1.5K 9.35 MB

lanproxy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面、http代理、https代理、socks5代理...)。技术交流QQ群 736294209

Home Page: https://nat.nioee.com

Java 72.87% Batchfile 0.33% Shell 2.62% HTML 19.27% JavaScript 4.92%
lanproxy nat firewall reverse-proxy tunnel ngrok frp proxy java

lanproxy's Issues

Caused by: javax.net.ssl.SSLHandshakeException: null cert chain

Caused by: javax.net.ssl.SSLHandshakeException: null cert chain
at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1478)
at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535)
at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:813)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1098)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:970)
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:904)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:387)

一直在循环报这个错。

流量稍大应用失败

net::ERR_CONTENT_LENGTH_MISMATCH

小流量的简单引用代理都没问题,但针对流量需求稍微大点的应用常常代理失败。尤其是单个大js文件(数据图表),基本无法下载。可否调整测试下加强大流量应用代理的支持。

idea启动时404

我把源码clone起来,运行server的测试用例,日志server.log显示正常,但请求ip+port报404.运行mvn package -Dmaven.test.skip 生成的包运行又可以。请问我该如何本地调试。麻烦作者有空的时候可以回答。

es集群内网穿透问题 是lanproxy的问题还是集群本身的问题

在阿里云上的服务器部署了应用 需要访问局域网环境的es集群

192.168.0.21 9300
192.168.0.22 9300
192.168.0.25 9300

于是使用了lanproxy来进行内网穿透 以便通过外网地址来访问局域网的es服务

120.27.XXX.XXX 9300 <--> 192.168.0.21 9300
120.27.XXX.XXX 9200 <--> 192.168.0.21 9200

并且可以成功的通过如下的地址来查看集群状态

http://120.27.XXX.XXX:9200/_cluster/health?pretty=

但是实际启动工程时发现 仍是连不上 通过抓包工具发现怎么连得还是局域网地址啊

dingtalk20171108204708

但是我代码中明明使用的是外网地址啊

.addServerAddress("120.27.XXX.XXX", 9300)

内网转发出来的ccproxy 808端口连接一秒后提示连接已重置

公网IP:例如1.2.3.4
公网端口:绑定8001
内网端口:绑定127.0.0.1:808(内网运行lanproxy客户端和ccproxy)

在第三台电脑IE代理设置成1.2.3.4:8001,访问内网中10.0.0.1的OA,出现OA画面,1~3秒后中断,刷新无效,再无法访问任何网页,除非去掉IE代理。

怎么都启动不起来 !!我保证我没有犯低级错误!

Exception in thread "main" java.lang.ExceptionInInitializerError
at org.fengfei.lanproxy.server.ProxyServerContainer.(ProxyServerContainer.java:61)
at org.fengfei.lanproxy.server.ProxyServerContainer.main(ProxyServerContainer.java:174)
Caused by: java.lang.IllegalArgumentException: 一个公网端口只能映射一个后端信息,不能重复: 81
at org.fengfei.lanproxy.server.config.ProxyConfig.update(ProxyConfig.java:202)
at org.fengfei.lanproxy.server.config.ProxyConfig.(ProxyConfig.java:102)
at org.fengfei.lanproxy.server.config.ProxyConfig.(ProxyConfig.java:73)
... 2 more

我第一次启动 压根没有配置任何东西 我81端口也好好的 所有要用的端口 都没有冲突 没有占有!

启动/停止脚本在ubuntu14.04中运行异常

当主机没有运行lanproxy的情况下,执行startup.sh
PIDS=`ps -ef | grep java | grep "$CONF_DIR" |awk '{print $2}'
这行在ubuntu14.04执行后依然能得到一个PID,这个是grep命令的PID,但脚本的逻辑却认为客户端已经在运行了,从而报错退出

建议改成 PIDS=ps -f -C java | grep "$CONF_DIR" |awk '{print $2}'

Ubuntu上无法正常启动server端和client端

无法通过release和文档成功运行landproxy。PID为空。

操作系统

Ubuntu 16.04.1 (腾讯云) 64位

JDK版本

openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

lanproxy版本

v0.1-beta-1

如何复现

wget https://github.com/ffay/lanproxy/archive/0.1-beta-1.tar.gz
tar -zxvf 0.1-beta-1.tar.gz
cd lanproxy-0.1-beta-1/proxy-server/src/main/resources/
sudo chmod 755 startup.sh
./startup.sh

出现错误

cannot access '/home/ubuntu/project/lanproxy-0.1-beta-1/proxy-server/src/main/lib': No such file or directory

然后通过

mkdir -p /home/ubuntu/project/lanproxy-0.1-beta-1/proxy-server/src/main/lib
./startup.sh

然后控制台的输出如下

Starting the proxy server ...started
PID:

查看日志

Error: Could not find or load main class org.fengfei.lanproxy.server.ProxyServerContainer

这是启动服务端的问题。然后我在自己的PC机(Ubuntu17)上启动客户端,也是这个现象,只有命令行输出,然后PID也是空。

想问一下,是我哪里操作出了问题吗?我主要不是写java的,所以想帮忙改进也无能为力。


不过有一点建议:可以再改改readme,把过程改具体一些,还有比如哪个文件位于哪个路径最好也贴一个链接,否则只有去一层层的找。

请问为什么访问不了呢?

[WARN ] 2017-08-14 20:12:25 :channel closed, clear real server channels
[INFO ] 2017-08-14 20:12:27 :connect proxy server success, [id: 0xc0a03e37, L:/192.168.199.147:51742 - R:/39.108.68.3:4900]
[WARN ] 2017-08-14 20:12:27 :channel closed, clear real server channels
[INFO ] 2017-08-14 20:12:29 :connect proxy server success, [id: 0x14828b2f, L:/192.168.199.147:51749 - R:/39.108.68.3:4900]
[WARN ] 2017-08-14 20:12:29 :channel closed, clear real server channels
[INFO ] 2017-08-14 20:12:31 :connect proxy server success, [id: 0x583c40d4, L:/192.168.199.147:51754 - R:/39.108.68.3:4900]
[WARN ] 2017-08-14 20:12:31 :channel closed, clear real server channels
[INFO ] 2017-08-14 20:12:33 :connect proxy server success, [id: 0x37981ed9, L:/192.168.199.147:51761 - R:/39.108.68.3:4900]
[WARN ] 2017-08-14 20:12:33 :channel closed, clear real server channels

这是控制台打印的信息,我已经在一台阿里云服务器上部署了service端,并且配置了
[{"clientKey":"client_01","proxyMappings":[{"inetPort":8088,"lan":"127.0.0.1:8080"}]}]
然后在本地运行client端,但是访问39.108.68.3:8088却访问不到本地的一个项目。
不知道是不是我哪个地方弄得不对?
client配置
client.key=client
ssl.enable=false
ssl.jksPath=test.jks
ssl.keyStorePassword=123456

server.host=39.108.68.3

#default ssl port is 4993
server.port=4900

service配置
server.bind=0.0.0.0
server.port=4900

server.ssl.enable=false
server.ssl.bind=0.0.0.0
server.ssl.port=4993
server.ssl.jksPath=test.jks
server.ssl.keyStorePassword=123456
server.ssl.keyManagerPassword=123456
server.ssl.needsClientAuth=false

config.server.bind=0.0.0.0
config.server.port=8090
config.admin.username=
config.admin.password=

go版客户不支持的设备

系统是这个样子的

root@LEDE:/tmp# cat /proc/cpuinfo
system type             : Qualcomm Atheros QCA956X ver 1 rev 0
machine                 : TP-LINK TL-WDR6500 v2
processor               : 0
cpu model               : MIPS 74Kc V5.0
BogoMIPS                : 373.55
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp dsp2
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available

试了下面两个客户端都不行

root@LEDE:/tmp# ./client_linux_mipsle
./client_linux_mipsle: line 1: syntax error: unexpected word (expecting ")")
root@LEDE:/tmp# ./client_linux_mips
Illegal instruction

看了 build-release.sh 不知道这么编译能支持这个系统

使用外网地址 大于20分钟的定时任务从第二次开始就Operation timed out

局域网内有一个MongoDB服务

192.168.0.12:40000

使用lanproxy映射到外网 项目中改用外网地址后 21分钟的定时任务第一次执行成功 后面就执行失败了

# 第一次
[extractScheduler-1] driver.connection - Opened connection [connectionId{localValue:2, serverValue:1462175}] to 120.27.XXX.XXX:40000

# 第二次
[extractScheduler-1] driver.connection - Got socket exception on connection [connectionId{localValue:2, serverValue:1462175}] to 120.27.XXX.XXX:40000. All connections to 120.27.XXX.XXX:40000 will be closed.
[extractScheduler-1] driver.connection - Closed connection [connectionId{localValue:2, serverValue:1462175}] to 120.27.XXX.XXX:40000 because there was a socket exception raised by this connection.    

# 之后都是类似的错误

错误日志

Caused by: java.net.SocketException: Operation timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)

wireshark抓包

image

如果使用内网地址的话 就没有这个问题
如果使用外网地址 但定时任务间隔时间小于20分钟的话 也没问题

所以我现在怀疑是lanproxy的问题 能不能帮忙确认一下?

CentOS 客户端启动不正常?

运行startup.sh后显示:Starting the proxy client ... started PID:
PID后面是空。
运行stop.sh后显示:PID: ERROR:The proxy client does not started.
PID后面也是空。

请问正常启动后,显示信息是什么?我启动不正常可能是哪里出了问题?

API

没有详细的PAI介绍吗?

mysql 端口映射遇到问题了

ssh web都正常 MySQL 连接不知道为什么就变localhost了
mysql -u test -D aaa -h xxxxx.com -P 3381 -p
ERROR 1045 (28000): Access denied for user 'hztest'@'localhost' (using password: YES)

Windows下使用client_windows_amd64.exe连接服务器异常。

client_windows_amd64.exe 用的是最新的,lanproxy-client-windows-amd64-20171128.tar。

start heartbeat: &{1513150033 1513150033 false 0xc0420d6010 [] }
start listen cmd message: {0xc04204a3c0 0xc04208e300 6666 0xc0420d2120}
connSuccess, clientkey: 1b5c3992055c4bb88a6a2ac52b98b31c
connError: &{1513150036 1513150036 false 0xc0420d6010 [] 0xc0420c4240}

不能登陆

你好,我按照Readme配置好了server端,也成功的启动了, 但是登陆成功之后,直接又闪退回登陆界面.想问下是怎么回事. 具体操作我录了一个gif图片 如下.
http://linuxsogood.org/wp-content/uploads/2017/09/proxy.gif

github试了好几次都传不上来图片,所以放我个人博客了.
下面是日志.

2017-09-11 03:17:54,741 INFO [org.fengfei.lanproxy.server.config.web.routes.RouteConfig] - <handle request for api /login> 2017-09-11 03:27:05,003 INFO [org.fengfei.lanproxy.server.config.web.routes.RouteConfig] - <handle request for api /login> 2017-09-11 03:27:10,141 INFO [org.fengfei.lanproxy.server.config.web.routes.RouteConfig] - <handle request for api /login> 2017-09-11 03:29:23,103 INFO [org.fengfei.lanproxy.server.config.web.routes.RouteConfig] - <handle request for api /login> 2017-09-11 03:29:27,944 INFO [org.fengfei.lanproxy.server.config.web.routes.RouteConfig] - <handle request for api /login>

是否考虑重新设计一下Web管理的接口

简单的看了一下现在的Web管理接口部分,基本上是通过JSON来进行数据交换的,是否考虑设计一套符合JSONAPI规范的接口呢?

lanproxy与我以前想的功能需求高度一致,非常感谢 @ffay

非常有兴趣参与lanproxy的后期开发。

几个小建议

刚好在找类似的产品,相对于其他开源产品来说,确实这个还是比较好用的,软件轻量,部署操作简单、有Web管理界面好用,还未进行大数据量的测试,不知道有没有什么问题。不过先想到几个小建议:
1、基于TCP长连接,能否实时查看客户端是否在线。
2、支持多管理员账户登录。
3、考虑到登录的安全性,可以支持验证码登录。
4、客户端运行可以打印一下基本信息。
5、现在是用JSON来存储数据,是否可以修改为小型嵌入式数据比如SQLite,以后比较好扩展功能。

  • 当然作者的项目是开源的,我们可以根据自己的需求来修改完善。

端口取消的问题

在后台取消某个外网端口与内网IP:port映射关系时,对应的外网端口不会释放

server.log io.netty.handler.codec.TooLongFrameException: Adjusted frame length exceeds 2097152

I cannot visit my client with server host:Internet port, server.log has error.

ERROR [org.fengfei.lanproxy.server.handlers.ServerChannelHandler] - <exception caught>
io.netty.handler.codec.TooLongFrameException: Adjusted frame length exceeds 2097152: 369296132 - discarded
	at io.netty.handler.codec.LengthFieldBasedFrameDecoder.fail(LengthFieldBasedFrameDecoder.java:499)
	at io.netty.handler.codec.LengthFieldBasedFrameDecoder.failIfNecessary(LengthFieldBasedFrameDecoder.java:477)
	at io.netty.handler.codec.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:403)
	at org.fengfei.lanproxy.protocol.ProxyMessageDecoder.decode(ProxyMessageDecoder.java:44)
	at org.fengfei.lanproxy.protocol.ProxyMessageDecoder.decode(ProxyMessageDecoder.java:7)
	at io.netty.handler.codec.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:343)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:387)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:245)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:962)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371)
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
	at java.lang.Thread.run(Thread.java:748)
2017-09-14 19:19:50,150 WARN [io.netty.channel.DefaultChannelPipeline] - <An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.>
io.netty.handler.codec.TooLongFrameException: Adjusted frame length exceeds 2097152: 369296132 - discarded
	at io.netty.handler.codec.LengthFieldBasedFrameDecoder.fail(LengthFieldBasedFrameDecoder.java:499)
	at io.netty.handler.codec.LengthFieldBasedFrameDecoder.failIfNecessary(LengthFieldBasedFrameDecoder.java:477)
	at io.netty.handler.codec.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:403)
	at org.fengfei.lanproxy.protocol.ProxyMessageDecoder.decode(ProxyMessageDecoder.java:44)
	at org.fengfei.lanproxy.protocol.ProxyMessageDecoder.decode(ProxyMessageDecoder.java:7)
	at io.netty.handler.codec.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:343)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:387)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:245)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:962)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371)
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
	at java.lang.Thread.run(Thread.java:748)

建议调整空闲检测时间

@ffay
我使用lanproxy 代理我的ss, 因为ss-server在美国,网络访问波动比较大。导致后续请求的block很严重。 相反我在使用国内服务器进行中转,速度很快。

untitled

我分析
有时候 lanproxy-client 会认为的链接断掉,然后关闭远程channel,然而我 ss-local 这边还以为链接存在,导致请求被hold住,后续的链接被block.

后面我把 idle 调整到60s,和 ss 的改成一样。后续查看日志,发现链接被block的情况少了很多。

lanproxy-client 请求消息转发这块,对于数据的转发,我理解是一个耗时操作,应该使用 queue 来处理,这样避免 block 后续的相同 channel 的数据收发。

配置信息 都存在哪???我想问问

Exception in thread "main" java.lang.ExceptionInInitializerError
at org.fengfei.lanproxy.server.ProxyServerContainer.(ProxyServerContainer.java:61)
at org.fengfei.lanproxy.server.ProxyServerContainer.main(ProxyServerContainer.java:174)
Caused by: java.lang.IllegalArgumentException: 一个公网端口只能映射一个后端信息,不能重复: 81‘

总是出现这个问题 我用了一台新linux服务器 81没有占有 一打开 就是这个问题 不能重复81
我81 端口没有用过呀 不知道怎么解决 启动不了!!!!!! 配置信息 都存在哪???我想问问

支持断线重连吗

有时候内网由于一些原因,网络可能会中断,客户端网络中断几分钟后,有没有断线重连的功能

lanproxy 连接一段时间 会自动断开

编译的是最新的版本
客户端日志正常
服务端日志
2018-01-19 10:23:55,880 ERROR [org.fengfei.lanproxy.server.handlers.ServerChannelHandler] -
java.io.IOException: Connection timed out
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:192)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:357)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:898)
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:748)
2018-01-19 10:23:55,880 WARN [io.netty.channel.DefaultChannelPipeline] - <An exceptionCaught() event was fired, and it reac
hed at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.>
java.io.IOException: Connection timed out
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:192)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:357)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:898)
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:748)

服务端配置
server.bind=0.0.0.0
server.port=4900

server.ssl.enable=true
server.ssl.bind=0.0.0.0
server.ssl.port=4993
server.ssl.jksPath=test.jks
server.ssl.keyStorePassword=123456
server.ssl.keyManagerPassword=123456
server.ssl.needsClientAuth=false

config.server.bind=0.0.0.0
config.server.port=8090
config.admin.username=admin
config.admin.password=admin

客户端配备
client.key=8c0b7f77be7b47158ebd43f189daed05
ssl.enable=false
ssl.jksPath=test.jks
ssl.keyStorePassword=123456

server.host=*****

#default ssl port is 4993 与服务端通讯端口
server.port=4900

使用maven package打包后无法执行脚本错误:./startup.sh: bad interpreter: /bin/bash^M: no such file or directory

./startup.sh: bad interpreter: /bin/bash^M: no such file or directory

打包后在distribution的proxy-server中,执行startup.sh脚本报错。脚本内容为:

#!/bin/bash
cd `dirname $0`
cd ..
DEPLOY_DIR=`pwd`
CONF_DIR=$DEPLOY_DIR/conf
LOGS_DIR=$DEPLOY_DIR/logs

APP_MAINCLASS=org.fengfei.lanproxy.server.ProxyServerContainer

PIDS=`ps -ef | grep java | grep "$CONF_DIR" |awk '{print $2}'`
if [ -n "$PIDS" ]; then
    echo "ERROR: already started!"
    echo "PID: $PIDS"
    exit 1
fi

if [ ! -d $LOGS_DIR ]; then
    mkdir $LOGS_DIR
fi
STDOUT_FILE=$LOGS_DIR/stdout.log
CLOG_FILE=$LOGS_DIR/gc.log

LIB_DIR=$DEPLOY_DIR/lib
LIB_JARS=`ls $LIB_DIR|grep .jar|awk '{print "'$LIB_DIR'/"$0}'| xargs | sed "s/ /:/g"`

JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
JAVA_DEBUG_OPTS=""
if [ "$1" = "debug" ]; then
    JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
fi
JAVA_JMX_OPTS=""
if [ "$1" = "jmx" ]; then
    JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
fi
JAVA_MEM_OPTS=""
#JAVA_MEM_OPTS="-server -Xms5120M -Xmx5120M -Xmn1024M -Xnoclassgc -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:$CLOG_FILE"
echo -e "Starting the proxy server ...\c"
nohup java -Dapp.home=$DEPLOY_DIR $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -classpath $CONF_DIR:$LIB_JARS $APP_MAINCLASS >$STDOUT_FILE 2>&1 &
sleep 1
echo "started"
PIDS=`ps -ef | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`
echo "PID: $PIDS"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.