欢迎来到代码驿站!

Linux

当前位置:首页 > 服务器 > Linux

Linux端口映射转发的方法

时间:2020-12-14 14:41:20|栏目:Linux|点击:

前言

当我们在对接第三方的时候,免不了会遇到白名单限制问题,导致我们本地开发环境受限,不能调用接口。难以完成整个业务流程。

分析如下场景:

比如第三方有台机器 IP 为 1.1.1.1  端口8080

正式环境为1.1.1.1:8080/pro/api

测试环境为1.1.1.1:8080/test/api

但是第三方的机器不允许任何IP都可以调用,他们只允许你方一台机器加入白名单

比如你线上的一台机器IP是2.2.2.2已经加入白名单,这没问题。

但是你要做开发 要调用他们测试环境的API,却发现调用不了,而且你总不能在2.2.2.2上面写代码调试吧。

解决方案

跳板服务

如果既然不能直接调用1.1.1.1 那么完全让2.2.2.2写个服务,作为跳板,也就是把我们的请求给2.2.2.2,然后2.2.2.2再原封不动传给1.1.1.1

Nginx转发

这个会比跳板服务简单多了。只要2.2.2.2 开启nginx

listen    8080;
location /test/api/{
  proxy_pass 1.1.1.1:8080;
}

端口映射

无论是跳板服务还是nginx转发 我们要做的事情就更多了。所以我们要想到另一种思路。就是2.2.2.2这台机器能不能帮我转发,只是作为一个中间者。就是我请求了2.2.2.2:8080 实际上请求到了是1.1.1.1:8080。即为端口映射。上面两种方案仅仅是用在http。那如果是其他协议呢 比如说sftp(ssh) ftp。也仅仅只有此方案能胜任。

  • vi /etc/sysctl.conf开启允许端口转发。net.ipv4.ip_forward =1(CentOS7则是在 /usr/lib/sysctl.d/50-default.conf额外添加)
  • iptables -t nat -A PREROUTING -p tcp -d 2.2.2.2 --dport 8080 -j DNAT --to-destination 1.1.1.1:8080 转发请求
  • iptables -t nat -A POSTROUTING -p tcp -s 1.1.1.1 --sport 8080 -j SNAT --to-source 2.2.2.2:8080 转发接收

2.2.2.2 8080 转发到1.1.1.1:8080 (其他行情百度,也可以实现本地机器端口转发)

  • service iptables save 保存设置
  • service iptables restart 重启防火墙

总结

反正就是,多了解Linux,有些时候可以利用Linux知识来解决业务问题。

上一篇:Linux内核参数调整方法

栏    目:Linux

下一篇:Linux云服务器安装JDK和Tomcat的详细步骤(推荐)

本文标题:Linux端口映射转发的方法

本文地址:http://www.codeinn.net/misctech/32625.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有