① docker 一个应用容器映射出的8900端口,访问:http://192.168.1.245:8900,现想直接通过http://192.168.1.245访问,只需要执行下面命令即可。
iptables -t nat -A PREROUTING -p tcp --dport 8900 -j REDIRECT --to-port 80 # 删除规则使用 ‘-D’保存修改
service iptables save # service iptables restart② 通过访问公网IP的63306端口来实现到内网MYSQL服务器的3306端口的访问
公网服务器:eth0:公网IP eth1:内网IP - 192.168.1.1 mysql服务器:eth1:内网IP - 192.168.1.2
在公网服务器上,配置脚本:
iptables -t nat -A PREROUTING -p tcp --dport 63306 -j DNAT --to-destination 192.168.1.2:3306 iptables -t nat -A POSTROUTING -d 192.168.1.2 -p tcp --dport 3306 -j SNAT --to 192.168.1.1允许服务器的IP转发功能:echo 1 > /proc/sys/net/ipv4/ip_forward 使用方法:mysql -h 公网IP -p 63306 -uroot -p
③ 内网服务器无外网环境管理,现通过外网到内网的端口进行转发。如通过访问外网8822端口转发到内网机器22端口。
iptables -t nat -A PREROUTING -d "对外公网ip" -p tcp --dport "对外端口" -j DNAT --to "内部实际提供服务的ip":"实际提供服务的端口" iptables -t nat -A POSTROUTING -d "内部实际提供服务的ip"-p tcp --dport "实际提供服务的端口" -j SNAT --to-source "运行iptables机器的内网ip"参考链接:https://www.cnblogs.com/qiangyuzhou/p/10657494.html