相关疑难解决方法(0)

iptables 预路由本地主机

我想使用 iptables 将所有传入流量从某个端口转发到另一个端口。问题是预路由不适用于来自本地主机的流量。本主题提出了一个解决方案:

iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 443 -j REDIRECT --to-ports 8080
Run Code Online (Sandbox Code Playgroud)

该解决方案适用于大多数情况。但是,当我连接到http://myserver:443(其中 myserver 解析为本地计算机上托管的 IP 地址,但不是 127.0.0.1)时,它似乎绕过了这两个规则。

有没有办法也捕获从本地计算机发送到 eth0 IP 地址的转发请求?

linux ubuntu firewall ip iptables

5
推荐指数
1
解决办法
4401
查看次数

端口 80 重定向不适用于本地主机

我想使用以下命令在我的 ubuntu linode 上运行一个简单的 python 网络服务器(它只是将当前目录放在指定的端口上)

python -m SimpleHTTPServer 8080
Run Code Online (Sandbox Code Playgroud)

我使用端口 8080 以避免使用 sudo 在端口 80 上运行

为了使其可访问,我使用以下命令将端口 80 重定向到端口 8080:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Run Code Online (Sandbox Code Playgroud)

现在,任何计算机都可以访问我的网站 giuliopizzini.com,除了 localhost 出现套接字错误,连接被拒绝。如果我将 localhost 指向 giuliopizzini.com:8080 它工作正常但重定向失败。

我启用了防火墙,但如果我用

sudo iptables -F
Run Code Online (Sandbox Code Playgroud)

行为完全相同,所以这在这里似乎不起作用。

如何使重定向也能在 localhost 上工作?

linux python web-server ubuntu-12.04

4
推荐指数
1
解决办法
4610
查看次数

来自本地主机的 DNAT (127.0.0.1)

我想在 Linux 3.x(当前为 3.2.52,但我可以根据需要升级)上设置从 127.0.0.1、端口 4242 到 11.22.33.44、端口 5353 的 TCP DNAT。

看起来简单的 DNAT 规则设置不起作用,在 中telnet 127.0.0.1 4242挂起一分钟Trying 127.0.0.1...,然后超时。也许是因为内核正在丢弃返回的数据包(例如 SYN+ACK),因为它认为它们是火星的。我不需要解释为什么简单的解决方案不起作用,我需要一个解决方案,即使它很复杂(例如它涉及创建可能规则)。

我可以从127.0.0.0/8网络外的另一个本地 IP 地址设置通常的 DNAT ,但现在我需要 127.0.0.1 作为目标地址。我知道我可以设置用户级端口转发过程,但现在我需要一个解决方案,该解决方案可以使用iptables并且不需要辅助进程进行设置。

我在谷歌上搜索了一个小时。多次询问,但我找不到任何可行的解决方案。

还有很多关于 DNAT 到 127.0.0.1 的问题,但我不需要那个,我需要相反的。

请注意,单个iptables -j REDIRECT规则不起作用,因为我需要将传出数据包的 IP 地址从 127.0.0.1-j REDIRECT更改为 11.22.33.44,并且无法更改 IP 地址。

iptables localhost dnat

3
推荐指数
2
解决办法
6100
查看次数

标签 统计

iptables ×2

linux ×2

dnat ×1

firewall ×1

ip ×1

localhost ×1

python ×1

ubuntu ×1

ubuntu-12.04 ×1

web-server ×1