Linux服務器利用防火牆iptables策略進行端口跳轉

兩臺不一樣服務器轉發vim


打開端口轉發的功能centos

首先開啓IP轉發功能,默認是關閉的。bash

  • 臨時修改:
    服務器

[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

修改事後就立刻生效,但若是系統重啓後則又恢復爲默認值0。tcp

  • 永久修改:ide

vi /etc/sysctl.confcentos7

# 找到下面的值並將0改爲1spa

net.ipv4.ip_forward = 1命令行

image.png

# sysctl -p(使之當即生效)rest

默認值0是禁止ip轉發,修改成1即開啓ip轉發功能。


配置端口轉發

假設用戶訪問115.29.112.119:8804時我想讓它轉發到42.99.16.84:8890

首先要在服務器上開放8804端口

  • 修改配置文件:vim /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8804 -j ACCEPT

  • 或者命令行執行並保存

[root@localhost sysconfig]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8804 -j ACCEPT
[root@localhost sysconfig]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  肯定  ]

image.png


端口轉發

  • 方法一:命令行執行

須要保存,否則只是即時生效,已重啓防火牆規則就會被清空

iptables -t nat -A PREROUTING -d 115.29.112.119 -p tcp --dport 8804 -j DNAT --to-destination 42.99.16.84:8890

iptables -t nat -A POSTROUTING -d 42.99.16.84 -p tcp --dport 8890 -j SNAT --to-source 115.29.112.119

不須要更改配置文件就保存的命令:service iptables save

image.png


  • 方法二:直接保存到配置文件

修改/etc/sysconfig/iptables配置文件,加入規則

-A PREROUTING -d 115.29.112.119 -p tcp --dport 8804 -j DNAT --to-destination 42.99.16.84:8890

-A POSTROUTING -d 42.99.16.84 -p tcp --dport 8890 -j SNAT --to-source 115.29.112.119

  • 配置完重啓防火牆:

1.systemctl restart iptables(centos7);2.service iptables restart(centos7之前版本)

  • 查看配置好的策略

iptables -t nat --list --line-numbers

image.png


本機端口轉發


若是隻須要在本機間不一樣的端口轉發就比較容易了,好比 訪問 http://ip:8888 我想返回 http://ip:6666 的內容,配置以下:

[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 8888 -j REDIRECT --to-ports 6666
[root@localhost ~]# service iptables save
[root@localhost ~]# service iptables restart
相關文章
相關標籤/搜索