排行榜 统计
  • 文章总数:1412 篇
  • 评论总数:5 条
  • 分类总数:7 个
  • 最后更新:昨天 23:29

iptables unknown option "--dport"

本文阅读 2 分钟
首页 常用工具 正文

记一次iptables错误解决过程

一次使用代理抓包时,设置iptables重定向流量,结果报错unknown option "--dport",命令示例如下

iptables -t nat -I PREROUTING -p tcp  -s 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8000
复制代码

查了半天,大致是以下说法:

  1. 需要指定协议,如-p tcp
  2. 需要root权限
  3. 重装或者降版本

但是这些方法都没用,然后我发现我iptables版本后面有个nf_tables

$ iptables -V
iptables v1.8.7 (nf_tables)
复制代码

经过查询,这个好像是兼容nftables的版本,nftables是用于取代iptables的东西?

实在查不到解决办法,就只能去看nft语法了,但是nft语法完全变了,一时半会没法上手。

最后还是继续搜iptables报错,不过每报错一个unknown option "xxxx" ,就吧xxxx给删掉再执行,如下

$ iptables -t nat -I PREROUTING -p tcp  -s 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8000
iptables v1.8.7 (nf_tables): unknown option "--dport"
Try `iptables -h' or 'iptables --help' for more information.

$ iptables -t nat -I PREROUTING -p tcp  -s 127.0.0.1 -j REDIRECT --to-ports 8000
iptables v1.8.7 (nf_tables): unknown option "--to-ports"
Try `iptables -h' or 'iptables --help' for more information.

$ iptables -t nat -I PREROUTING -p tcp  -s 127.0.0.1 -j REDIRECT 
iptables v1.8.7 (nf_tables): Chain 'REDIRECT' does not exist
Try `iptables -h' or 'iptables --help' for more information.
复制代码

最后一次报REDIRECT不存在,直接搜这个报错,终于找到了原因,直接切换iptables的版本就行

$ update-alternatives --config iptables
There are 2 choices for the alternative iptables (providing /usr/sbin/iptables).

  Selection    Path                       Priority   Status
------------------------------------------------------------
* 0            /usr/sbin/iptables-nft      20        auto mode
  1            /usr/sbin/iptables-legacy   10        manual mode
  2            /usr/sbin/iptables-nft      20        manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in manual mode
$ iptables -V
iptables v1.8.7 (legacy)
复制代码

切换为legacy之后,运行之前的命令,但是还报错

$ iptables -t nat -I PREROUTING -p tcp  -s 172.18.209.174 -j REDIRECT
iptables v1.8.7 (legacy): Couldn't load target `REDIRECT':No such file or directory
复制代码

搜了一下,添加环境变量可以解决(参考2)

export XTABLES_LIBDIR=/lib/x86_64-linux-gnu/xtables/
复制代码

这里要注意/lib/x86_64-linux-gnu/xtables/这个路径需要按实际情况填写,搜到的文章里面写的是/lib/xtables/,如果没有这个目录,就自己在/lib/里面搜xtables目录

最后可以正常执行iptables命令了

参考

[1] blog.csdn.net/choumin/art…

[2] blog.csdn.net/justgg/arti…

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://typecho.firshare.cn/archives/1445.html
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。避免网络欺诈,本站不倡导任何交易行为。如您私自与本站转载自公开互联网中的资讯内容中提及到的个人或平台产生交易,则需自行承担后果。本站在注明来源的前提下推荐原文至此,仅作为优良公众、公开信息分享阅读,不进行商业发布、发表及从事营利性活动。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。
-- 展开阅读全文 --
VirboxLM 平台服务费常见问题
« 上一篇 01-04
医保定点医院、定点药店,一键查询→
下一篇 » 01-05