如何使用 iptables 来进行端口转发

1. 介绍 传统的端口转发工具portproxy 、rinetd 等, 这些应用工具都通过接收并转发 tcp 数据报文实现转发端口的目的, 但是都存在或多或少的缺陷, 比如不能 tcp/udp 同时支持, 难以修改数据报文的一些路由规则等. 庆幸的是我们可以通过 linux 的 iptables 的数据包过滤规则在 kernel 层面实现端口的转发. 在 iptables 的层面, 端口转发也可以称为端口映射, 是通过NAT(地址转发)的方式来修改数据包目的地址或端口, 再将报文转发到最终的主机(通常在没有公网地址的私有网络中). 通过这种方式用户既可以访问到远端的私有网络的机器(比如运行着 http 服务的主机). 2.…

Continue reading

重启 iptables 影响 nf_conntrack 参数说明

重启 iptables 影响 nf_conntrack 参数说明 今天在新机房的机器上重启 iptables 后发现 net.nf_conntrack_max(最大跟踪的连接数) 会恢复成默认的 65536(RAM > 4G时, 该值默认为 65536), 在stop iptables 后, 通过命令 sysctl -a |grep nf_conntrack 查看已经不存在nf_conntrack 模块相关的参数信息. 从这点来看参数恢复成默认值本质上是因为在重启 iptables 的过程中重新加载了 nf_conntrack 模块;

Continue reading

nat转发出网

通过转发可以实现内网主机访问公网, 转发的主机需要和内网主机互通,需要可以访问网络. 转发机操作: 1.转发机上加一条nat转发 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT –to-source public_ip eth1 为转发机公网的网卡, public_ip 为公网 ip 地址; 2.开启转发 sysctl -w net.ipv4.ip_forward=1

Continue reading