[HOWTO] 端口映射程序

通常的咱们想经过端口来绑定一个小程序, 当触发端口的时候就执行程序, 同时输出执行的message, 或者说是远程执行某个程序。html

有人说ssh远程执行不久OK啦, 可是在权限要求很严格的机器上, ssh就失去了的做用. 固然也能够规避这个问题. 今天不说ssh, 而是想说说tcpserver nginx

  • tcpserver小程序

tcpserver就是对一个proj启动一个tcp server. 监听端口响应程序,回写程序输出, 同是它还有不少其余的配置,好比执行权限---经过制定cdb文件来控制权限, 实现Net Wrapper功能。bash

cat /home/t/reload_nginx
#!/bin/bash

/home/t/nginx/sbin/nginx -s reload
sleep(5)
ps -ef | grep nginxa
192.168.101.10# tcpserver 0.0.0.0 10001 /home/q/reload_nginx

上述的一个script叫作reload_nginx, 它的功能是实现nginx配置文件的reload功能, 同是想看看reload以后nginx的进程状态。而后在所在的机器上把这个script绑定在了10001端口上。app

这样我就能够经过telnet来执行远端的程序啦ssh

$ telnet 192.168.101.10 10001
  • tcprules tcp

tcprules就是来生成cdb文件的。记住cdb是二进制文件, tcpserver能够识别。 spa

具体的语法:rest

tcprules /home/q/rules.cdb tmp < input_file

rules.cdb是要生成的cdb文件code

tmp文件是临时文件, tcprules在执行的时候, 先把生成的数据放在temp中, 等tcpserver空闲了在copy到cdb文件中去。

input_file是咱们制定的能够看得懂的规则, 好比:

cat /home/t/input_file
192.168.101.1:allow
:deny

这样是说明, 只是容许192.168.101.1能够访问,其余都是拒绝的。 

执行规则: 他是从上到下一条一条的判断, 符合就执行、退出, 不然判断下一条。

  • 带IP限制的tcpserver

#tcpserver -x /home/t/rules.cdb 0.0.0.0 10001 /home/t/reload_nginx
  • tcpserver daemon启动

    方法一: initd方式, 把tcpserver的程序包装一下,实现(start, stop, status, restart等)功能, 而后放在/etc/init.d/tcp_serverd下面。

    方法二: daemontools管理

  • Download

    http://cr.yp.to/ucspi-tcp.html

相关文章
相关标签/搜索