打开 IP 转发
打开 IP 转发(路由器设备是默认打开的)
echo 1 > /proc/sys/net/ipv4/ip_forward
从一台机器映射到另一台机器
映射关系 192.168.122.1:80 ---> 192.168.122.221:80
192.168.122.221 在 80 端口开启了 nginx 服务器
- 在 192.168.122.1 配置如下规则,然后在 192.168.122.1(本机) 的机器能访问 “192.168.122.1:80”
iptables -t nat -A OUTPUT -p tcp -d 192.168.122.1 --dport 80 -j DNAT --to 192.168.122.221:80
- 在 192.168.122.1 配置如下规则,然后在 92.168.122.29(其他设备) 能访问 ”192.168.122.1:80“
# 配置目的地址转换
iptables -t nat -A PREROUTING -p tcp -d 192.168.122.1 --dport 80 -j DNAT --to 192.168.122.221:80
# 配置源地址转换
iptables -t nat -A POSTROUTING -p tcp -d 192.168.122.221 --dport 80 -j SNAT --to 192.168.122.1
从本机一个端口到另一个端口
映射关系 192.168.122.221:8080 ---> 192.168.122.221:80
192.168.122.221 在 80 端口开启了 nginx 服务器
- 在 192.168.122.221 配置如下规则, 8080 映射到 80,这样本机能访问 “127.0.0.1:8080”
iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 8080 -j DNAT --to-port 127.0.0.1:80
- 在 192.168.122.221 配置如下规则, 8080 映射到 80,这样能访问 “192.168.122.221:8080”
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80
其他命令
# 查看 nat 链规则
iptables -t nat -L -n --line-number
# 删除规则 POSTROUTING 的规则 1
iptables -t nat -D POSTROUTING 1