Linux端口转发-rinted工具部署、配置、使用
2024-10-13 04:15:36
编者按:
近期由于公司开启定制项目规划,对于每个项目都会开启一个测试服务器,实施方会用到测试服务器的ssh端口、mysql端口、web端口,为了节省资源(公网IP、服务器资源复用),基于rinted工具搭建一个端口转发的服务器。下面的流程图将更好的表达本文即将实现的功能!
1、源码安装rinted:
下载和解压源码包:
cd /usr/local/src && wget https://boutell.com/rinetd/http/rinetd.tar.gz && tar xf rinetd.tar.gz && cd rinetd
修改编译配置:
sed -i 's/65536/65535/g' rinetd.c# 修改端口范围,否则会报错
编译安装:
mkdir -p /usr/man/man8 && make && make install
编辑配置文件:/etc/rinetd.conf
#自定义mysql端口:3001/3100
#自定义ssh端口:2001/2500
#自定义web端口:801/899
#端口转发:[Source Address] [Source Port] [Destination Address] [Destination Port]
0.0.0.0 8080 10.124.162.114 8080
0.0.0.0 443 10.124.162.114 8080
0.0.0.0 3001 10.124.162.114 33080
#端口映射: bindaddress bindport connectaddress connectport
logfile /var/log/rinetd.log
启动与关闭:
#启动
/usr/sbin/rinetd -c /etc/rinetd.conf
#关闭
pkill rinetd
启动脚本:/home/shell/rinetd 使用方法:sh /home/shell/rinetd start|stop|restart|reload
#!/bin/bash
#
# Startup script for Rinetd - this script starts and stops the rinetd daemon
#
# chkconfig: - 85 15
# description: Rinetd is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
# processname: rinetd
# config: /etc/rinetd.conf
# pidfile: /var/lock/subsys/rinetd
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
rinetd="/usr/sbin/rinetd"
prog=$(basename $rinetd)
RINETD_CONF_FILE="/etc/rinetd.conf"
#[ -f /etc/sysconfig/rinetd ] && . /etc/sysconfig/rinetd
lockfile=/var/lock/subsys/rinetd
start() {
[ -x $rinetd ] || exit 5
[ -f $RINETD_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $rinetd -c $RINETD_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
#killproc $rinetd -HUP
daemon pkill $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
sleep 1
start
}
reload() {
echo -n $"Reloading $prog: "
killproc $rinetd -HUP
RETVAL=$?
echo
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
status)
rh_status
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload}"
exit 2
esac
最新文章
- [CareerCup] 2.5 Add Two Numbers 两个数字相加
- MySQL 配置文件中忘配置default-character-set引发的乱码问题
- iOS socket TCP UDP
- typeof instanceof 之间的区别总结
- poj - 3683 - Priest John's Busiest Day(2-SAT)
- 10款无需编程的App DIY开发工具
- HW6.30
- DevExpress控件-- Gridcontrol合并表头
- hdu 1078 FatMouse and Cheese 记忆化dp
- iOS完美版的UIScrollView无缝循环:你值得一看
- Python报错:SyntaxError: Non-ASCII character '\xe5' in file 1.py on line 6, but no encoding declared...
- 使用mybatis assembly插件打成tar包,在linux系统中运行服务
- oracle rowid 研究
- loadrunner11 测试restful
- 虹软人脸识别在 linux中so文件加载不到的问题
- 【opencv】imread 赋值 深拷贝浅拷贝
- 禁止别人用QQ号搜索到你,同时告诉你如何破解
- PhoneGap 获得设备属性Demo
- 斯坦福CS229机器学习课程笔记 part2:分类和逻辑回归 Classificatiion and logistic regression
- c++ string.c_str()小结