久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

Linux端口映射轉發(fā)的方法

2019-05-16 14:32:18 4193

當我們在對接第三方的時候,免不了會遇到白名單限制問題,導致我們本地開發(fā)環(huán)境受限,不能調用接口。難以完成整個業(yè)務流程。

分析如下場景:


比如第三方有臺機器 IP 為 1.1.1.1  端口8080

正式環(huán)境為1.1.1.1:8080/pro/api

測試環(huán)境為1.1.1.1:8080/test/api

但是第三方的機器不允許任何IP都可以調用,他們只允許你方一臺機器加入白名單

比如你線上的一臺機器IP是2.2.2.2已經(jīng)加入白名單,這沒問題。

但是你要做開發(fā) 要調用他們測試環(huán)境的API,卻發(fā)現(xiàn)調用不了,而且你總不能在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轉發(fā)

這個會比跳板服務簡單多了。只要2.2.2.2 開啟nginx


listen    8080;

location /test/api/{

  proxy_pass 1.1.1.1:8080;

}

端口映射

無論是跳板服務還是nginx轉發(fā) 我們要做的事情就更多了。所以我們要想到另一種思路。就是2.2.2.2這臺機器能不能幫我轉發(fā),只是作為一個中間者。就是我請求了2.2.2.2:8080 實際上請求到了是1.1.1.1:8080。即為端口映射。上面兩種方案僅僅是用在http。那如果是其他協(xié)議呢 比如說sftp(ssh) ftp。也僅僅只有此方案能勝任。


vi /etc/sysctl.conf開啟允許端口轉發(fā)。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 轉發(fā)請求

iptables -t nat -A POSTROUTING -p tcp -s 1.1.1.1 --sport 8080 -j SNAT --to-source 2.2.2.2:8080 轉發(fā)接收

2.2.2.2 8080 轉發(fā)到1.1.1.1:8080 (其他行情百度,也可以實現(xiàn)本地機器端口轉發(fā))


service iptables save 保存設置

service iptables restart 重啟防火墻


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: