11月13, 2018

Linux配置端口转发

一、开启IP转发

首先开启IP转发功能,默认是关闭的。

临时修改:

echo 1 >/proc/sys/net/ipv4/ip_forward

修改过后就马上生效,但如果系统重启后则又恢复为默认值0。

永久修改:

vim /etc/sysctl.conf

# 找到下面的值并将0改成1

net.ipv4.ip_forward = 1

使之立即生效

sysctl –p

默认值0是禁止ip转发,修改为1即开启ip转发功能。


二、配置端口转发

假设用户访问1.1.1.1:80时我想让它转发到2.2.2.2:8080:

iptables -t nat -A PREROUTING  -p tcp -d 1.1.1.1 --dport 80 -j DNAT --to-destination 2.2.2.2:8080
iptables -t nat -A POSTROUTING -p tcp -s 2.2.2.2 --sport 8080 -j SNAT --to-source 1.1.1.1

将当前规则保存到 /etc/sysconfig/iptables

service iptables save

或者,你也可以直接修改/etc/sysconfig/iptables文件:

-A PREROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 2.2.2.2:8080
-A POSTROUTING -s 2.2.2.2/32 -p tcp -m tcp --sport 8080 -j SNAT --to-source 1.1.1.1

注:如果你用的是一个没有开启的端口,比如小与1024的端口,假如说是800,而不是8080,那么要记着打开这些端口。

最后不要忘了开放80端口

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

配置完成后,记得重启防火墙:

service iptables restart


三、本机端口转发

如果只需要在本机间不同的端口转发就比较容易了,比如 访问 http://ip:80 我想返回 http://ip:8080 的内容,配置如下:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
service iptables save
service iptables restart


本文链接:https://lxyit.com/article/show/166.html

-- EOF --