hauntek / python-ngrok Goto Github PK
View Code? Open in Web Editor NEW基于Python 编写的高性能Ngrok客户端,有效解决内存泄漏
License: GNU General Public License v3.0
基于Python 编写的高性能Ngrok客户端,有效解决内存泄漏
License: GNU General Public License v3.0
竟然要看代码才知道怎么用
非常感谢
首先感谢作者的贡献。
我的程序集成了这个功能,将其放到一个线程中,停不下来。
如果放到一个子进程中,terminate 之后感觉也没有停下来,因为再开已子进程的话,会提示服务器端口已经在使用。
最后,希望线程里可以加上一个结束的信号。
无法把要代理的访问域名传过去
使用python-ngrok转发本地3389端口,使用远程桌面时, 提示无效的证书。是ngrok服务器问题,还是python-ngrok的问题呢?
rt
你好,使用Python客户端后服务端日志如标题,是什么情况呢,谢谢。
你好,用python-ngrok开tcp转发国外的ss,转发后能打开youtube,但是无法播放,不知道是不是bug。其他的网站没有问题,用的是python版的ss。
我用原版ngrok编译的10M可以运行太大了,想用个体积小一点的,路由器固件才64M,或者有什么关键词给我去Google一下,哈哈
谢谢这份开源,让万念俱灰的我重拾信心
[RT-AC1200HP /etc/storage/ngr]# ./test
[2018/10/02 16:14:29] [INFO] [client] python-ngrok v1.5
[2018/10/02 16:14:29] [DEBUG] [Conn:3] New connection to: [我的服务器ip地址]:4443
Traceback (most recent call last)
File "/etc/storage/ngr/python-ngrok-master/python-ngrok.py", line 344, in
thread.start()
File "/opt/lib/python2.7/threading.py", line 736, in start
thread.error: can't start new thread
在ddwrt上也出现过,当时用 ulimit -s 512 就可以跑了,
但是hiboy的老毛子不知道为什么还是不行,
想问下从python这边看有没有什么解决方法呢?
{ "server": { "host": "xxx.com", "port": 4443, "bufsize": 8192 }, "client": [ { "protocol": "tcp", "hostname": "", "subdomain": "", "rport": 50022, "lhost": "127.0.0.1", "lport": 22 }, { "protocol": "tcp", "hostname": "", "subdomain": "", "rport": 53066, "lhost": "127.0.0.1", "lport": 3066 }, { "protocol": "http", "hostname": "", "subdomain": "toco", "rport": 0, "lhost": "127.0.0.1", "lport": 80 } ] }
上面是树莓派的配置,在内网;服务器是一台阿里的云服务器。
之前用ngrok,运行正常,就是内存泄漏严重。
目前改用贵脚本以后,情况如下:
1、22端口正常,可以远程访问
2、3066端口,通过客户端访问53066,提示:
Lost connection to MYSQL server at ‘reading inital communication packet’, system error 0
3、http页面,访问toco.xxx.com正常,但是nginx的反向代理部分的域名失效,nginx的配置如下:
云服务器端
`
server {
listen 80;
server_name toco.xxx.com;
index index.html;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host:50080;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://127.0.0.1:50080;
}
}
server {
listen 80;
listen [::]:80;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ /index.html;
}
}
树莓派:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/pi/work/web;
index index.html index.htm index.nginx-debian.html;
server_name _;
location /v1/ {
proxy_pass http://127.0.0.1:3088/v1/;
}
location /v2/ {
proxy_pass http://127.0.0.1:5990/v2/;
}
location / {
try_files $uri $uri/ /index.html;
}
}
`
我的问题如下:
1、上述问题是否与非pc架构有关,看代码里面有arch、os的配置,不过对python不熟悉,代码没看懂。
2、我的服务器端是自己编译的,绑定了域名,是否与此有关。
3、目前脚本是否支持nginx的反向代理?
非常感谢作者的无私奉献
python python-ngrok.py ngrok.config
配置lport为8090,rport为8090,实际tomcat也使用8090。但是访问时只能通过 【域名:80】成功访问。是配置文件没有生效还是配置不正确?建议在配置文件增加注释,提升易用性。
感谢。
我自己编译架设了服务端,版本也是1.7的,内存泄漏严重,如何用这个做客户端??谢谢
def getloacladdr(Tunnels, Url): protocol = Url[0:Url.find(':')] hostname = Url[Url.find('//') + 2:] if str(hostname).find(":")>-1: hostname=hostname[0:hostname.find(':')]
如果绑定其他端口时, hostname值中的端口号去掉【受影响的代码 if tunnelinfo.get('hostname') == hostname 】
eg:aaaa.bbb.cn:55035
我想用websocket做一个功能,所以想在这个版本上增加websocket穿透,麻烦@hauntek 估测一下开发工作量,还有具体入手点。ngrokd/ngrok都想用你的python版本。网络编程了解不多,能编写非常入门的程序。
当服务器为一个ipv6地址时,会一直 update dns
是不是因为找不到ipv4地址所以才一直这样的啊
或者说,这个项目是不支持ipv6服务器吗
原版的windows客户端是可以支持ipv6的。。。
支持tcp协议吗???心跳包机制修复了吗?
昨天刚开机是消耗8M左右内存,跑了12小时变成 15M了。。。
用的是PyInstaller 编译成EXE运行的,运行时有日志不断输出
Exception in thread Thread-6:
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "python-ngrok.py", line 283, in HKClient
newsock = connectlocal(loacladdr['lhost'], loacladdr['lport'])
KeyError: 'lhost'
因为一些特殊的原因,不能使用多线程,如果大佬能提供单线程的方式就好辣~
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.