首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    rinetd小记

    官网:http://www.boutell.com/rinetd/ 下载地址:http://www.boutell.com/rinetd/http/rinetd.tar.gz 编译安装: 对于Windows,包rinetd.tar.gz已包含了编译好的可执行程序文件rinetd.exe,也可以使用VC(如VC6.0)去重新编译。 对于Linux,只需要将包rinetd.tar.gz解压,然后执行make命令即可,它的Makefile文件其实十二分地简单(也就2个源码文件): CFLAGS=-DLINUX -g rinetd: rinetd.o match.o         gcc rinetd.o match.o -o rinetd install: rinetd         install -m 700 rinetd /usr/sbin         install -m 644 rinetd.8 /usr/man/man8 执行make install即安装好,从Makefile即可看出,安装到了目录/usr/sbin。 启动rinetd,会报需要/etc/rinetd.conf文件,使用vi编辑一个即可,文件格式为: “监听服务IP地址 监听服务端口号 目标服务IP地址 目标服务端口号” 假设有三台机器: A 客户端机器 B rinet中转机器(IP为127.0.0.1,服务端口号设置为6789) C 目标服务器(IP为192.168.0.1,服务端口号为22) 现在A要访问C机器,但A和C之间网络并不通,但是A和B网络通,且B和C网络通(在实际中,通常B是带外网和内网两个IP的机器)。这个时候将/etc/rinetd.conf配置成: 127.0.0.1 6789 192.168.0.1 22 这样A访问127.0.0.1:6789时,实际访问的是192.168.0.1:22,B在这里做了中转代理。 为了体验rinetd的中转功能,A、B、C三台机器实际上可以为同一台机器,比如可以拿sshd等来做目标服务,可以观察到A就好象直接和C连接一样。 相关的工具: iptables、ssh、nginx、apache等。

    03

    cmake:动态链接库(so)中静态链接tcmalloc(gperftools2.4)暨静态链接libstdc++

    将tcmalloc作为动态库使用,非常方便,网上有很多资料介绍了。tcmalloc.a也可以以静态链接的方式加入应用程序中,大概因为使用太方便,网上关于这方面的介绍都是一笔带过,但是如果要在动态 库(so)中静态编译tcmalloc,却是有所不同的。 我的项目中有一个so动态库,需要在java中通过jni调用,因为涉及频繁的内存分配操作所以这个so希望用tcmalloc管理内存池以提高系统运行效率,如果使用以动态库方式使用tcmalloc。那么在应用服务器(tomcat)启动的时候,需要先设置LD_PRELOAD参数指向tcmalloc.so,然后执行startup.sh启动tomcat。这样以来,不仅是我的so库,整java程序在运行过程中的所有向操作系统申请释放内存的过程都交给了tcmalloc管理了,其实挺好的。使用这种方案,我的so库代码不需要在编译时链接tcmalloc,什么都不用改变,就能使用tcmalloc。 但是凡事有利就有弊,这个方案带的成本就是在系统安装、维护时稍显复杂:需要在服务器上安装tcmalloc和libunwind(应用系统运行在64位操作系统下),还可能需要修改tomcat启动脚本以加入LD_PRELOAD参数,对工程实施人员的要求比较高。

    01
    领券