Tag Archives: iptables

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

By | 2017/03/08

1. 介绍 传统的端口转发工具portproxy 、rinetd 等, 这些应用工具都通过接收并转发 tcp 数据报文实现转发端口的目的, 但是都存在或多或少的缺陷, 比如不能 tcp/udp 同时支持, 难以修改数据报文的一些路由规则等. 庆幸的是我们可以通过 linux 的 iptables 的数据包过滤规则在 kernel 层面实现端口的转发. 在 iptables 的层面, 端口转发也可以称为端口映射, 是通过NAT(地址转发)的方式来修改数据包目的地址或端口, 再将报文转发到最终的主机(通常在没有公网地址的私有网络中). 通过这种方式用户既可以访问到远端的私有网络的机器(比如运行着 http 服务的主机). 2. 访问结构 我们以如下结构来讲解如何在 public A 主机中进行端口转发, 使得用户可以访问到后端的 private B 主机的 memcached 端口: note: 所有主机均为 Centos 系统, 1.1.1.1 为任意的公网地址. +——+ +———-+ +———–+ | user | ——-> |… Read More »

重启 iptables 影响 nf_conntrack 参数说明

By | 2015/11/03

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

nat转发出网

By | 2014/07/08

通过转发可以实现内网主机访问公网, 转发的主机需要和内网主机互通,需要可以访问网络. 转发机操作: 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

iptables自定义链的使用

By | 2013/10/11

iptables中,target/jump决定了符合条件的包到何处去,语法是–jump target或-j target。 通过-N参数创建自定义链: iptables -N BLOCK 之后将BLOCK链作为jump的目标: iptables -I INPUT 6 -p tcp –dport 80 -i p3p1 -j BLOCK