Giter Club home page Giter Club logo

ffay / lanproxy Goto Github PK

View Code? Open in Web Editor NEW
5.5K 5.5K 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%
firewall frp java lanproxy nat ngrok proxy reverse-proxy tunnel

lanproxy's People

Contributors

ffay avatar massinger avatar tianyl1984 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lanproxy's Issues

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)

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)

一直在循环报这个错。

使用外网地址 大于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的问题 能不能帮忙确认一下?

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)

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 不知道这么编译能支持这个系统

使用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"

流量稍大应用失败

net::ERR_CONTENT_LENGTH_MISMATCH

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

不能登陆

你好,我按照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管理界面好用,还未进行大数据量的测试,不知道有没有什么问题。不过先想到几个小建议:
1、基于TCP长连接,能否实时查看客户端是否在线。
2、支持多管理员账户登录。
3、考虑到登录的安全性,可以支持验证码登录。
4、客户端运行可以打印一下基本信息。
5、现在是用JSON来存储数据,是否可以修改为小型嵌入式数据比如SQLite,以后比较好扩展功能。

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

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}

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

端口取消的问题

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

启动/停止脚本在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}'

请问为什么访问不了呢?

[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=

建议调整空闲检测时间

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

untitled

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

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

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

CentOS 客户端启动不正常?

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

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

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

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

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

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

idea启动时404

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

支持断线重连吗

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

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

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 端口没有用过呀 不知道怎么解决 启动不了!!!!!! 配置信息 都存在哪???我想问问

内网转发出来的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代理。

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,把过程改具体一些,还有比如哪个文件位于哪个路径最好也贴一个链接,否则只有去一层层的找。

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

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端口也好好的 所有要用的端口 都没有冲突 没有占有!

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)

API

没有详细的PAI介绍吗?

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.