Linux通过端口转发来访问内网服务(端口转发访问阿里云Redis数据库等服务)
# 安装rinetd
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 (修改端口范围) mkdir /usr/man&&make&&make install
说明:IP的端口是双字节,也就是256*256-1, 256*256对计算机来说就是0,因为此最大的端口号是65535而不是65536,当然端口数值是0-65535,数量是65536个,但0一般不用,故而我们通常都说65535,而且端口号最大也是65535,所以我们都说端口是65535。
# 编辑配置文件 rinetd.conf
格式:源IP (Source Address) 源端口(Source Port) 跳转的IP(Destination Address) 跳转的端口(Destination Port)
vi /etc/rinetd.conf 0.0.0.0 6379 r-test.redis.rds.aliyuncs.com 6379 0.0.0.0 3306 rm-test.mysql.rds.aliyuncs.com 3306 logfile /var/log/rinetd.log
注意,最好不要用常用的端口,比如0.0.0.0 3306 改为 0.0.0.0 3366,否则被恶意扫描的话,rinetd.log日志文件会暴涨,没一会就暴涨到几十G的容量了。 如果发现磁盘空间满了,到 /var/log 目录,执行 ls -lh ,清理对应日志文件即可:cat /dev/null > rinetd.log
#启动 rinetd
rinetd
或
/usr/sbin/rinetd -c /etc/rinetd.conf
# 重启rinetd
pkill rinetd
rinetd
# 将 rinetd 设置为自启动
echo rinetd >>/etc/rc.local
或
vi /etc/rc.d/rc.local /usr/sbin/rinetd -c /etc/rinetd.conf
# 确认服务是否正常运行
ps ax | grep rinetd | grep -v grep netstat -anp | grep 6379
注意:ftp端口不允许转发。
1. rinetd.conf中绑定的本机端口必须没有被其它程序占用
2. 运行rinetd的系统防火墙应该打开绑定的本机端口
参考文章:
公网连接云数据库Redis版 (https://help.aliyun.com/document_detail/43850.html)
Linux 通过端口转发来访问内网服务 (http://www.sohu.com/a/136289576_472899)
版权声明:本文采用署名-非商业性使用-相同方式共享(CC BY-NC-SA 3.0 CN)国际许可协议进行许可,转载请注明作者及出处。 |