两台不一样服务器转发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命令行
# 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:[ 肯定 ]
端口转发
方法一:命令行执行
须要保存,否则只是即时生效,已重启防火墙规则就会被清空
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
方法二:直接保存到配置文件
修改/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
本机端口转发
若是只须要在本机间不一样的端口转发就比较容易了,好比 访问 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