一个 C/C++语言的 ngrok 客户端

2015-03-14 14:09:12 +08:00
 dosgo

ngrok是一个内网映射神器,因为go语言写的,移植到openwrt挺麻烦的,所以用C语言重写了一个。源码 https://github.com/dosgo/ngrok-c

8832 次点击
所在节点    分享创造
20 条回复
Bluek404
2015-03-14 15:17:11 +08:00
移植到openwrt麻烦?
qinix
2015-03-14 18:26:39 +08:00
看到楼主的 git commit message,瞬间感觉好简洁
dosgo
2015-03-15 01:38:14 +08:00
@Bluek404 你移过嘛?反正我加入了gccgo从新编译了openwrt固件跟交叉工具链,还得改成gclibc,折腾了一天,终于编译好了,发现那体积好大啊,又不想重新刷固件,就用C重写了。。
dosgo
2015-03-15 01:39:05 +08:00
@qinix 好吧,新手,多多包涵。。
Had
2015-03-15 09:12:19 +08:00
感谢楼主,但是有个问题要咨询下:
是基于哪一版的ngrok?支持指定port么?
dosgo
2015-03-15 12:44:41 +08:00
@Had 支持指定端口-SER[Shost:ngrokd.ngrok.com,Sport:443,Atoken:xxx] -AddTun[Type:tcp,Lhost:127.0.0.1,Lport:22,Rport:55555] Rport就是远程端口号,如果端口占用了会报错, 如果指定端口authtoken不能为空,这个是ngrok的服务器要求的,如果你用tunnel.mobi则没有这个限制。
Metre
2015-05-27 17:30:24 +08:00
希望楼主帮忙编译一个mt7620 openwrt 路由器上能用的
dosgo
2015-06-09 18:40:03 +08:00
@Metre 有SDK包吗?如果没有我也无能为力。。
Metre
2015-06-22 16:51:18 +08:00
la0wei
2015-06-29 10:58:58 +08:00
楼主的 7260n openwrt有编译好的吗?
Metre
2015-07-03 22:44:01 +08:00
@dosgo 感谢楼主 我自己编译了个 X86的 和 mt7620a的
http://www.right.com.cn/forum/thread-168857-1-1.html
Metre
2015-07-03 22:44:48 +08:00
@la0wei
我编译了个mt7620a的 不知道 mt7620n的能不能用 你可以试试看
http://www.right.com.cn/forum/thread-168857-1-1.html
dosgo
2015-07-09 22:19:40 +08:00
@Metre 学会编译了啊?恭喜,主要是polarssl library麻烦些。。
Metre
2015-07-10 08:59:35 +08:00
@dosgo 惭愧 本身是程序员 就是比较忙 没时间搞 周末抽了点时间整了下…………
deben
2015-08-25 17:25:17 +08:00
@dosgo 您好,能否有时间出一个编译的过程说明呢?搞了半天没编出来。。。
deben
2015-08-26 09:37:52 +08:00
@Metre 请问你编译的是 openssl 还是 polarssl ?如果编译 polarssl 是有一个自己配置 polarssl 环境的步骤吗?
dosgo
2015-08-30 21:59:06 +08:00
@deben 看 makefile 文件就可以了啊。。有事联系邮箱。。很少上 v2ex
evanzing
2015-10-15 22:28:11 +08:00
@Metre 终于可以回复了,在恩山看不到您出现
请教一下好吗,谢谢

我把 ngrokc 放 package 目录,终端执行 make -f Makefile.openssl
结果如下:
make -f Makefile.openssl
g++ -fexceptions -DOPENSSL=1 -c -o sendmsg.o sendmsg.cpp
sendmsg.cpp: In function ‘ int loadargs(int, char**, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, TunnelInfo*, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, TunnelInfo*> > >*, char*, int*, char*)’:
sendmsg.cpp:368: 警告:不建议使用从字符串常量到‘ char*’的转换
sendmsg.cpp:369: 警告:不建议使用从字符串常量到‘ char*’的转换
sendmsg.cpp:373: 警告:不建议使用从字符串常量到‘ char*’的转换
sendmsg.cpp:399: 警告:不建议使用从字符串常量到‘ char*’的转换
sendmsg.cpp:400: 警告:不建议使用从字符串常量到‘ char*’的转换
sendmsg.cpp:402: 警告:不建议使用从字符串常量到‘ char*’的转换
sendmsg.cpp:407: 警告:不建议使用从字符串常量到‘ char*’的转换
sendmsg.cpp:411: 警告:不建议使用从字符串常量到‘ char*’的转换
sendmsg.cpp:412: 警告:不建议使用从字符串常量到‘ char*’的转换
cc -fexceptions -DOPENSSL=1 -c -o cJSON.o cJSON.c
g++ -fexceptions -DOPENSSL=1 -c -o nonblocking.o nonblocking.cpp
g++ -fexceptions -DOPENSSL=1 -c -o sslbio.o sslbio.cpp
g++ -fexceptions -DOPENSSL=1 -c -o main.o main.cpp
g++ -s sendmsg.o cJSON.o nonblocking.o sslbio.o main.o -o ngrokc -lpthread -lssl -lcrypto
dosgo
2020-06-27 23:47:49 +08:00
@evanzing 。。
evanzing
2020-06-29 16:03:58 +08:00
……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/176838

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX