iptables 一般系统自带,如果没有安装方法如下:
ubuntu/debian 系统: apt-get update -y && apt-get install iptables -y
centos 系统: yum update -y && yum install iptables -y

前期准备:

开启内核ip转发

vi /etc/sysctl.conf

将下面两项注释去掉,保存。

#net.ipv4.ip_forward=1
#net.ipv6.conf.all.forwarding=1

使改动生效

sysctl -p

本机端口转发

例1:
把发往本机80端口的数据重定向到8080端口

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

例2:
配置访问1.1.1.1端口80转发到目标地址192.168.1.9端口80

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

远程端口转发

把访问1.1.1.1:12345的数据包转发到2.2.2.2:12345

iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp --dport 12345 -j DNAT --to-destination 2.2.2.2:12345

Netflix:可以把1.1.1.1看成不可以看netflix的机(A机),2.2.2.2为可以看netflix的机(B机)。把上面的IP改为你实际的IP后在A机上运行上面命令,再把本地特殊姿势里面的IP和端口改为A机的即可。(此方法不适用于特殊姿势V: ws+tls搭配)

常用命令

# 保存 iptables
service iptables save
# 重启 iptables
service iptables restart

# 显示已有规则
iptables -t nat -L -n --line-number

# 删除链(chain)INPUT 中第二行的规则
iptables -D INPUT 2  

# 清空规则
iptables -F
iptables -X
iptables -Z
iptables -t nat -F