用途:有两台机器,需要用其中的一台机器做跳板,转发另一台机器一个特定的端口,机器列表如下
机器 |
IP |
iptables 机器 |
10.0.0.41 |
web 服务器 |
10.0.0.42:8000 |
开启内核转发功能
1
| sudo sysctl -w net.ipv4.ip_forward=1
|
或者
1
| echo "1" > /proc/sys/net/ipv4/ip_forward
|
1 2 3 4 5 6 7
| sudo vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sudo sysctl -p
|
本地端口转发到本地端口
1 2
| iptables -t nat -A PREROUTING -p tcp --dport 2222 -j REDIRECT --to-port 22
|
转发请求到目标主机
这是通过本主机做一个跳转,比如访问 A 的 80 端口转发到 B 的 8000 端口
1 2 3 4
| iptables -t nat -A PREROUTING -4 -p tcp -d 10.0.0.41 --dport 80 -j DNAT --to-destination 10.0.0.42:8000
iptables -t nat -A POSTROUTING -4 -p tcp -d 10.0.0.42 --dport 8000 -j MASQUERADE
|
其他操作
操作 |
命令 |
查看 nat 表 |
sudo iptables -t nat -L |
清空 nat 表配置 |
sudo iptables -t nat -F
|
查看 filter 表 |
sudo iptables -L |
清空 filter 表 |
sudo iptables -F |
iptables 持久化
请看 iptables进行持久化配置,重启不丢失