discuz技巧2

Linux 下使用 rinetd 来实现端口转发

传统方法是用iptables转发,但是这个方法混杂模式会影响服务器上其他web应用,不好使。

 echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3389 -j DNAT --to 123.123.123.123:443
iptables -t nat -A POSTROUTING -j MASQUERADE


下面利用新方法,软件包rinetd,先安装rpm包的方法,共4步:

第一步:
#  vim /etc/yum.repos.d/nux-misc.repo
####################################################
[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el7/x86_64/
enabled=0
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
#######################################################

第二部:
yum  -y install  rinetd  --disablerepo="*"  --enablerepo=nux-misc
# wget  http://li.nux.ro/download/nux/misc/el7/x86_64//rinetd-0.62-9.el7.nux.x86_64.rpm
# rpm  -ivh  rinetd-0.62-9.el7.nux.x86_64.rpm

第三步:
# rpm -ql  rinetd
# cat  /etc/rc.d/init.d/rinetd
# cat /etc/rinetd.conf
# /usr/sbin/rinetd  --help
#  /usr/sbin/rinetd  -v
vi  /etc/rinetd.conf (A机器的3389 到 B机器的443)
0.0.0.0 3389 123.123.123.123 443

第四步:
 systemctl  start  rinetd

下面这个方法过时了,下载文件不对。暂时保留。
安装 rinetd
root权限执行:
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar -xvf rinetd.tar.gz
cd rinetd
sed -i ‘s/65536/65535/g’ rinetd.c //修改rinetd.c,将查询到的65536修改为65535
mkdir /usr/man/
make && make install
安装在 /usr/sbin 目录下
创建配置文件
nano /etc/rinetd.conf
填入配置信息,格式为:
bindaddress bindport connectaddress connectport
绑定的地址 绑定的端口 转发的地址 转发的端口
在每一单独的行中指定每个要转发的端口。
源地址和目的地址都可以是主机名或 IP 地址,IP 地址为0.0.0.0 则将rinetd 绑定到任何可用的本地IP地址上
示例:
跳板 VPS 的 IP 为1.1.1.1, rinetd已经安装在跳板 VPS 上。服务器的 IP 为2.2.2.2。
0.0.0.0 555 2.2.2.2 3389
可实现 访问跳板 VPS(1.1.1.1)的555端口就等于访问服务器(2.2.2.2)的3389端口。
程序启动,停止,查询,自启动
创建完配置文件后,别忘了启动程序才能生效。
启动命令:/usr/sbin/rinetd
停止命令:killall rinetd
查看是否启动:netstat -tanulp|grep rinetd
开机启动:
在 /etc/rc.local 文件中,添加 /usr/sbin/rinetd 启动命令即可。