大家好,又见面了,我是你们的朋友全栈君。
介绍
起因:为了提高系统的安全性,一般情况下,线上的服务都是通过反向代理来接收连接请求的,那么线上的服务是不需要通外网的。但是如果要应用在不通外网的情况下访问第三方接口的去获取一些数据,那么就需要借助rinetd工具。
rinetd工具可以做端口转发,也就是说我可以将获取数据的接口的url做重定向到跳板机上,再由跳板机去获取数据返回给应用程序
编译安装:
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz -P /usr/local
tar -zxvf rinetd.tar.gz
make && make install
编辑配置
vi /etc/rinetd.conf
命令格式是
bindaddress bindport connectaddress connectport
绑定的地址 绑定的端口 连接的地址 连接的端口
或
[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口
如果想设置允许那个地址或者地址段访问 需要加上allow参数
例如只允许10网段访问,访问ip地址为ip 端口为80以及81 82的端口转发到***.com的80 8001 80端口:
allow 10.*.*.*
ip 80 ***.com 80
ip 81 ***.com 8001
ip 82 ***.com 80
之后启动程序
pkill rinetd ##关闭进程
rinetd -c /etc/rinetd.conf ##启动转发
把这条命令加到/etc/rc.local里面就可以开机自动运行
这里还需要注意有时候会遇到端口转发之后访问对应的ip:port会出现403错误,那是因为接口的服务端做了vhost,这样你访问ip的话报文头部就是ip地址而不是url的地址 所以会出现拒绝访问。这个时候我们可以手动更改解析,例如www.baidu.com 我可以指定到rinetd所在的主机上,这样就不会出现403错误了。
参考链接 :
Rinetd工具的使用 : https://blog.csdn.net/qq_22543991/article/details/81780322
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/124569.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...