linux - 使用 iptables 将端口 80 路由到端口 5000

标签 linux iptables

我在运行 Archlinux 的 Raspberry Pi 上运行一个 tornado 服务器。为了避免以 root 身份运行该进程,我想在端口 5000 上运行服务器,同时将端口 80 上进入的所有 TCP 数据包路由到端口 5000,反之亦然。

我研究过 iptables,但我无法理解配置语法。我在谷歌上找到的例子并不是特别透明。谁能好心为我提供完成此操作所需的命令?解释命令的不同部分的奖励积分。

最佳答案

你需要安装一个'prerouting/nat'风格的规则:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

指令是:

  1. -t nat - 这会影响 nat 表
  2. -A PREROUTING - 附加到 PREROUTING 链 - 这几乎是“一旦我看到这个数据包”链
  3. -i eth0 - 这是受影响的接口(interface)
  4. -p tcp - 仅 tcp 连接(例如 http)
  5. --dport 80 - 目标端口 80
  6. -j REDIRECT - 当这条规则匹配时跳转到REDIRECT链
  7. --to-port 5000 - 这条规则生效的地方,重定向到5000端口

关于linux - 使用 iptables 将端口 80 路由到端口 5000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180284/

相关文章:

linux - 服务器上的端口打开和关闭是什么意思?

linux - 没有这样的文件或目录错误: Bad exit status from (%prep) while building an RPM?如何解决

linux - iptables 脚本来阻止除所需应用程序之外的所有互联网访问

linux - 如何使用 linux 终端运行未安装的(可移植)应用程序

regex - 如何在 bash 中使用变量进行 grep

linux - 编码 : unrtf SYMBOL. 字符映射需要更改

linux - 无法在 IPTABLES 防火墙上打开端口

linux - 在 debian 的同一接口(interface)上具有不同网络路由的多个 ip 地址

linux - FTP 干扰 NAT 服务器连接

linux - 使用 netcat 进行两个端口之间的外部环回测试