我试着将一个特定的ip:port转发到linux机器上的一个特定的ip:port。 我用下面的命令使用iptables: iptables -t nat -A OUTPUT -p tcp -d 10.0.2.5 –dport 80 -j DNAT –to-destination 69.31.21.42:80 10.0.2.5是我select查看命令是否有效的任意地址,而69.31.21.42是公共网站的地址。 然后我证实了转发工作:我运行nmap -p 80 10.0.2.5并得到了一个积极的结果。 非常好迄今。 不过,我试着运行nmap -p 81 10.0.2.5 ,也得到了肯定的结果。 这不是我所期望的,因为我只希望端口80被转发。 我运行iptables -t nat -L ,注意到整个10.0.2.5主机的确映射到了69.31.21.42:80: Chain OUTPUT (policy ACCEPT) target prot opt source destination DNAT tcp — anywhere ip-10-0-2-5.ec2.internal tcp dpt:http to:69.31.21.42:80 我的iptables命令中缺less什么? 为什么不是–dport工作?
读过“两个不同IPS的两个网关/两个提供商” ,以及链接到的克林顿东文章,我成功地build立了一个多宿主的RHEL5系统。 不过,我希望有一个更好的方法来保存这个状态,而不是通过调用rc.local的ip rule和ip route命令。 是否有一个configuration文件,我可以编辑,将读取接口出现? 就像iptables-save和iptables-restore也许?
我在我的networking中的iptables中使用以下规则来使用透明代理 * iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp –dport 80 -j DNAT –to squid-box:3128 * iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j SNAT –to iptables-box * iptables -A FORWARD -s local-network -d squid-box -i eth0 -o eth0 -p tcp –dport 3128 -j ACCEPT 但我的鱿鱼日志,总是logging网关IP(172.16.0.1) […]
我对iptables的一般概念有一定的了解,并希望更详细地了解它。 我希望我的学习经验也是有用的。 情况: 我在我的路由器上运行dd-wrt。 尽pipe它的QoS技术,我仍然看到连接延迟猛增,每当有一个正在进行的http连接,例如一些大的下载。 在这种情况下,加载基本网页可能需要10秒或更多的时间; 有时连接完全被丢弃。 我已经尝试调整参数,放下分配的带宽和下载到我的极限,但似乎没有任何工作。 dd-wrtconfiguration为使用HTB作为QoSalgorithm; HFSC虽然作为一个选项提供,似乎导致路由器崩溃,并传言实际上不能在任何Linux系统上工作。 我想能够解决这个问题,并希望改善dd-wrt正在使用的设置,但我发现学习曲线有点压倒性。 对于初学者,我不确定HTB实际指定了什么:这是一组iptables命令,还是执行其中的一些命令来指定如何使用HTB? 我希望它根据协议的优先顺序,它已经应该,另外我想要它有优先级的连接,总的字节数高,说超过400KB。 也可以在dd-wrt下运行的实用程序的技巧,以获得更多的信息,在那里发生了什么感激。 我试图让iftop工作,但有运行curses的问题。 我倾向于用openwrtreplacedd-wrt; 对这一战略的评论也是受欢迎的。 我怀疑,我会build议在尝试之前让第二台路由器作为替代品。 可能值得注意的是我的总带宽相当有限(256Kbit / s)。
我试图testing一个花哨的stream量分析器应用程序,我已经在8890端口上运行。 我目前的计划是让任何HTTP请求进入Squid的端口3128,让它处理请求,然后就在它发回响应之前,使用iptables将响应数据包(离开端口3128)redirect到端口8890。 我已经研究了这一整夜,并尝试了很多iptables的命令,但我失去了一些东西,我的头发掉了。 我以为这样的事情会起作用: iptables -t nat -A OUTPUT -p tcp –sport 3128 -j REDIRECT –to-ports 8990 这个规则得到创build好,但它永远不会redirect任何东西。 这甚至有可能吗? 如果是这样,什么iptables咒语可以做到这一点? 如果不是的话,在给定多个远程浏览器客户端的情况下,有什么想法可以在单个主机上工作? 我不知道是否Apache与mod_proxy可能是这个设置的候选人,而不是Squid? 如果我只能告诉Squid(或Apache或任何其他HTTP代理)将响应发送到不同的本地端口,而不是返回到远程客户端,那么也可以工作(即使没有iptables)。 任何具有此function的HTTP代理的build议都会很棒。
我有这个小snapgear防火墙。 这是一个运行自定义Linux,SH4处理器@ 240 Mhz,64MB内存的一个小小的目的build立的内存。 基本上我们对能力有多接近对我来说是个谜。 我知道我可以跑到最前面,看到所有进程的状态,但是我怎样才能看到处理器会传递多less数据……以及如何估计何时需要升级,以及如何调整iptables规则,这是如何帮助/伤害处理器。 build议?
我有一个使用“ip”和“iptables”工具维护gre隧道和防火墙规则的脚本。 设置数以百计的隧道,每个接口的地址运行得很好。 每个界面的时间less于0.1秒,但是当我开始执行防火墙规则时,每个插入的开销都会减less0.5以上。 为什么它跑得这么慢? 我能做些什么来提高速度? 看来我可以尝试ipset,但我真的觉得有什么问题的内核或东西。 有趣的是,前10条规则运行得很快,然后慢下来。 mybox(root) foo# iptables -V iptables v1.3.5 mybox(root) foo# uname -a Linux foo 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux mybox(root) foo# cat test.sh #!/bin/sh for n in {1..100} do /sbin/iptables -A OUTPUT -s ${n} -j ACCEPT /sbin/iptables -D OUTPUT -s ${n} -j […]
我已经将远程选项添加到/ etc / sysconfig / syslog SYSLOGD_OPTIONS =“ – m0 -r”并重新启动,并确实在syslog端口上侦听; # netstat -lnu | grep 514 udp 0 0 0.0.0.0:514 0.0.0.0:* 我甚至可以用tcpdump dst port 514截获传入的syslog; tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 19:57:34.626128 IP 07701.com.syslog > i1106.com.syslog: SYSLOG user.critical, […]
我使用PRIVOXY作为Fedora Core 11盒子上的透明代理。 机器有一个接口(eth0),这里是networking的configuration: 10.0.1.1 – router.foobar.com(连接到ISP)10.0.1.2 – proxy.foobar.com(代理)10.0.1.199 – DHCP服务器 我已经在DHCP中设置默认网关选项为10.0.1.2,所以所有stream向0.0.0.0/0的stream量都应该通过它(和10.0.1.1)通过互联网。 这是我的问题….如何确保进出networking的stream量遵循正确的path,不会产生奇怪的路由问题。 在使用代理服务器时,我看到了一些延迟,但是当我通过更改默认网关向networking发送“直接镜头”时,我看不到任何延迟。 这是我目前的iptables conf文件: # Generated by iptables-save v1.4.3.1 on Fri Jul 30 17:02:45 2010 *nat :PREROUTING ACCEPT [1565:151406] :POSTROUTING ACCEPT [1467:94514] :OUTPUT ACCEPT [768:48101] -A PREROUTING -i eth0 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8080 COMMIT # Completed on […]
在Ubuntu文档中,我看到了这个提到netfilter bug的示例脚本: # Workaround bug in netfilter -A OUTPUT -m conntrack -p icmp –ctstate INVALID -j DROP 我不知道它指的是哪个bug,以及更多关于如何在没有这条线的情况下运行的细节