[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

相關文章
相關標籤/搜索